configure.ac
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue May 08 23:33:55 2012 +0200 (2012-05-08)
branch1.15
changeset 2975 76d84aa2405f
parent 2961 d84ae99556cd
child 2999 4ccfca658d9b
permissions -rw-r--r--
1.15: update version to 1.15.2

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
yann@2834
     1
#                                               -*- Autoconf -*-
yann@2834
     2
# Process this file with autoconf to produce a configure script.
yann@2834
     3
yann@2834
     4
AC_PREREQ([2.67])
yann@2834
     5
#AC_INIT([crosstool-NG], [hg], [crossgcc@sourceware.org])
yann@2834
     6
AC_INIT([crosstool-NG], [m4_esyscmd_s([cat .version])], [crossgcc@sourceware.org])
yann@2834
     7
AC_CONFIG_AUX_DIR([scripts])
yann@2834
     8
yann@2834
     9
#--------------------------------------------------------------------
yann@2834
    10
# A few helper macros
yann@2834
    11
yann@2834
    12
# Check for required tool
yann@2834
    13
AC_DEFUN(
yann@2834
    14
    [ACX_CHECK_TOOL_REQ],
yann@2834
    15
    [AC_CHECK_TOOLS([$1], [$2])
yann@2834
    16
     AS_IF(
yann@2834
    17
        [test -z "$$1"],
yann@2834
    18
        [AC_MSG_ERROR([missing required tool: $2])])
yann@2834
    19
    ])
yann@2834
    20
yann@2834
    21
# Check for required tool, set variable to full pathname
yann@2834
    22
AC_DEFUN(
yann@2834
    23
    [ACX_PATH_TOOL_REQ],
yann@2834
    24
    [ACX_CHECK_TOOL_REQ([$1], [$2])
yann@2834
    25
     AS_CASE(
yann@2834
    26
        [$$1],
yann@2834
    27
        [/*],,
yann@2834
    28
        [?*],[AC_MSG_CHECKING([for absolute path to $$1])
yann@2834
    29
              $1=$(which $$1)
yann@2834
    30
              AC_MSG_RESULT([$$1])])])
yann@2834
    31
yann@2834
    32
# Check for required program
yann@2834
    33
AC_DEFUN(
yann@2834
    34
    [ACX_CHECK_PROGS_REQ],
yann@2834
    35
    [AC_CHECK_PROGS([$1], [$2])
yann@2834
    36
     AS_IF(
yann@2834
    37
        [test -z "$$1"],
yann@2834
    38
        [AC_MSG_ERROR([missing required tool: $2])])
yann@2834
    39
    ])
yann@2834
    40
yann@2834
    41
# Check for path to required program
yann@2834
    42
AC_DEFUN(
yann@2834
    43
    [ACX_PATH_PROGS_REQ],
yann@2834
    44
    [AC_PATH_PROGS([$1], [$2])
yann@2834
    45
     AS_IF(
yann@2834
    46
        [test -z "$$1"],
yann@2834
    47
        [AC_MSG_ERROR([missing required tool: $2])])
yann@2834
    48
    ])
yann@2834
    49
yann@2834
    50
# Set the kconfig option
yann@2834
    51
AC_DEFUN(
yann@2834
    52
    [ACX_SET_KCONFIG_OPTION],
yann@2834
    53
    [AS_IF(
yann@2834
    54
        [test -n "$$1"],
yann@2840
    55
        [kconfig_options="$kconfig_options has_$1=y"],
yann@2840
    56
        [kconfig_options="$kconfig_options has_$1"])
yann@2834
    57
    ])
yann@2834
    58
yann@2834
    59
#--------------------------------------------------------------------
yann@2834
    60
# Allow dummy --{en,dis}able-{static,shared}
yann@2834
    61
AC_ARG_ENABLE(
yann@2834
    62
    [local],
yann@2834
    63
    [AS_HELP_STRING(
yann@2834
    64
        [--enable-local],
yann@2834
    65
        [don't install, and use current directory])])
yann@2834
    66
AC_SUBST([enable_local], [${enable_local:-no}])
yann@2834
    67
AC_ARG_ENABLE(
yann@2834
    68
    [shared],
yann@2834
    69
    [AS_HELP_STRING(
yann@2834
    70
        [--enable-shared],
yann@2834
    71
        [build shared libraries (default=yes) (ignored)])])
yann@2834
    72
AC_ARG_ENABLE(
yann@2834
    73
    [static],
yann@2834
    74
    [AS_HELP_STRING(
yann@2834
    75
        [--enable-static],
yann@2834
    76
        [build static libraries (default=yes) (ignored)])])
yann@2834
    77
yann@2834
    78
#---------------------------------------------------------------------
yann@2834
    79
# Check for --build and --host...
yann@2834
    80
AC_CANONICAL_BUILD
yann@2834
    81
AC_CANONICAL_HOST
yann@2834
    82
# ... but refuse --target
yann@2834
    83
AS_IF([test -n "$target_alias"],
yann@2834
    84
      AC_MSG_ERROR([--target is not allowed]))
yann@2834
    85
yann@2834
    86
# Allow program name tranformation (--program-{prefix,suffix,transform-name})
yann@2834
    87
AC_ARG_PROGRAM
yann@2834
    88
yann@2834
    89
#---------------------------------------------------------------------
yann@2834
    90
# Initial checks that are usually done first (I don't know why, that's
yann@2834
    91
# just what I seem to experience...)
yann@2834
    92
#---------------------------------------------------------------------
yann@2834
    93
AC_PROG_INSTALL
yann@2839
    94
AC_PROG_GREP
yann@2834
    95
AC_PROG_EGREP
yann@2839
    96
AS_IF(
yann@2839
    97
    [test ! "$EGREP" = "$GREP -E"],
yann@2839
    98
    [AC_MSG_ERROR([egrep is not $GREP -E])])
yann@2834
    99
AC_CACHE_VAL([ac_cv_path_SED],
yann@2834
   100
    [AC_ARG_WITH([sed],
yann@2834
   101
        AS_HELP_STRING([--with-sed=PATH],
yann@2834
   102
                       [Specify the full PATH to sed]),
yann@2834
   103
        [ac_cv_path_SED=$withval])])
yann@2834
   104
AC_PROG_SED
yann@2834
   105
AC_MSG_CHECKING([whether sed understands -r -i -e])
yann@2834
   106
touch .ct-ng.sed.test
yann@2834
   107
if ${SED} -r -i -e 's/foo/bar/' .ct-ng.sed.test >/dev/null 2>&1; then
yann@2834
   108
    rm -f .ct-ng.sed.test
yann@2834
   109
    AC_MSG_RESULT([yes])
yann@2834
   110
else
yann@2834
   111
    rm -f .ct-ng.sed.test
yann@2834
   112
    AC_MSG_RESULT([no])
yann@2834
   113
    AC_MSG_ERROR()
yann@2834
   114
fi
yann@2834
   115
AC_PROG_LN_S
yann@2834
   116
yann@2834
   117
#--------------------------------------------------------------------
yann@2834
   118
# A bunch of boring tests...
yann@2834
   119
#--------------------------------------------------------------------
yann@2834
   120
AC_PROG_CC
yann@2834
   121
AS_IF([test -z "$CC"],
yann@2834
   122
      [AC_MSG_ERROR([no suitable compiler found])])
yann@2834
   123
AC_PROG_CPP
yann@2834
   124
AC_PROG_RANLIB
yann@2834
   125
ACX_PATH_TOOL_REQ([OBJCOPY], [objcopy])
yann@2834
   126
ACX_PATH_TOOL_REQ([OBJDUMP], [objdump])
yann@2834
   127
ACX_PATH_TOOL_REQ([READELF], [readelf])
yann@2834
   128
yann@2834
   129
ACX_CHECK_PROGS_REQ([bison], [bison])
yann@2834
   130
ACX_CHECK_PROGS_REQ([flex], [flex])
yann@2836
   131
ACX_CHECK_PROGS_REQ([gperf], [gperf])
yann@2834
   132
ACX_CHECK_PROGS_REQ([awk], [gawk mawk nawk awk])
yann@2834
   133
ACX_CHECK_PROGS_REQ([makeinfo], [makeinfo])
yann@2834
   134
ACX_CHECK_PROGS_REQ([cut], [cut])
yann@2834
   135
ACX_CHECK_PROGS_REQ([stat], [stat])
yann@2834
   136
ACX_CHECK_PROGS_REQ([readlink], [readlink])
yann@2961
   137
ACX_CHECK_PROGS_REQ([wget], [wget])
yann@2834
   138
ACX_CHECK_PROGS_REQ([tar], [tar])
yann@2834
   139
ACX_CHECK_PROGS_REQ([gzip], [gzip])
yann@2834
   140
ACX_CHECK_PROGS_REQ([bzip2], [bzip2])
yann@2834
   141
yann@2834
   142
#--------------------------------------------------------------------
yann@2834
   143
# Still boring, but remember the path, now...
yann@2834
   144
#--------------------------------------------------------------------
yann@2834
   145
ACX_PATH_PROGS_REQ([PATCH], [patch])
yann@2834
   146
yann@2834
   147
#--------------------------------------------------------------------
yann@2834
   148
# And a bunch of less boring tests...
yann@2834
   149
#--------------------------------------------------------------------
yann@2834
   150
# We need a bash that is >= 3.1
yann@2834
   151
AC_CACHE_VAL([ac_cv_path__BASH],
yann@2834
   152
    [AC_ARG_WITH([bash],
yann@2834
   153
        AS_HELP_STRING([--with-bash=PATH],
yann@2834
   154
                       [Specify the full PATH to bash >= 3.1]),
yann@2834
   155
        [ac_cv_path__BASH=$withval])])
yann@2834
   156
AC_CACHE_CHECK([for bash >= 3.1], [ac_cv_path__BASH],
yann@2834
   157
    [AC_PATH_PROGS_FEATURE_CHECK([_BASH], [bash],
yann@2834
   158
        [[_BASH_ver=$($ac_path__BASH --version 2>&1 \
yann@2834
   159
                     |$EGREP '^GNU bash, version (3\.[1-9]|4)')
yann@2834
   160
          test -n "$_BASH_ver" && ac_cv_path__BASH=$ac_path__BASH ac_path__BASH_found=:]],
yann@2834
   161
        [AC_MSG_RESULT([no])
yann@2834
   162
         AC_MSG_ERROR([could not find bash >= 3.1])])])
yann@2834
   163
AC_SUBST([_BASH], [$ac_cv_path__BASH])
yann@2834
   164
yann@2834
   165
#----------------------------------------
yann@2834
   166
# Check for GNU make 3.80 or above
yann@2834
   167
AC_CACHE_VAL([ac_cv_path_MAKE],
yann@2834
   168
    [AC_ARG_WITH([make],
yann@2834
   169
        AS_HELP_STRING([--with-make=PATH],
yann@2834
   170
                       [Specify the full PATH to GNU make >= 3.80]),
yann@2834
   171
        [ac_cv_path_MAKE=$withval])])
yann@2834
   172
AC_CACHE_CHECK([for GNU make >= 3.80], [ac_cv_path_MAKE],
yann@2834
   173
    [AC_PATH_PROGS_FEATURE_CHECK([MAKE], [make gmake],
yann@2834
   174
        [[MAKE_ver=$($ac_path_MAKE --version 2>&1 \
yann@2834
   175
                     |$EGREP '^GNU Make (3.[89][[:digit:]]|[4-9])')
yann@2834
   176
          test -n "$MAKE_ver" && ac_cv_path_MAKE=$ac_path_MAKE ac_path_MAKE_found=:]],
yann@2834
   177
        [AC_MSG_RESULT([no])
yann@2834
   178
         AC_MSG_ERROR([could not find GNU make >= 3.80])])])
yann@2834
   179
AC_SUBST([MAKE], [$ac_cv_path_MAKE])
yann@2834
   180
AC_PROG_MAKE_SET
yann@2834
   181
yann@2834
   182
#----------------------------------------
yann@2834
   183
# Check for libtool >= 1.5.26
yann@2834
   184
AC_CACHE_VAL([ac_cv_path_LIBTOOL],
yann@2834
   185
    [AC_ARG_WITH([libtool],
yann@2834
   186
        AS_HELP_STRING([--with-libtool=PATH],
yann@2834
   187
                       [Specify the full PATH to GNU libtool >= 1.5.26]),
yann@2834
   188
        [ac_cv_path_LIBTOOL=$withval])])
yann@2834
   189
AC_CACHE_CHECK([for GNU libtool >= 1.5.26], [ac_cv_path_LIBTOOL],
yann@2834
   190
    [AC_PATH_PROGS_FEATURE_CHECK([LIBTOOL], [libtool],
yann@2834
   191
        [[LIBTOOL_ver=$($ac_path_LIBTOOL --version 2>&1 \
yann@2834
   192
                        |$EGREP '\(GNU libtool.*\) (2[[:digit:]]*\.|1\.6[[:digit:]]*\.|1\.5\.[2-9][[:digit:]]+)')
yann@2834
   193
          test -n "$LIBTOOL_ver" && ac_cv_path_LIBTOOL=$ac_path_LIBTOOL ac_path_LIBTOOL_found=:]],
yann@2834
   194
        [AC_MSG_RESULT([no])
yann@2834
   195
         AC_MSG_ERROR([could not find GNU libtool >= 1.5.26])])])
yann@2834
   196
AC_SUBST([LIBTOOL], [$ac_cv_path_LIBTOOL])
yann@2834
   197
yann@2834
   198
#----------------------------------------
yann@2834
   199
# Check for libtoolize >= 1.5.26
yann@2834
   200
AC_CACHE_VAL([ac_cv_path_LIBTOOLIZE],
yann@2834
   201
    [AC_ARG_WITH([libtoolize],
yann@2834
   202
        AS_HELP_STRING([--with-libtoolize=PATH],
yann@2834
   203
                       [Specify the full PATH to GNU libtoolize >= 1.5.26]),
yann@2834
   204
        [ac_cv_path_LIBTOOLIZE=$withval])])
yann@2834
   205
AC_CACHE_CHECK([for GNU libtoolize >= 1.5.26], [ac_cv_path_LIBTOOLIZE],
js@2855
   206
    [AC_PATH_PROGS_FEATURE_CHECK([LIBTOOLIZE], [libtoolize],
yann@2834
   207
        [[LIBTOOLIZE_ver=$($ac_path_LIBTOOLIZE --version 2>&1 \
yann@2834
   208
                        |$EGREP '\(GNU libtool.*\) (2[[:digit:]]*\.|1\.6[[:digit:]]*\.|1\.5\.[2-9][[:digit:]]+)')
yann@2834
   209
          test -n "$LIBTOOLIZE_ver" && ac_cv_path_LIBTOOLIZE=$ac_path_LIBTOOLIZE ac_path_LIBTOOLIZE_found=:]],
yann@2834
   210
        [AC_MSG_RESULT([no])
yann@2834
   211
         AC_MSG_ERROR([could not find GNU libtoolize >= 1.5.26])])])
yann@2834
   212
AC_SUBST([LIBTOOLIZE], [$ac_cv_path_LIBTOOLIZE])
yann@2834
   213
yann@2834
   214
#----------------------------------------
yann@2834
   215
# Check for automake >= 1.10
yann@2834
   216
AC_CACHE_VAL([ac_cv_path_automake],
yann@2834
   217
    [AC_ARG_WITH([automake],
yann@2834
   218
        AS_HELP_STRING([--with-automake=PATH],
yann@2834
   219
                       [Specify the full PATH to GNU automake >= 1.10]),
yann@2834
   220
        [ac_cv_path_automake=$withval])])
yann@2834
   221
AC_CACHE_CHECK([for GNU automake >= 1.10], [ac_cv_path_automake],
yann@2834
   222
    [AC_PATH_PROGS_FEATURE_CHECK([automake], [automake],
yann@2834
   223
        [[automake_ver=$($ac_path_automake --version 2>&1 \
yann@2834
   224
                         |$EGREP '\(GNU automake\) (1\.[[:digit:]]{2,}|[2-9][[:digit:]]*\.)')
yann@2834
   225
          test -n "$automake_ver" && ac_cv_path_automake=$ac_path_automake ac_path_automake_found=:]],
yann@2834
   226
        [AC_MSG_RESULT([no])
yann@2834
   227
         AC_MSG_ERROR([could not find GNU automake >= 1.10])])])
yann@2834
   228
AC_SUBST([automake], [$ac_cv_path_automake])
yann@2834
   229
yann@2834
   230
#--------------------------------------------------------------------
yann@2834
   231
# Boring again... But still a bit of work to do...
yann@2834
   232
#--------------------------------------------------------------------
yann@2834
   233
AC_SUBST([kconfig_options])
yann@2834
   234
yann@2834
   235
#----------------------------------------
yann@2834
   236
AC_CHECK_PROGS([xz],   [xz])
yann@2834
   237
ACX_SET_KCONFIG_OPTION([xz])
yann@2834
   238
AS_IF(
yann@2834
   239
    [test -z "$xz"],
yann@2834
   240
    [AC_CHECK_PROGS([lzma], [lzma])])
yann@2834
   241
ACX_SET_KCONFIG_OPTION([lzma])
yann@2834
   242
yann@2834
   243
#----------------------------------------
yann@2834
   244
AC_CHECK_PROGS([cvs], [cvs])
yann@2834
   245
ACX_SET_KCONFIG_OPTION([cvs])
yann@2834
   246
yann@2834
   247
#----------------------------------------
yann@2834
   248
AC_CHECK_PROGS([svn], [svn])
yann@2834
   249
ACX_SET_KCONFIG_OPTION([svn])
yann@2834
   250
yann@2834
   251
#--------------------------------------------------------------------
yann@2834
   252
# Now, for some fun...
yann@2834
   253
#--------------------------------------------------------------------
yann@2834
   254
AC_C_INLINE
yann@2834
   255
AC_HEADER_STDC
yann@2834
   256
AC_FUNC_MALLOC
yann@2834
   257
AC_FUNC_REALLOC
yann@2834
   258
AC_FUNC_ALLOCA
yann@2835
   259
yann@2835
   260
#----------------------------------------
yann@2835
   261
# Check for gettext, for the kconfig frontends
yann@2835
   262
AC_SUBST([gettext])
yann@2835
   263
AC_CHECK_HEADERS(
yann@2835
   264
    [libintl.h],
yann@2835
   265
    [ac_ct_gettext_hdr=$ac_header; break])
yann@2835
   266
AS_IF(
yann@2835
   267
    [test -n "$ac_ct_gettext_hdr"],
yann@2835
   268
    [AC_CHECK_DECL(
yann@2966
   269
        [gettext],
yann@2966
   270
        [gettext=y],,
yann@2966
   271
        [AC_INCLUDES_DEFAULT()
yann@2966
   272
         #include <$ac_ct_gettext_hdr>])])
yann@2835
   273
yann@2835
   274
#----------------------------------------
yann@2835
   275
# Check for ncurses, for the kconfig frontends
yann@2835
   276
AC_SUBST([ac_ct_curses_hdr])
yann@2834
   277
AC_CHECK_HEADERS(
yann@2834
   278
    [ncurses/ncurses.h ncurses/curses.h ncursesw/curses.h ncurses.h curses.h],
yann@2835
   279
    [ac_ct_curses_hdr=$ac_header; break])
yann@2834
   280
AS_IF(
yann@2835
   281
    [test -z "$ac_ct_curses_hdr"],
yann@2834
   282
    [AC_MSG_ERROR([could not find curses header, required for the kconfig frontends])])
yann@2834
   283
AC_SEARCH_LIBS(
yann@2834
   284
    [initscr],
yann@2834
   285
    [ncursesw ncurses curses],
yann@2834
   286
    [ac_ct_curses_lib_found=yes; break])
yann@2834
   287
AS_IF(
yann@2834
   288
    [test -z "$ac_ct_curses_lib_found"],
yann@2834
   289
    [AC_MSG_ERROR([could not find curses library, required for the kconfig frontends])])
yann@2834
   290
yann@2834
   291
#--------------------------------------------------------------------
yann@2834
   292
# Lastly, take care of crosstool-NG internal values
yann@2834
   293
#--------------------------------------------------------------------
yann@2834
   294
# Hey! We need the date! :-)
yann@2834
   295
AC_SUBST(
yann@2834
   296
    [DATE],
yann@2834
   297
    [$(date +%Y%m%d)])
yann@2834
   298
yann@2834
   299
# Decorate the version string if needed
yann@2834
   300
AS_IF(
yann@2834
   301
    [test -f version.sh -a -x version.sh],
yann@2834
   302
    [V=$(./version.sh "${PACKAGE_VERSION}")])
yann@2834
   303
AS_IF(
yann@2834
   304
    [test -n "${V}"],
yann@2834
   305
    [PACKAGE_VERSION="${V}"],
yann@2834
   306
    [AS_CASE(
yann@2834
   307
        [${PACKAGE_VERSION}],
yann@2834
   308
        [hg|*+hg],
yann@2834
   309
        [rev_id="$( hg log -r . --template '{branch}-{node|short}\n' \
yann@2834
   310
                           2>/dev/null                               \
yann@2834
   311
                    || true                                          )"
benoit@2860
   312
         PACKAGE_VERSION="${PACKAGE_VERSION}+${rev_id:-unknown-$( date +%Y%m%d.%H%M%S )}"
yann@2834
   313
        ])])
yann@2834
   314
# Arrange to have no / in the directory name, no need to create an
yann@2834
   315
# arbitrarily deep directory structure
yann@2834
   316
[PACKAGE_VERSION="$( printf "${PACKAGE_VERSION}\n" |"${SED}" -r -e 's:/+:_:g;' )"]
yann@2834
   317
yann@2834
   318
# Handle the local case
yann@2834
   319
AC_SUBST([sublibdir])
yann@2834
   320
AC_SUBST([subdocdir])
yann@2834
   321
AS_IF(
yann@2834
   322
    [test "x$enable_local" = "xyes"],
yann@2834
   323
    [AC_MSG_NOTICE([overiding all of --prefix and the likes, because --enable-local was set])
yann@2834
   324
     prefix=$(pwd)
yann@2834
   325
     exec_prefix="$prefix"
yann@2834
   326
     bindir="$prefix"
yann@2834
   327
     libdir="$prefix"
yann@2834
   328
     sublibdir=""
yann@2834
   329
     docdir="$prefix""/docs"
yann@2834
   330
     subdocdir=""
yann@2834
   331
     datarootdir="$prefix"
yann@2834
   332
     mandir="$docdir"],
yann@2834
   333
    [sublibdir="/ct-ng.\${VERSION}"
yann@2834
   334
     subdocdir="/ct-ng.\${VERSION}"])
yann@2834
   335
yann@2834
   336
#--------------------------------------------------------------------
yann@2834
   337
# Finally, generate the output file(s)
yann@2834
   338
#--------------------------------------------------------------------
yann@2834
   339
AC_CONFIG_FILES([Makefile])
yann@2834
   340
AC_OUTPUT
yann@2834
   341
yann@2834
   342
yann@2834
   343
yann@2834
   344
# AC_CONFIG_SRCDIR([kconfig/menu.c])
yann@2834
   345
# AC_CONFIG_HEADERS([config.h])
yann@2834
   346
# 
yann@2834
   347
# # Checks for programs.
yann@2834
   348
# 
yann@2834
   349
# # Checks for libraries.
yann@2834
   350
# 
yann@2834
   351
# # Checks for header files.
yann@2834
   352
# AC_CHECK_HEADERS([fcntl.h inttypes.h libintl.h limits.h locale.h malloc.h stddef.h stdlib.h string.h sys/time.h unistd.h])
yann@2834
   353
# 
yann@2834
   354
# # Checks for typedefs, structures, and compiler characteristics.
yann@2834
   355
# AC_HEADER_STDBOOL
yann@2834
   356
# AC_TYPE_INT16_T
yann@2834
   357
# AC_TYPE_INT32_T
yann@2834
   358
# AC_TYPE_INT8_T
yann@2834
   359
# AC_TYPE_SIZE_T
yann@2834
   360
# AC_TYPE_UINT16_T
yann@2834
   361
# AC_TYPE_UINT32_T
yann@2834
   362
# AC_TYPE_UINT8_T
yann@2834
   363
# 
yann@2834
   364
# # Checks for library functions.
yann@2834
   365
# AC_FUNC_MALLOC
yann@2834
   366
# AC_FUNC_REALLOC
yann@2834
   367
# AC_CHECK_FUNCS([bzero gettimeofday memmove memset mkdir regcomp setlocale strcasecmp strchr strcspn strdup strncasecmp strpbrk strrchr strspn strtol uname])
yann@2834
   368
# 
yann@2834
   369
# AC_OUTPUT