mirror of
https://github.com/netwide-assembler/nasm.git
synced 2024-11-27 08:10:07 +08:00
b8af9aa522
Some versions of MSVC have snprintf() and vsnprintf() only with a leading underscore. Handle that a bit more cleanly.
121 lines
3.1 KiB
Plaintext
121 lines
3.1 KiB
Plaintext
dnl Process this file with autoconf 2.53 or later to produce
|
|
dnl a configure script.
|
|
AC_PREREQ(2.53)
|
|
AC_INIT(config.h.in)
|
|
AC_CONFIG_HEADERS(config.h)
|
|
|
|
dnl Check for broken VPATH handling on older NetBSD makes.
|
|
AC_DEFUN(AC_PROG_MAKE_VPATHOK,
|
|
[AC_MSG_CHECKING(whether ${MAKE-make} has sane VPATH handling)
|
|
set dummy ${MAKE-make}; ac_make=`echo "[$]2" | sed 'y%./+-%__p_%'`
|
|
AC_CACHE_VAL(ac_cv_prog_make_vpathok,
|
|
[mkdir conftestdir
|
|
cat > conftestdir/conftestmake <<\EOF
|
|
VPATH = ..
|
|
conftestfoo: conftestbar
|
|
@echo ac_make2temp=ok
|
|
conftestbar: conftestbaz
|
|
@echo ac_maketemp=broken
|
|
@touch conftestbar
|
|
EOF
|
|
echo > conftestbaz # these two lines need to be...
|
|
echo > conftestbar # ... in this order not the other
|
|
changequote(, )dnl
|
|
unset ac_maketemp
|
|
unset ac_make2temp
|
|
# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
|
|
eval `cd conftestdir; ${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
|
|
changequote([, ])dnl
|
|
if test -n "$ac_maketemp"; then
|
|
ac_cv_prog_make_vpathok=no
|
|
else
|
|
if test -n "$ac_make2temp"; then
|
|
ac_cv_prog_make_vpathok=yes
|
|
else
|
|
ac_cv_prog_make_vpathok=no
|
|
fi
|
|
fi
|
|
rm -rf conftestdir
|
|
rm -f conftestbar conftestbaz])dnl
|
|
if test $ac_cv_prog_make_vpathok = yes; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
])
|
|
|
|
AC_PREFIX_PROGRAM(nasm)
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_LN_S
|
|
AC_PROG_MAKE_SET
|
|
if test -f nasm.c; then
|
|
# we're building in the source dir, so we don't need this check at all
|
|
ac_cv_prog_make_vpathok=yes
|
|
else
|
|
AC_PROG_MAKE_VPATHOK
|
|
fi
|
|
AC_PROG_INSTALL
|
|
|
|
dnl If we have gcc, add appropriate options
|
|
PA_ADD_CFLAGS([-W])
|
|
PA_ADD_CFLAGS([-Wall])
|
|
PA_ADD_CFLAGS([-std=c99])
|
|
PA_ADD_CFLAGS([-pedantic])
|
|
|
|
dnl Look for "nroff" or "groff"
|
|
AC_CHECK_PROGS(NROFF, nroff, echo)
|
|
AC_SUBST(NROFF)
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
if test $ac_cv_header_stdc = no; then
|
|
AC_MSG_ERROR([NASM requires ANSI C header files to compile])
|
|
fi
|
|
|
|
AC_CHECK_HEADERS(limits.h)
|
|
if test $ac_cv_header_limits_h = no; then
|
|
AC_MSG_ERROR([NASM requires '<limits.h>' to compile])
|
|
fi
|
|
|
|
dnl Check for <inttypes.h> or add a substitute version
|
|
AC_CHECK_HEADERS(inttypes.h, , CFLAGS="$CFLAGS -I\$(top_srcdir)/inttypes")
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_TYPE_SIZE_T
|
|
|
|
dnl Checks for library functions.
|
|
|
|
AC_CHECK_FUNCS(strcspn, ,
|
|
AC_MSG_ERROR([NASM requires ANSI C (specifically, "strcspn")]))
|
|
|
|
AC_CHECK_FUNCS(strspn, ,
|
|
AC_MSG_ERROR([NASM requires ANSI C (specifically, "strspn")]))
|
|
|
|
missing=true
|
|
AC_CHECK_FUNCS([snprintf _snprintf], missing=false)
|
|
if $missing; then
|
|
AC_MSG_ERROR([NASM requires ISO C99 (specifically, "snprintf")])
|
|
fi
|
|
|
|
missing=true
|
|
AC_CHECK_FUNCS([vsnprintf _vsnprintf], missing=false)
|
|
if $missing; then
|
|
AC_MSG_ERROR([NASM requires ISO C99 (specifically, "vsnprintf")])
|
|
fi
|
|
|
|
AC_CHECK_FUNCS(getuid)
|
|
AC_CHECK_FUNCS(getgid)
|
|
|
|
if test $ac_cv_prog_make_vpathok = no; then
|
|
echo Copying generated srcs into build directory to compensate for VPATH breakage
|
|
for file in macros.c insnsa.c insnsd.c insnsn.c insnsi.h version.h version.mac; do
|
|
if test ! -f $file; then cp -p ${srcdir}/${file} .; fi
|
|
done
|
|
fi
|
|
|
|
AC_OUTPUT_COMMANDS([mkdir -p output])
|
|
AC_OUTPUT(Makefile rdoff/Makefile doc/Makefile)
|