diff options
author | Alexey Neyman <stilor@att.net> | 2018-01-06 18:31:15 -0800 |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2018-04-07 12:02:33 -0700 |
commit | 896bc2d17313f32a968efb09917cc3eb2b4e3ed8 (patch) | |
tree | 3735dcf860ee30ffc86c04122bdc7fc0dd4b5be4 /configure.ac | |
parent | 7c3422675909ea8b117f94a26170af06a265477e (diff) | |
download | crosstool-ng-896bc2d17313f32a968efb09917cc3eb2b4e3ed8.tar.gz crosstool-ng-896bc2d17313f32a968efb09917cc3eb2b4e3ed8.tar.bz2 crosstool-ng-896bc2d17313f32a968efb09917cc3eb2b4e3ed8.zip |
Split local helper macros into separate m4's
... which are then picked up via aclocal.
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 299 |
1 files changed, 67 insertions, 232 deletions
diff --git a/configure.ac b/configure.ac index 8ae98bf0..97d76078 100644 --- a/configure.ac +++ b/configure.ac @@ -2,122 +2,17 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.67]) + +# FIXME Temporary hack until the next release (we'll switch to plain numeric tags then) +# TBD need to quote sed expression AC_INIT( [crosstool-NG], [m4_esyscmd_s([git describe --always --dirty])], - [crossgcc@sourceware.org]) + [crossgcc@sourceware.org], + [crosstool-ng], + [http://crosstool-ng.org]) AC_CONFIG_AUX_DIR([scripts]) - -#-------------------------------------------------------------------- -# A few helper macros - -# ACX_WITH_DEPRECATED(PROG, VAR) -# Declare a deprecated --with option: instead of --with-PROG=xxx, must use VAR=xxx -AC_DEFUN( - [ACX_WITH_DEPRECATED], - [AC_ARG_WITH([$1], - [AS_HELP_STRING([--with-$1=PATH], - [Deprecated; use $2=PATH instead])], - [AC_MSG_ERROR([--with-$1=$withval deprecated; use $2=$withval instead])]) - ]) - -# Check for required tool -AC_DEFUN( - [ACX_CHECK_TOOL_REQ], - [AC_CHECK_TOOLS([$1], [$2]) - AS_IF( - [test -z "$$1"], - [AC_MSG_ERROR([missing required tool: $2])]) - ]) - -# Check for required tool, set variable to full pathname -AC_DEFUN( - [ACX_PATH_TOOL_REQ], - [ACX_WITH_DEPRECATED([$3], [$1]) - AC_ARG_VAR([$1], [Specify the full path to GNU $3]) - ACX_CHECK_TOOL_REQ([$1], [$2]) - AS_CASE( - [$$1], - [/*],, - [?*],[AC_MSG_CHECKING([for absolute path to $$1]) - $1=$(which $$1) - AC_MSG_RESULT([$$1])])]) - -# Check for required program -AC_DEFUN( - [ACX_CHECK_PROGS_REQ], - [AC_CHECK_PROGS([$1], [$2]) - AS_IF( - [test -z "$$1"], - [AC_MSG_ERROR([missing required tool: $2])]) - ]) - -# Check for path to required program -AC_DEFUN( - [ACX_PATH_PROGS_REQ], - [AC_PATH_PROGS([$1], [$2]) - AS_IF( - [test -z "$$1"], - [AC_MSG_ERROR([missing required tool: $2])]) - ]) - -# Set the kconfig option -AC_DEFUN( - [ACX_SET_KCONFIG_OPTION], - [AS_IF( - [test -n "$$1"], - [AC_SUBST([KCONFIG_$1], ["def_bool y"])], - [AC_SUBST([KCONFIG_$1], ["bool"])])]) - -# Check if a given program is available with a particular version. -# ACX_PROG_VERSION(VAR, HELP, PROG, SRCH, VERSION_CHECK[, CONFIG_OPT]) -# Search for PROG under possible names of SRCH. Allow user overrides in variable -# VAR; display HELP message. Try to find a version that satisfies VERSION_CHECK -# regexp; if that is achieved, set CONFIG_OPT in the kconfig. Otherwise, settle -# for any version found. -# Sets acx_version_VAR_ok to ':' if the version met the criterion, or false otherwise. -AC_DEFUN( - [ACX_PROG_VERSION], - [AS_IF([test -z "$EGREP"], - [AC_MSG_ERROR([This macro can only be used after checking for EGREP])]) - ACX_WITH_DEPRECATED([$3], [$1]) - AC_ARG_VAR([$1], [Specify the full path to $2]) - acx_version_$1_ok=false - AC_CACHE_CHECK([for $3], [ac_cv_path_$1], - [AC_PATH_PROGS_FEATURE_CHECK([$1], [$4], - [[ver=`$ac_path_$1 --version 2>/dev/null| $EGREP $5` - test -z "$ac_cv_path_$1" && ac_cv_path_$1=$ac_path_$1 - test -n "$ver" && ac_cv_path_$1="$ac_path_$1" ac_path_$1_found=: acx_version_$1_ok=:]])]) - AS_IF([test -n "$1"], - [[ver=`$ac_path_$1 --version 2>/dev/null| $EGREP $5` - test -n "$ver" && acx_version_$1_ok=:]]) - AC_MSG_CHECKING([for $2]) - AS_IF([$acx_version_$1_ok], - [AC_MSG_RESULT([yes])], - [AC_MSG_RESULT([no])]) - AC_SUBST([$1], [$ac_cv_path_$1]) - AS_IF([test -n "$6"], - [AS_IF([$acx_version_$1_ok], [$6=y], [$6=]) - ACX_SET_KCONFIG_OPTION([$6])]) - ]) - -# Same as above, but make it a fatal error if the tool is not found at all -# (i.e. "require any version, prefer version X or newer") -AC_DEFUN( - [ACX_PROG_VERSION_REQ_ANY], - [ACX_PROG_VERSION([$1], [$2], [$3], [$4], [$5], [$6]) - AS_IF([test -z "$$1"], - [AC_MSG_ERROR([Required tool not found: $3])]) - ]) - -# Same, but also require the version check to pass -# (i.e. "require version X or newer") -AC_DEFUN( - [ACX_PROG_VERSION_REQ_STRICT], - [ACX_PROG_VERSION([$1], [$2], [$3], [$4], [$5], [$6]) - AS_IF([test -z "$$1" || ! $acx_version_$1_ok], - [AC_MSG_ERROR([Required tool not found: $2])]) - ]) +AC_CONFIG_MACRO_DIR([m4]) # Check if install(1) supports --strip-program=... AC_DEFUN( @@ -144,8 +39,7 @@ AC_ARG_ENABLE( [do not install, and use current directory])]) AC_SUBST([enable_local], [${enable_local:-no}]) -# FIXME: I don't know why we have this. Will remove after the next -# release. +# FIXME: I don't know why we have this. Will remove after the 1.24 release. AC_ARG_ENABLE( [shared], [AS_HELP_STRING( @@ -157,7 +51,6 @@ AC_ARG_ENABLE( [--enable-static], [build static libraries (deprecated, ignored)])]) -#--------------------------------------------------------------------- # Check for --build and --host... AC_CANONICAL_BUILD AC_CANONICAL_HOST @@ -168,27 +61,27 @@ AS_IF([test -n "$target_alias"], # Allow program name tranformation (--program-{prefix,suffix,transform-name}) AC_ARG_PROGRAM -#--------------------------------------------------------------------- -# Initial checks that are usually done first (I don't know why, that's -# just what I seem to experience...) -#--------------------------------------------------------------------- -ACX_WITH_DEPRECATED([install], [INSTALL]) +AC_PROG_MKDIR_P + +CTNG_WITH_DEPRECATED([install], [INSTALL]) AC_ARG_VAR([INSTALL], [Specify the full path to a BSD-compatible install]) AC_PROG_INSTALL ACX_INSTALL_STRIP_PROGRAM -ACX_WITH_DEPRECATED([grep], [GREP]) +CTNG_WITH_DEPRECATED([grep], [GREP]) AC_ARG_VAR([GREP], [Specify the full path to GNU grep]) # This is not a typo! Prefer GNU grep on macOS if it is installed. -ACX_PATH_TOOL_REQ([GREP], [ggrep grep], [grep]) -ACX_PATH_TOOL_REQ([EGREP], [gegrep egrep], [egrep]) +CTNG_PATH_TOOL_REQ([GREP], [ggrep grep], [grep]) +CTNG_PATH_TOOL_REQ([EGREP], [gegrep egrep], [egrep]) AC_PROG_GREP AC_PROG_EGREP + +# FIXME: ct-ng assumes this in many places... AS_IF([test "$EGREP" != "$GREP -E"], [AC_MSG_ERROR([egrep is not $GREP -E])]) -ACX_PROG_VERSION_REQ_STRICT([SED], +CTNG_PROG_VERSION_REQ_STRICT([SED], [GNU sed >= 4.0], [sed], [gsed sed], @@ -203,9 +96,11 @@ AC_PROG_LN_S # Modern GCC/GDB releases require C++ support in the compiler AC_PROG_CC AC_PROG_CXX +AC_PROG_CPP +AC_PROG_LEX +AC_PROG_YACC AS_IF([test -z "$CC" -o -z "$CXX"], [AC_MSG_ERROR([no suitable compiler found])]) -AC_PROG_CPP #--------------------------------------------------------------------- # Check to see if the compiler can link statically @@ -218,82 +113,58 @@ AS_IF([test $static_test -eq 0], [test $static_test -ne 0], [static_link= AC_MSG_RESULT([no])]) -ACX_SET_KCONFIG_OPTION([static_link]) +CTNG_SET_KCONFIG_OPTION([static_link]) AC_PROG_RANLIB -ACX_PATH_TOOL_REQ([OBJCOPY], [gobjcopy objcopy], [objcopy]) -ACX_PATH_TOOL_REQ([OBJDUMP], [gobjdump objdump], [objdump]) -ACX_PATH_TOOL_REQ([READELF], [greadelf readelf], [readelf]) -ACX_PATH_TOOL_REQ([GPERF], [gperf], [gperf]) - -ACX_CHECK_PROGS_REQ([bison], [bison]) -ACX_CHECK_PROGS_REQ([flex], [flex]) -ACX_CHECK_PROGS_REQ([makeinfo], [makeinfo]) -ACX_CHECK_PROGS_REQ([cut], [cut]) -ACX_CHECK_PROGS_REQ([readlink], [readlink]) -ACX_CHECK_PROGS_REQ([tar], [tar]) -ACX_CHECK_PROGS_REQ([gzip], [gzip]) -ACX_CHECK_PROGS_REQ([bzip2], [bzip2]) -ACX_CHECK_PROGS_REQ([xz], [xz]) -ACX_CHECK_PROGS_REQ([help2man], [help2man]) +CTNG_PATH_TOOL_REQ([OBJCOPY], [gobjcopy objcopy], [objcopy]) +CTNG_PATH_TOOL_REQ([OBJDUMP], [gobjdump objdump], [objdump]) +CTNG_PATH_TOOL_REQ([READELF], [greadelf readelf], [readelf]) +CTNG_PATH_TOOL_REQ([GPERF], [gperf], [gperf]) + +CTNG_CHECK_PROGS_REQ([bison], [bison]) +CTNG_CHECK_PROGS_REQ([flex], [flex]) +CTNG_CHECK_PROGS_REQ([makeinfo], [makeinfo]) +CTNG_CHECK_PROGS_REQ([cut], [cut]) +CTNG_CHECK_PROGS_REQ([readlink], [readlink]) +CTNG_CHECK_PROGS_REQ([tar], [tar]) +CTNG_CHECK_PROGS_REQ([gzip], [gzip]) +CTNG_CHECK_PROGS_REQ([bzip2], [bzip2]) +CTNG_CHECK_PROGS_REQ([xz], [xz]) +CTNG_CHECK_PROGS_REQ([help2man], [help2man]) # Not a fatal failure even if we have neither - the tarballs may # be provided in a local directory. AC_CHECK_PROGS([wget], [wget]) -ACX_SET_KCONFIG_OPTION([wget]) +CTNG_SET_KCONFIG_OPTION([wget]) AC_SUBST([wget]) AC_CHECK_PROGS([curl], [curl]) -ACX_SET_KCONFIG_OPTION([curl]) +CTNG_SET_KCONFIG_OPTION([curl]) AC_SUBST([curl]) -ACX_CHECK_PROGS_REQ([stat], [stat]) -AC_CACHE_CHECK([whether stat takes GNU or BSD format], - [acx_cv_stat_flavor], - [touch conftest - chmod 642 conftest - attr_bsd=`stat -f '%Lp' conftest 2>/dev/null` - attr_gnu=`stat -c '%a' conftest 2>/dev/null` - rm -f conftest - AS_IF([test "$attr_bsd" = "642"], - [acx_cv_stat_flavor=BSD], - [test "$attr_gnu" = "642"], - [acx_cv_stat_flavor=GNU], - [AC_MSG_ERROR([cannot determine stat(1) format option])])]) - +# TBD move the checks/setting kconfig into [IF-BSD] and [IF-GNU] arguments to CTNG_PROG_STAT +# TBD modify CTNG_SET_KCONFIG_OPTION to take an optional argument to which it should be set +CTNG_PROG_STAT # FIXME: support SET_KCONFIG_OPTION with string values? But then # again, these checks may be moved into ct-ng script. test "$acx_cv_stat_flavor" = "BSD" && stat_flavor_BSD=y -ACX_SET_KCONFIG_OPTION([stat_flavor_BSD]) +CTNG_SET_KCONFIG_OPTION([stat_flavor_BSD]) test "$acx_cv_stat_flavor" = "GNU" && stat_flavor_GNU=y -ACX_SET_KCONFIG_OPTION([stat_flavor_GNU]) +CTNG_SET_KCONFIG_OPTION([stat_flavor_GNU]) -#Find out how to count CPUs -AC_CACHE_CHECK([whether to use getconf or sysctl to count CPUs], - [acx_cv_cpu_count], - [getconf _NPROCESSORS_ONLN >/dev/null 2>&1 && \ - acx_cv_cpu_count="getconf _NPROCESSORS_ONLN" - sysctl -n hw.ncpu >/dev/null 2>&1 && \ - acx_cv_cpu_count="sysctl -n hw.ncpu"]) -AC_SUBST(CPU_COUNT, "$acx_cv_cpu_count") +CTNG_CPU_COUNT -#-------------------------------------------------------------------- -# Still boring, but remember the path, now... -#-------------------------------------------------------------------- -ACX_PATH_TOOL_REQ([PATCH], [gpatch patch], [patch]) +CTNG_PATH_TOOL_REQ([PATCH], [gpatch patch], [patch]) -#-------------------------------------------------------------------- -# And a bunch of less boring tests... -#-------------------------------------------------------------------- # We need a bash that is >= 3.1 -ACX_PROG_VERSION_REQ_STRICT([BASH_SHELL], +CTNG_PROG_VERSION_REQ_STRICT([BASH_SHELL], [GNU bash >= 3.1], [bash], [bash], ['^GNU bash, version (3\.[1-9]|4)']) # We need a awk that *is* GNU awk -ACX_PROG_VERSION_REQ_STRICT([AWK], +CTNG_PROG_VERSION_REQ_STRICT([AWK], [GNU awk], [awk], [gawk awk], @@ -306,7 +177,7 @@ ACX_PROG_VERSION_REQ_STRICT([AWK], # build/install crosstool-ng itself. #---------------------------------------- # Check for GNU make (want 3.81 or above, but will accept as long as any make is found) -ACX_PROG_VERSION_REQ_ANY([MAKE], +CTNG_PROG_VERSION_REQ_ANY([MAKE], [GNU make >= 3.81], [make], [gmake make], @@ -314,85 +185,64 @@ ACX_PROG_VERSION_REQ_ANY([MAKE], [make_3_81_or_newer]) # Check other companion tools that we may or may not build -ACX_PROG_VERSION([LIBTOOL], +CTNG_PROG_VERSION([LIBTOOL], [GNU libtool >= 2.4], [libtool], [glibtool libtool], ['\(GNU libtool\) ([3-9]\.|2.[4-9]|2.[1-3][0-9])'], [libtool_2_4_or_newer]) -ACX_PROG_VERSION([LIBTOOLIZE], +CTNG_PROG_VERSION([LIBTOOLIZE], [GNU libtoolize >= 2.4], [libtoolize], [glibtoolize libtoolize], ['\(GNU libtool\) ([3-9]\.|2.[4-9]|2.[1-3][0-9])'], [libtoolize_2_4_or_newer]) -ACX_PROG_VERSION([AUTOCONF], +CTNG_PROG_VERSION([AUTOCONF], [GNU autoconf >= 2.65], [autoconf], [autoconf], ['\(GNU Autoconf\) ([3-9]\.|2\.[7-9][0-9]|2\.6[5-9])'], [autoconf_2_63_or_newer]) -ACX_PROG_VERSION([AUTORECONF], +CTNG_PROG_VERSION([AUTORECONF], [GNU autoreconf >= 2.63], [autoreconf], [autoreconf], ['\(GNU Autoconf\) ([3-9]\.|2\.[7-9][0-9]|2\.6[3-9])'], [autoreconf_2_63_or_newer]) -ACX_PROG_VERSION([AUTOMAKE], +CTNG_PROG_VERSION([AUTOMAKE], [GNU automake >= 1.15], [automake], [automake], ['\(GNU automake\) ([2-9]\.|1\.[2-9][0-9]|1\.1[5-9])'], [automake_1_15_or_newer]) -ACX_PROG_VERSION([M4], +CTNG_PROG_VERSION([M4], [GNU m4 >= 1.4.12], [m4], [gm4 m4], ['\(GNU M4\) ([2-9]\.|1\.[5-9]|1\.[1-4][0-9]|1\.4\.[2-9][0-9]|1\.4\.1[2-9])'], [gnu_m4_1_4_12_or_newer]) -#---------------------------------------- -# Gperf 3.1 started generating functions with size_t rather than unsigned int -AC_MSG_CHECKING([for the type used in gperf declarations]) -echo "#include <string.h>" > conftest.gperf.c -echo "const char * in_word_set(const char *, GPERF_LEN_TYPE);" >> conftest.gperf.c -echo foo,bar | ${GPERF} -L ANSI-C >> conftest.gperf.c -AS_IF([${CC} -c -o /dev/null conftest.gperf.c -DGPERF_LEN_TYPE='size_t' >/dev/null 2>&1], - [AC_MSG_RESULT([size_t]) - GPERF_LEN_TYPE='size_t'], - [${CC} -c -o /dev/null conftest.gperf.c -DGPERF_LEN_TYPE='unsigned int' >/dev/null 2>&1], - [AC_MSG_RESULT([unsigned int]) - GPERF_LEN_TYPE='unsigned int'], - [AC_MSG_ERROR([unable to determine gperf len type])]) -rm -f conftest.gperf.c -AC_SUBST([GPERF_LEN_TYPE]) +CTNG_PROG_GPERF -#-------------------------------------------------------------------- -# Boring again... But still a bit of work to do... -#-------------------------------------------------------------------- AC_SUBST([kconfig_options]) -#---------------------------------------- AC_CHECK_PROGS([cvs], [cvs]) -ACX_SET_KCONFIG_OPTION([cvs]) +CTNG_SET_KCONFIG_OPTION([cvs]) -#---------------------------------------- AC_CHECK_PROGS([svn], [svn]) -ACX_SET_KCONFIG_OPTION([svn]) +CTNG_SET_KCONFIG_OPTION([svn]) AC_CHECK_PROGS([git], [git]) -ACX_SET_KCONFIG_OPTION([git]) +CTNG_SET_KCONFIG_OPTION([git]) AC_CHECK_PROGS([DPKG_BUILDFLAGS], [dpkg-buildflags]) -#-------------------------------------------------------------------- -# Now, for some fun... -#-------------------------------------------------------------------- +# FIXME why checking if not using the result? We don't provide replacemant malloc/alloca/... AC_C_INLINE AC_HEADER_STDC AC_FUNC_MALLOC @@ -417,7 +267,6 @@ AC_SEARCH_LIBS(bindtextdomain, intl, [test "$ac_res" = "none required" || INTL_L LIBS=$SAVE_LIBS AC_SUBST([INTL_LIBS]) -#---------------------------------------- # Check for ncurses, for the kconfig frontends AC_SUBST([ac_ct_curses_hdr]) AC_CHECK_HEADERS( @@ -437,9 +286,6 @@ AC_SEARCH_LIBS( [tgetent], [termcap tinfo ncursesw ncurses curses]) -#-------------------------------------------------------------------- -# Lastly, take care of crosstool-NG internal values -#-------------------------------------------------------------------- # Hey! We need the date! :-) DATE_FMT="%Y%m%d" if test "x$SOURCE_DATE_EPOCH" = "x"; then @@ -449,23 +295,10 @@ else fi AC_SUBST([DATE]) -# Decorate the version string if needed +# Decorate the version string per user-supplied version.sh, if any AS_IF( [test -f version.sh -a -x version.sh], - [V=$(./version.sh "${PACKAGE_VERSION}")]) -AS_IF( - [test -n "${V}"], - [PACKAGE_VERSION="${V}"], - [AS_CASE( - [${PACKAGE_VERSION}], - [git|*+git], - [rev_id="$( git rev-parse --short HEAD )" - git diff-index --quiet HEAD || rev_id="${rev_id}-dirty" - PACKAGE_VERSION="${PACKAGE_VERSION}+${rev_id:-unknown-$( date +%Y%m%d.%H%M%S )}" - ])]) -# Arrange to have no / in the directory name, no need to create an -# arbitrarily deep directory structure -[PACKAGE_VERSION="$( printf "${PACKAGE_VERSION}\n" |"${SED}" -r -e 's:/+:_:g;' )"] + [PACKAGE_VERSION=$(./version.sh "${PACKAGE_VERSION}")]) # Handle the local case AC_SUBST([sublibdir]) @@ -485,8 +318,10 @@ AS_IF( [sublibdir="/\${VERSION}" subdocdir="/\${VERSION}"]) -#-------------------------------------------------------------------- -# Finally, generate the output file(s) -#-------------------------------------------------------------------- -AC_CONFIG_FILES([Makefile kconfig/Makefile config/configure.in]) +AC_CONFIG_FILES([ + Makefile + kconfig/Makefile + config/configure.in +]) + AC_OUTPUT |