From d854f4cf9f21b4d0d8707ce8b48c96a908e9f909 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Fri, 15 Mar 2002 07:00:12 +0000 Subject: [PATCH] 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 --- acconfig.h | 29 ------ configure.ac | 266 +++++++++++++++++++++++++++++++++++++++++++++++++-- configure.in | 45 +++++---- 3 files changed, 281 insertions(+), 59 deletions(-) delete mode 100644 acconfig.h 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 -- 2.40.0