From: Peter Johnson Date: Fri, 15 Mar 2002 07:00:12 +0000 (-0000) Subject: Switch to requiring autoconf 2.50. We should really be using configure.ac X-Git-Tag: v0.1.0~43 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d854f4cf9f21b4d0d8707ce8b48c96a908e9f909;p=yasm Switch to requiring autoconf 2.50. We should really be using configure.ac instead of configure.in for the autoconf input file, but gettextize 0.10.35 complains if configure.in does not exist. svn path=/trunk/yasm/; revision=497 --- diff --git a/acconfig.h b/acconfig.h deleted file mode 100644 index 2d3917e9..00000000 --- a/acconfig.h +++ /dev/null @@ -1,29 +0,0 @@ -/* $IdPath$ */ - -#ifndef YASM_CONFIG_H -#define YASM_CONFIG_H - -/* Generated automatically from acconfig.h by autoheader. */ -/* Please make your changes there */ - -@TOP@ - -/* Workaround for bad implementations. */ -#undef HAVE_BOGUS_SYS_QUEUE_H - -/* gettext tests */ -#undef ENABLE_NLS -#undef HAVE_CATGETS -#undef HAVE_GETTEXT -#undef HAVE_LC_MESSAGES -#undef HAVE_STPCPY - -/* combined test for fork/way/msg* */ -#undef USE_FORKWAITMSG - -/* Check for GNU C Library */ -#undef HAVE_GNU_C_LIBRARY - -@BOTTOM@ - -#endif /* YASM_CONFIG_H */ diff --git a/configure.ac b/configure.ac index a78f47a6..bc18dbff 100644 --- a/configure.ac +++ b/configure.ac @@ -1,34 +1,280 @@ -AC_INIT(src/main.c) +# Process this file with autoconf to produce a configure script. +# $IdPath$ + +# Minimum required perl version for development +PERL_VERSION=5.004 + +# +# autoconf setup +# +AC_PREREQ(2.50) +AC_INIT([yasm], [0.0.1], [bug-yasm@tortall.net]) +AC_CONFIG_SRCDIR([src/main.c]) AC_CONFIG_AUX_DIR(config) -AM_CONFIG_HEADER(config.h) +AM_CONFIG_HEADER([config.h]) AM_INIT_AUTOMAKE(yasm, 0.0.1) +# +# autoconf command-line options +# AC_ARG_ENABLE(dev, -[ --enable-dev Use standard development FLAGS settings], +[ --enable-dev Enable full development build capability], [case "${enableval}" in yes) dev=true ;; no) dev=false ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-dev) ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-dev]) ;; esac],[dev=false]) AM_CONDITIONAL(DEV, test x$dev = xtrue) -AC_PATH_PROGS(PERL, perl perl5.004 perl5.003 perl5.002 perl5.001 perl5) +AC_ARG_ENABLE(morewarn, +[ --enable-morewarn Enable lots of extra GCC warnings], +[case "${enableval}" in + yes) morewarn=true ;; + no) morewarn=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-morewarn]) ;; +esac],[morewarn=false]) -AM_PROG_CC_STDC +AC_ARG_ENABLE(warnerror, +[ --enable-warnerror Treat GCC warnings as errors], +[case "${enableval}" in + yes) warnerror=true ;; + no) warnerror=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-warnerror]) ;; +esac],[warnerror=false]) -AM_PROG_LEX +AC_ARG_ENABLE(profiling, +[ --enable-profiling Enable profiling (requires GCC)], +[case "${enableval}" in + yes) profiling=true ;; + no) profiling=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-profiling]) ;; +esac],[profiling=false]) + +AC_ARG_ENABLE(dmalloc, +[ --enable-dmalloc Enable debug malloc (requires dmalloc library)], +[case "${enableval}" in + yes) dmalloc=true ;; + no) dmalloc=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-dmalloc]) ;; +esac],[dmalloc=false]) + +# +# Checks for programs. +# +# lex and yacc are only required for development. AC_PROG_YACC +AC_PROG_CC_STDC AC_PROG_INSTALL +AC_PROG_LN_S +AM_PROG_LEX AC_PROG_RANLIB +# REQUIRE a standard (ANSI/ISO) C compiler +if test "$ac_cv_prog_cc_stdc" = no; then + AC_MSG_ERROR([A standard (ANSI/ISO C89) C compiler is required.]) +fi + +# Check for Perl (for gen_instr.pl and the like, needed only for development) +AC_PATH_PROGS(PERL, $PERL perl5 perl) +# Check for groff (for rendering manpages, needed only for development) +AC_PATH_PROGS(GROFF, $GROFF groff) + +# Check for compiler output filename suffixes. +AC_OBJEXT +AC_EXEEXT + +# +# Checks for libraries. +# + +# dmalloc library (optional) +if ${dmalloc}; then + AC_CHECK_LIB(dmalloc, dmalloc_shutdown) +fi + +# +# Checks for header files. +# AC_HEADER_STDC +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS([alloca.h limits.h sys/cdefs.h sys/ipc.h sys/msg.h sys/param.h sys/types.h sys/queue.h unistd.h]) + +# dmalloc library (optional) +if ${dmalloc}; then + AC_CHECK_HEADERS([dmalloc.h]) +fi + +# REQUIRE standard C headers +if test "$ac_cv_header_stdc" != yes; then + AC_MSG_ERROR([Standard (ANSI/ISO C89) header files are required.]) +fi +# +# Checks for typedefs, structures, and compiler characteristics. +# AC_C_CONST +AC_C_INLINE +AC_C_PROTOTYPES +# PID_T is used by the test suite (not required). +AC_TYPE_PID_T AC_TYPE_SIZE_T +# +# Checks for library functions. +# +AC_FUNC_FORK +AC_FUNC_MALLOC AC_FUNC_VPRINTF -AC_CHECK_FUNCS(memcpy toascii) -AC_REPLACE_FUNCS(strdup strtoul) +AC_CHECK_FUNCS([abort memcpy memmove strrchr toascii]) +# Look for the case-insensitive comparison functions +AC_CHECK_FUNCS([strcasecmp strncasecmp stricmp strcmpi]) +# Check for stuff wanted by the test suite. None of this is required. +AC_CHECK_FUNCS([msgctl msgget msgrcv msgsnd strerror snprintf wait]) +AC_REPLACE_FUNCS([strsep mergesort]) + +# +# Check for gettext() and other i18n/l10n things. +# +ALL_LINGUAS="" +AM_GNU_GETTEXT +# autoheader templates for AM_GNU_GETTEXT checks. +AH_TEMPLATE([ENABLE_NLS], []) +AH_TEMPLATE([HAVE_CATGETS], []) +AH_TEMPLATE([HAVE_GETTEXT], []) +AH_TEMPLATE([HAVE_LC_MESSAGES], []) +AH_TEMPLATE([HAVE_STPCPY], []) + +# Check for GNU C Library +AH_TEMPLATE([HAVE_GNU_C_LIBRARY], [Define if you have the GNU C Library]) +AC_CACHE_CHECK([for GNU C Library], yasm_cv_header_gnulib, + AC_EGREP_CPP(gnulib, + [#include + #ifdef __GNU_LIBRARY__ + gnulib + #endif + ], yasm_cv_header_gnulib=yes, yasm_cv_header_gnulib=no)) +if test "$yasm_cv_header_gnulib" = yes; then + AC_DEFINE([HAVE_GNU_C_LIBRARY]) +fi + +# Force x86 architecture only for now. +ARCH=x86 +AC_SUBST([ARCH]) + +# Require things for --enable-dmalloc option. +DMALLOCFLAGS= +if ${dmalloc}; then + if test "$ac_cv_header_dmalloc_h" != yes || + test "$ac_cv_lib_dmalloc_dmalloc_shutdown" != yes; then + AC_MSG_ERROR([dmalloc required for --enable-dmalloc.]) + else + AC_DEFINE([DMALLOC], 1, [Enable dmalloc library debugging.]) + fi +else + if ${morewarn}; then + DMALLOCFLAGS="-Wredundant-decls" + fi +fi + +# Require things for --enable-dev option. +if ${dev}; then + # Require Perl + if test -z "$PERL" || test "$PERL" = ":"; then + AC_MSG_ERROR([Perl not found in \$PATH]) + fi + + # Require Perl >= PERL_VERSION + AC_MSG_CHECKING([for minimum required perl version >= $PERL_VERSION]) + _perl_version=`PERL_VERSION=$PERL_VERSION $PERL -e 'print "$]"; if ($] >= $ENV{PERL_VERSION}) { exit(0); } else { exit(1); }' 2>&5` + _perl_res=$? + AC_MSG_RESULT([$_perl_version]) + + if test "$_perl_res" != 0; then + AC_MSG_ERROR([Perl $PERL_VERSION or higher is required.]) + fi + + # Require groff + if test -z "$GROFF" || test "$GROFF" = ":"; then + AC_MSG_ERROR([groff not found in \$PATH]) + fi +fi + +# +# Add some more CFLAGS for various options. +# + +# "Check" tests can use fork/wait/msg* if ALL are available. +AH_TEMPLATE([USE_FORKWAITMSG], [Combined test for fork/wait/msg*]) +if ${check}; then + if test "$ac_cv_func_fork" = yes && + test "$ac_cv_func_wait" = yes && + test "$ac_cv_func_msgctl" = yes && + test "$ac_cv_func_msgget" = yes && + test "$ac_cv_func_msgrcv" = yes && + test "$ac_cv_func_msgsnd" = yes; then + AC_DEFINE([USE_FORKWAITMSG]) + AC_DEFINE([_GNU_SOURCE], 1, + [Make sure we see all GNU extensions.]) + AC_DEFINE([_SVID_SOURCE], 1, + [Make sure we see all SVID extensions.]) + fi +fi + +# Enable debugging if --enable-dev, otherwise optimize +if ${dev}; then + DEVFLAGS=" -g" +else + DEVFLAGS=" -O" +fi + +# More warnings to help write clean code +if ${morewarn}; then + MOREWARNFLAGS="-Wbad-function-cast -Wcast-align -Wcast-qual -Wchar-subscripts -Winline -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings" +fi + +# Turn warnings into errors +if ${warnerror}; then + WARNERRORFLAGS="-Werror" +fi + +# Enable output of profiling information +if ${profiling}; then + PROFILINGFLAGS="-pg" +fi + +# If we're using GCC, then we can enable the above CFLAGS as well as turn on +# -ansi -pedantic -Wall. +if test "$GCC" = yes; then + ANSI_CFLAGS="-ansi -pedantic -Wall $MOREWARNFLAGS $WARNERRORFLAGS $DEVFLAGS $PROFILINGFLAGS $DMALLOCFLAGS" +else + ANSI_CFLAGS="" +fi +AC_SUBST(ANSI_CFLAGS) + +# Check for target-specific bogus sys/queue.h +AH_TEMPLATE([HAVE_BOGUS_SYS_QUEUE_H], + [Workaround for bad implementations.]) +case "$host" in +*-*-sunos4*) + AC_DEFINE([HAVE_BOGUS_SYS_QUEUE_H]) + ;; +*-sni-sysv*) + AC_DEFINE([HAVE_BOGUS_SYS_QUEUE_H]) + ;; +*-*-sco3.2v4*) + AC_DEFINE([HAVE_BOGUS_SYS_QUEUE_H]) + ;; +*-*-sco3.2v5*) + AC_DEFINE([HAVE_BOGUS_SYS_QUEUE_H]) + ;; +*-*-linux*) + AC_DEFINE([HAVE_BOGUS_SYS_QUEUE_H]) + ;; +esac -AC_OUTPUT(Makefile src/Makefile src/parsers/Makefile src/parsers/nasm/Makefile src/preprocs/Makefile src/preprocs/raw/Makefile src/outfmts/Makefile src/outfmts/dbg/Makefile) +AC_CONFIG_FILES([Makefile + intl/Makefile + po/Makefile.in +]) +AC_OUTPUT diff --git a/configure.in b/configure.in index a3318ffe..bc18dbff 100644 --- a/configure.in +++ b/configure.in @@ -7,10 +7,11 @@ PERL_VERSION=5.004 # # autoconf setup # -AC_PREREQ(2.13) -AC_INIT([src/main.c]) +AC_PREREQ(2.50) +AC_INIT([yasm], [0.0.1], [bug-yasm@tortall.net]) +AC_CONFIG_SRCDIR([src/main.c]) AC_CONFIG_AUX_DIR(config) -AM_CONFIG_HEADER(config.h) +AM_CONFIG_HEADER([config.h]) AM_INIT_AUTOMAKE(yasm, 0.0.1) @@ -58,24 +59,12 @@ AC_ARG_ENABLE(dmalloc, *) AC_MSG_ERROR([bad value ${enableval} for --enable-dmalloc]) ;; esac],[dmalloc=false]) -# -# Check for gettext() and other i18n/l10n things. -# -ALL_LINGUAS="" -AM_GNU_GETTEXT -# autoheader templates for AM_GNU_GETTEXT checks. -AH_TEMPLATE([ENABLE_NLS], []) -AH_TEMPLATE([HAVE_CATGETS], []) -AH_TEMPLATE([HAVE_GETTEXT], []) -AH_TEMPLATE([HAVE_LC_MESSAGES], []) -AH_TEMPLATE([HAVE_STPCPY], []) - # # Checks for programs. # # lex and yacc are only required for development. AC_PROG_YACC -AM_PROG_CC_STDC +AC_PROG_CC_STDC AC_PROG_INSTALL AC_PROG_LN_S AM_PROG_LEX @@ -113,7 +102,7 @@ AC_CHECK_HEADERS([alloca.h limits.h sys/cdefs.h sys/ipc.h sys/msg.h sys/param.h # dmalloc library (optional) if ${dmalloc}; then - AC_CHECK_HEADERS(dmalloc.h) + AC_CHECK_HEADERS([dmalloc.h]) fi # REQUIRE standard C headers @@ -126,6 +115,7 @@ fi # AC_C_CONST AC_C_INLINE +AC_C_PROTOTYPES # PID_T is used by the test suite (not required). AC_TYPE_PID_T AC_TYPE_SIZE_T @@ -133,14 +123,28 @@ AC_TYPE_SIZE_T # # Checks for library functions. # +AC_FUNC_FORK +AC_FUNC_MALLOC AC_FUNC_VPRINTF AC_CHECK_FUNCS([abort memcpy memmove strrchr toascii]) # Look for the case-insensitive comparison functions AC_CHECK_FUNCS([strcasecmp strncasecmp stricmp strcmpi]) # Check for stuff wanted by the test suite. None of this is required. -AC_CHECK_FUNCS([fork msgctl msgget msgrcv msgsnd strerror snprintf wait]) +AC_CHECK_FUNCS([msgctl msgget msgrcv msgsnd strerror snprintf wait]) AC_REPLACE_FUNCS([strsep mergesort]) +# +# Check for gettext() and other i18n/l10n things. +# +ALL_LINGUAS="" +AM_GNU_GETTEXT +# autoheader templates for AM_GNU_GETTEXT checks. +AH_TEMPLATE([ENABLE_NLS], []) +AH_TEMPLATE([HAVE_CATGETS], []) +AH_TEMPLATE([HAVE_GETTEXT], []) +AH_TEMPLATE([HAVE_LC_MESSAGES], []) +AH_TEMPLATE([HAVE_STPCPY], []) + # Check for GNU C Library AH_TEMPLATE([HAVE_GNU_C_LIBRARY], [Define if you have the GNU C Library]) AC_CACHE_CHECK([for GNU C Library], yasm_cv_header_gnulib, @@ -269,7 +273,8 @@ case "$host" in ;; esac -AC_OUTPUT(Makefile +AC_CONFIG_FILES([Makefile intl/Makefile po/Makefile.in -) +]) +AC_OUTPUT