mirror of https://github.com/yasm/yasm.git
parent
dd1654d62f
commit
d265748dcc
2 changed files with 253 additions and 9 deletions
@ -1,24 +1,268 @@ |
|||||||
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.13) |
||||||
|
AC_INIT([src/main.c]) |
||||||
AC_CONFIG_AUX_DIR(config) |
AC_CONFIG_AUX_DIR(config) |
||||||
AM_CONFIG_HEADER(include/config.h) |
AM_CONFIG_HEADER(config.h) |
||||||
|
|
||||||
AM_INIT_AUTOMAKE(yasm, 0.0.1) |
AM_INIT_AUTOMAKE(yasm, 0.0.1) |
||||||
|
|
||||||
AC_PATH_PROGS(PERL, perl perl5.004 perl5.003 perl5.002 perl5.001 perl5) |
# |
||||||
|
# autoconf command-line options |
||||||
|
# |
||||||
|
AC_ARG_ENABLE(dev, |
||||||
|
[ --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]) ;; |
||||||
|
esac],[dev=false]) |
||||||
|
AM_CONDITIONAL(DEV, test x$dev = xtrue) |
||||||
|
|
||||||
AM_PROG_CC_STDC |
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_LEX |
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]) |
||||||
|
|
||||||
|
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]) |
||||||
|
|
||||||
|
# |
||||||
|
# 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 |
AC_PROG_YACC |
||||||
|
AM_PROG_CC_STDC |
||||||
AC_PROG_INSTALL |
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) |
||||||
|
AC_CHECK_LIB(dmalloc, main) |
||||||
|
|
||||||
|
# |
||||||
|
# Checks for header files. |
||||||
|
# |
||||||
AC_HEADER_STDC |
AC_HEADER_STDC |
||||||
|
AC_HEADER_SYS_WAIT |
||||||
|
AC_CHECK_HEADERS([alloca.h dmalloc.h limits.h sys/cdefs.h sys/ipc.h sys/msg.h sys/param.h sys/types.h sys/queue.h unistd.h]) |
||||||
|
|
||||||
|
# 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_CONST |
||||||
|
AC_C_INLINE |
||||||
|
# PID_T is used by the test suite (not required). |
||||||
|
AC_TYPE_PID_T |
||||||
AC_TYPE_SIZE_T |
AC_TYPE_SIZE_T |
||||||
|
|
||||||
|
# |
||||||
|
# Checks for library functions. |
||||||
|
# |
||||||
AC_FUNC_VPRINTF |
AC_FUNC_VPRINTF |
||||||
AC_CHECK_FUNCS(memcpy toascii) |
AC_CHECK_FUNCS([abort memcpy memmove strrchr toascii]) |
||||||
AC_REPLACE_FUNCS(strdup strtoul) |
# 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_REPLACE_FUNCS([strsep mergesort]) |
||||||
|
|
||||||
|
# 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 <features.h> |
||||||
|
#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_main" != 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 <sys/queue.h> 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 include/Makefile) |
AC_OUTPUT(Makefile |
||||||
|
intl/Makefile |
||||||
|
po/Makefile.in |
||||||
|
) |
||||||
|
Loading…
Reference in new issue