Commit 426071b2 authored by Carlos Garnacho's avatar Carlos Garnacho

build: Drop autotools

parent 4b7980b9
Pipeline #29581 passed with stage
in 3 minutes and 29 seconds
stages:
- test
test-autotools-fedora-latest:
stage: test
image: registry.gitlab.gnome.org/sthursfield/tracker-oci-images/amd64/fedora:latest
script:
- su tracker -c './autogen.sh --prefix=/usr'
- su tracker -c 'make -j'
- LANG=en_US.UTF8 VERBOSE=1 su tracker -c 'dbus-launch make check'
- su tracker -c 'make functional-test'
test-meson-fedora-latest:
test-fedora-latest:
stage: test
image: registry.gitlab.gnome.org/sthursfield/tracker-oci-images/amd64/fedora:latest
......
include $(top_srcdir)/Makefile.decl
SUBDIRS = src docs po utils examples
if HAVE_UNIT_TESTS
SUBDIRS += tests
endif
#if ENABLE_GCOV
.PHONY: coverage coverage-report
coverage:
find $(top_srcdir) -name "*.gcda" | xargs rm -f
$(MAKE) $(AM_MAKEFLAGS) test
coverage-report: coverage
lcov --directory $(top_srcdir)/src --capture --output-file $(top_builddir)/lcov.info
lcov --directory $(top_srcdir)/src --output-file $(top_builddir)/lcov.info --remove $(top_builddir)/lcov.info \
tracker-sparql-builder.c \
tracker-sparql-expression.c \
tracker-sparql-pattern.c \
tracker-sparql-query.c \
tracker-sparql-scanner.c \
tracker-turtle-reader.c \
tracker-turtle-writer.c \
libtracker-bus/tracker-array-cursor.c \
libtracker-bus/tracker-bus-fd-cursor.c \
libtracker-bus/tracker-bus.c \
libtracker-direct/tracker-direct.c \
libtracker-miner/tracker-storage.c \
libtracker-miner/tracker-dbus.c \
libtracker-miner/tracker-miner-fs.c \
libtracker-miner/tracker-miner-object.c \
libtracker-miner/tracker-miner-web.c \
libtracker-miner/tracker-network-provider.c \
libtracker-miner/tracker-network-provider-network-manager.c \
libtracker-sparql/tracker-builder.c \
libtracker-sparql/tracker-connection.c \
libtracker-sparql/tracker-cursor.c \
libtracker-sparql/tracker-plugin-loader.c \
libtracker-sparql/tracker-utils.c \
libtracker-sparql-backend/tracker-backend.c \
tracker-store/tracker-backup.c \
tracker-store/tracker-dbus.c \
tracker-store/tracker-main.c \
tracker-store/tracker-resources.c \
tracker-store/tracker-statistics.c \
tracker-store/tracker-status.c \
tracker-store/tracker-steroids.c \
tracker-store/tracker-store.c \
tracker-control/* \
libstemmer/stem_UTF_8_* \
tracker-control/tracker-miner-files-index-client.h \
"*.vapi" \
rm -rf $(top_builddir)/coverage
$(MKDIR_P) $(top_builddir)/coverage
genhtml --title "@PACKAGE_STRING@" --output-directory $(top_builddir)/coverage $(top_builddir)/lcov.info
#endif
distclean-local:
if test "x$(srcdir)" = "x."; then :; else \
rm -f ChangeLog; \
fi
.PHONY: ChangeLog
gen_start_date = 2009-04-10
ChangeLog:
$(AM_V_GEN) if test -d "$(srcdir)/.git"; then \
$(top_srcdir)/gitlog-to-changelog --since=$(gen_start_date) > $@.tmp \
&& mv -f $@.tmp $@ \
|| ($(RM) $@.tmp; \
echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
(test -f $@ || echo git-log is required to generate this file >> $@)); \
else \
test -f $@ || \
(echo A git checkout and git-log is required to generate ChangeLog >&2 && \
echo A git checkout and git-log is required to generate this file >> $@); \
fi
functional-test:
cd tests/functional-tests/ && $(MAKE) $(AM_MAKEFLAGS) $@
EXTRA_DIST += \
config.h.meson.in \
ChangeLog.pre-0-6-93 \
COPYING.GPL \
COPYING.LGPL \
gitlog-to-changelog \
intltool-extract.in \
intltool-merge.in \
intltool-update.in \
po/meson.build \
meson.build \
meson_options.txt \
tracker.doap \
tap-driver.sh \
tap-test
DISTCLEANFILES += \
intltool-extract \
intltool-merge \
intltool-update
DISTCHECK_CONFIGURE_FLAGS = \
--with-session-bus-services-dir="\$(datadir)"/dbus-1/services \
--with-bash-completion-dir="\$(datadir)"/bash-completion/ \
--disable-nautilus-extension \
--enable-unit-tests \
--enable-functional-tests \
--enable-gtk-doc \
--enable-introspection \
--disable-miner-rss \
--disable-miner-evolution \
--disable-miner-thunderbird \
--disable-miner-firefox \
--enable-poppler \
--enable-exempi \
--enable-libiptcdata \
--enable-libjpeg \
--enable-libtiff \
--enable-libvorbis \
--enable-libflac \
--enable-libgsf \
--enable-playlist \
--enable-tracker-preferences \
--enable-enca
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
test -n "$srcdir" || srcdir=$(dirname "$0")
test -n "$srcdir" || srcdir=.
olddir=$(pwd)
cd $srcdir
(test -f configure.ac) || {
echo "*** ERROR: Directory '$srcdir' does not look like the top-level project directory ***"
exit 1
}
# shellcheck disable=SC2016
PKG_NAME=$(autoconf --trace 'AC_INIT:$1' configure.ac)
aclocal --install || exit 1
gtkdocize --copy || exit 1
intltoolize --force --copy --automake || exit 1
autoreconf --verbose --force --install || exit 1
cd "$olddir"
if [ "$NOCONFIGURE" = "" ]; then
# If no arguments are given, use those used with distcheck
# equally, use the JHBuild prefix if it is available otherwise fall
# back to the default (/usr/local)
if [ $# -eq 0 ] ; then
echo "Using distcheck arguments, none were supplied..."
if test -n "$JHBUILD_PREFIX" ; then
echo "Using JHBuild prefix ('$JHBUILD_PREFIX')"
NEW_PREFIX="--prefix $JHBUILD_PREFIX --with-bash-completion-dir=$JHBUILD_PREFIX/share/bash-completion/completions"
fi
NEW_ARGS="\
--disable-nautilus-extension \
--enable-unit-tests \
--enable-functional-tests \
--enable-gtk-doc \
--enable-introspection \
--disable-miner-rss \
--disable-miner-evolution \
--disable-miner-thunderbird \
--disable-miner-firefox \
--enable-poppler \
--enable-exempi \
--enable-libiptcdata \
--enable-libjpeg \
--enable-libtiff \
--enable-libvorbis \
--enable-libflac \
--enable-libgsf \
--enable-playlist \
--enable-tracker-preferences \
--enable-enca"
set -- $NEW_PREFIX $NEW_ARGS
fi
$srcdir/configure "$@" || exit 1
if [ "$1" = "--help" ]; then exit 0 else
echo "Now type 'make' to compile $PKG_NAME" || exit 1
fi
else
echo "Skipping configure process."
fi
This diff is collapsed.
SUBDIRS = manpages design tools reference
# require gtk-doc when making dist
#
if ENABLE_GTK_DOC
dist-check-gtk-doc:
else
dist-check-gtk-doc:
@echo "*** gtk-doc must be enabled in order to make dist"
@false
endif
dist-hook: dist-check-gtk-doc
EXTRA_DIST = meson.build
architecture_docs = \
tracker-store.dia \
tracker-miner-fs.dia \
tracker-structural-view.dot
EXTRA_DIST = $(architecture_docs)
common = \
tracker-info.1 \
tracker-daemon.1 \
tracker-search.1 \
tracker-sparql.1 \
tracker-sql.1 \
tracker-status.1 \
tracker-store.1 \
tracker-tag.1 \
tracker-reset.1 \
tracker-index.1
# Require only common and enabled manpages
man_MANS = $(common)
# Make sure even disabled manpages get distributed
EXTRA_DIST = \
$(common) \
meson.build
SUBDIRS = \
libtracker-control \
libtracker-sparql \
libtracker-miner
if ENABLE_GTK_DOC
SUBDIRS += ontology
endif
EXTRA_DIST = meson.build
AUTOMAKE_OPTIONS = 1.6
# The name of the module.
DOC_MODULE=libtracker-control
# The top-level SGML file.
DOC_MAIN_SGML_FILE=libtracker-control-docs.sgml
# Extra options to supply to gtkdoc-scan
SCAN_OPTIONS=--deprecated-guards="TRACKER_DISABLE_DEPRECATED"
# Extra options to pass to gtkdoc-scangobj
# SCANGOBJ_OPTIONS=--type-init-func="gtk_type_init(0)"
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR=$(top_srcdir)/src/libtracker-control
# Used for dependencies
HFILE_GLOB=$(top_srcdir)/src/libtracker-control/*.h
CFILE_GLOB=$(top_srcdir)/src/libtracker-control/*.c
# Header files to ignore when scanning
IGNORE_HFILES=
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
AM_CPPFLAGS = \
-DTRACKER_COMPILATION \
-I$(top_srcdir)/src \
$(LIBTRACKER_CONTROL_CFLAGS)
GTKDOC_LIBS = \
$(top_builddir)/src/libtracker-control/libtracker-control-@TRACKER_API_VERSION@.la \
$(top_builddir)/src/libtracker-common/libtracker-common.la \
$(LIBTRACKER_CONTROL_LIBS)
# Extra options to supply to gtkdoc-mkdb
MKDB_OPTIONS=--sgml-mode --output-format=xml
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=--path="$(abs_builddir)"
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
content_files = version.xml migrating-1to2.xml
expand_content_files =
# Images to copy into HTML directory
HTML_IMAGES =
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS = \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gio
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
EXTRA_DIST += \
version.xml.in \
meson.build
AUTOMAKE_OPTIONS = 1.6
# The name of the module.
DOC_MODULE=libtracker-miner
# The top-level SGML file.
DOC_MAIN_SGML_FILE=libtracker-miner-docs.sgml
# Extra options to supply to gtkdoc-scan
SCAN_OPTIONS=--deprecated-guards="TRACKER_DISABLE_DEPRECATED"
# Extra options to pass to gtkdoc-scangobj
# SCANGOBJ_OPTIONS=--type-init-func="gtk_type_init(0)"
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR=$(top_srcdir)/src/libtracker-miner
# Used for dependencies
HFILE_GLOB=$(top_srcdir)/src/libtracker-miner/*.h
CFILE_GLOB=$(top_srcdir)/src/libtracker-miner/*.c
# Header files to ignore when scanning
IGNORE_HFILES= \
tracker-crawler.h \
tracker-dbus.h \
tracker-file-notifier.h \
tracker-file-system.h \
tracker-miner-client.h \
tracker-miner-glue.h \
tracker-miner-files-index-client.h \
tracker-miner-fs-processing-pool.h \
tracker-miner-web-dbus.h \
tracker-miner-web-glue.h \
tracker-miner-web-glue.h \
tracker-monitor.h \
tracker-priority-queue.h \
tracker-sparql-buffer.h \
tracker-task-pool.h \
tracker-utils.h
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
AM_CPPFLAGS = \
-DTRACKER_COMPILATION \
-I$(top_srcdir)/src \
$(LIBTRACKER_MINER_CFLAGS)
GTKDOC_LIBS = \
$(top_builddir)/src/libtracker-miner/libtracker-miner-@TRACKER_API_VERSION@.la \
$(top_builddir)/src/libtracker-sparql-backend/libtracker-sparql-@TRACKER_API_VERSION@.la \
$(top_builddir)/src/libtracker-common/libtracker-common.la \
$(LIBTRACKER_MINER_LIBS)
# Extra options to supply to gtkdoc-mkdb
MKDB_OPTIONS=--sgml-mode --output-format=xml
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=--path="$(abs_builddir)"
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
content_files = version.xml overview.sgml migrating-1to2.xml
expand_content_files =
# Images to copy into HTML directory
HTML_IMAGES =
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS = \
--extra-dir=../libtracker-control/html \
--extra-dir=../libtracker-sparql/html \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gio
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
EXTRA_DIST += \
version.xml.in \
meson.build
AUTOMAKE_OPTIONS = 1.6
# Generation of the base ontology XML files.
ontology-doc.stamp:
$(MKDIR_P) xml
$(top_builddir)/docs/tools/ttl2sgml -d $(top_srcdir)/src/ontologies/ -o xml/
$(AM_V_GEN) touch $@
version.xml: ontology-doc.stamp
# The name of the module.
DOC_MODULE = libtracker-sparql
# The top-level SGML file.
DOC_MAIN_SGML_FILE = libtracker-sparql-docs.sgml
# Extra options to supply to gtkdoc-scan
SCAN_OPTIONS=--deprecated-guards="TRACKER_DISABLE_DEPRECATED"
# Extra options to pass to gtkdoc-scangobj
# SCANGOBJ_OPTIONS=--type-init-func="gtk_type_init(0)"
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR = $(top_srcdir)/src/libtracker-sparql
# Used for dependencies
HFILE_GLOB = $(top_srcdir)/src/libtracker-sparql/*.h $(top_builddir)/config.h
CFILE_GLOB = $(top_srcdir)/src/libtracker-sparql/*.c
# Header files to ignore when scanning
IGNORE_HFILES = \
$(top_srcdir)/src/libtracker-sparql/tracker-generated-no-checks.h \
$(top_srcdir)/src/libtracker-sparql/tracker-uri.h
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
AM_CPPFLAGS = \
-DTRACKER_COMPILATION \
-I$(top_srcdir)/src \
$(LIBTRACKER_SPARQL_CFLAGS)
GTKDOC_LIBS = \
$(top_builddir)/src/libtracker-sparql-backend/libtracker-sparql-@TRACKER_API_VERSION@.la \
$(top_builddir)/src/libtracker-common/libtracker-common.la \
$(LIBTRACKER_SPARQL_LIBS)
# Extra options to supply to gtkdoc-mkdb
MKDB_OPTIONS = --sgml-mode --output-format=xml
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=--path="$(abs_builddir)"
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
content_files = version.xml examples.sgml overview.sgml ontologies.sgml private-store.xml migrating-1to2.xml
expand_content_files =
# Images to copy into HTML directory
HTML_IMAGES =
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS = \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gio
include $(top_srcdir)/gtk-doc.make
EXAMPLES = \
examples/ontologies/defining-cardinality-1.rq \
examples/ontologies/defining-cardinality-2.txt \
examples/ontologies/defining-cardinality-3.rq \
examples/ontologies/defining-classes-1.txt \
examples/ontologies/defining-classes-2.txt \
examples/ontologies/defining-classes-3.rq \
examples/ontologies/defining-fts-indexes-1.txt \
examples/ontologies/defining-fts-indexes-2.rq \
examples/ontologies/defining-indexes-1.txt \
examples/ontologies/defining-namespaces-1.txt \
examples/ontologies/defining-properties-1.txt \
examples/ontologies/defining-properties-2.txt \
examples/ontologies/defining-properties-3.txt \
examples/ontologies/defining-properties-4.rq \
examples/ontologies/defining-uniqueness-1.txt \
examples/ontologies/defining-uniqueness-2.rq \
examples/ontologies/example.description \
examples/ontologies/predefined-elements-1.txt \
examples/ontologies/predefined-elements-2.rq
# Other files to distribute
EXTRA_DIST += \
$(EXAMPLES) \
version.xml.in \
meson.build
CLEANFILES += \
ontology-doc.stamp
AUTOMAKE_OPTIONS = 1.6
# The original Ontology explanation files
ONTOLOGY_INTRODUCTIONS = \
mfo-introduction.xml \
mlo-introduction.xml \
nco-introduction.xml \
nie-introduction.xml \
nmm-introduction.xml \
nmo-introduction.xml \
xsd-introduction.xml
# Generation of the ontology XML files.
gen-doc.stamp: $(ONTOLOGY_INTRODUCTIONS)
$(MKDIR_P) xml
$(top_builddir)/docs/tools/ttl2sgml -d $(top_srcdir)/src/ontologies/nepomuk -o xml/
$(AM_V_GEN) touch $@
version.xml: gen-doc.stamp
# The name of the module.
DOC_MODULE = ontology
# The top-level SGML file.
DOC_MAIN_SGML_FILE = ontology-docs.sgml
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR = .
# Extra options to supply to gtkdoc-mkdb
MKDB_OPTIONS = --sgml-mode --output-format=xml
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=--path="$(abs_builddir)"
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
content_files = \
version.xml
expand_content_files =
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS =
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# Note that HTML_FILES and content_files are already included
# by gtk-doc
EXTRA_DIST += \
version.xml.in \
$(ONTOLOGY_INTRODUCTIONS) \
meson.build
CLEANFILES += \
gen-doc.stamp
noinst_PROGRAMS = ttl2sgml
AM_CPPFLAGS = \
$(BUILD_CFLAGS) \
-DTOP_SRCDIR=\"$(top_srcdir)\" \
-I$(top_srcdir)/src \
-I$(top_builddir)/src \
$(LIBTRACKER_DATA_CFLAGS)
LDADD = \
$(top_builddir)/src/libtracker-common/libtracker-common.la \
$(top_builddir)/src/libtracker-data/libtracker-data.la \
$(top_builddir)/src/libtracker-sparql-backend/libtracker-sparql-@TRACKER_API_VERSION@.la \
$(LIBTRACKER_DATA_LIBS) \
$(BUILD_LIBS)
TTL_LOADER_FILES = \
ttl_loader.c \
ttl_loader.h \
ttl_model.c \
ttl_model.h \
ttl_sgml.c \
ttl_sgml.h
ttl2sgml_SOURCES = \
$(TTL_LOADER_FILES) \
ttlresource2sgml.c \
ttlresource2sgml.h \
ttl2sgml.c
EXTRA_DIST = \
meson.build
SUBDIRS = \
libtracker-miner \
libtracker-sparql \
rss-reader
EXTRA_DIST = meson.build
noinst_PROGRAMS = tracker-miner-test
AM_CPPFLAGS = \
$(BUILD_CFLAGS) \
-I$(top_srcdir)/src \
-I$(top_builddir)/src \
-DSHAREDIR=\""$(datadir)"\" \
$(LIBTRACKER_MINER_CFLAGS)
LDADD = \
$(top_builddir)/src/libtracker-miner/libtracker-miner-@TRACKER_API_VERSION@.la \
$(top_builddir)/src/libtracker-sparql-backend/libtracker-sparql-@TRACKER_API_VERSION@.la \
$(top_builddir)/src/libtracker-common/libtracker-common.la \
$(BUILD_LIBS) \
$(LIBTRACKER_MINER_LIBS)
tracker_miner_test_SOURCES = \
tracker-miner-test.c \
tracker-miner-test.h \
tracker-main.c
EXTRA_DIST = meson.build
noinst_PROGRAMS = async-connection class-signal
AM_CPPFLAGS = $(BUILD_CFLAGS) \
-I$(top_srcdir)/src \
$(LIBTRACKER_SPARQL_CFLAGS)
LDADD = $(top_builddir)/src/libtracker-sparql-backend/libtracker-sparql-$(TRACKER_API_VERSION).la \
$(BUILD_LIBS) \
$(LIBTRACKER_SPARQL_LIBS)
async_connection_SOURCES = async-connection.c
class_signal_SOURCES = class-signal.c
EXTRA_DIST = meson.build
EXTRA_DIST = \
initial-data.ttl \
rss_viewer.ui \
main.py \
signaler.py \
tracker_backend.py \
zeitgeist_backend.py
dnl Macros to check the presence of generic (non-typed) symbols.
dnl Copyright (c) 2006-2008 Diego Pettenò <flameeyes@gmail.com>
dnl Copyright (c) 2006-2008 xine project
dnl Copyright (c) 2012 Lucas De Marchi <lucas.de.marchi@gmail.com>
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2, or (at your option)
dnl any later version.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
dnl 02110-1301, USA.
dnl
dnl As a special exception, the copyright owners of the
dnl macro gives unlimited permission to copy, distribute and modify the
dnl configure scripts that are the output of Autoconf when processing the
dnl Macro. You need not follow the terms of the GNU General Public
dnl License when using or distributing such scripts, even though portions
dnl of the text of the Macro appear in them. The GNU General Public
dnl License (GPL) does govern all other use of the material that
dnl constitutes the Autoconf Macro.
dnl
dnl This special exception to the GPL applies to versions of the
dnl Autoconf Macro released by this project. When you make and
dnl distribute a modified version of the Autoconf Macro, you may extend
dnl this special exception to the GPL to apply to your modified version as
dnl well.
dnl Check if FLAG in ENV-VAR is supported by compiler and append it
dnl to WHERE-TO-APPEND variable
dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG])
AC_DEFUN([CC_CHECK_FLAG_APPEND], [
AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2],
AS_TR_SH([cc_cv_$2_$3]),
[eval "AS_TR_SH([cc_save_$2])='${$2}'"
eval "AS_TR_SH([$2])='-Werror $3'"
AC_LINK_IFELSE([AC_LANG_SOURCE([int a = 0; int main(void) { return a; } ])],
[eval "AS_TR_SH([cc_cv_$2_$3])='yes'"],
[eval "AS_TR_SH([cc_cv_$2_$3])='no'"])
eval "AS_TR_SH([$2])='$cc_save_$2'"])