blob: 009720a2dbc34497fcb8cf542fb78be1ca14f832 [file] [log] [blame]
H. Peter Anvin1170eb62002-05-19 02:26:38 +00001dnl Process this file with autoconf 2.53 or later to produce
2dnl a configure script.
3AC_PREREQ(2.53)
H. Peter Anvineea6b7a2003-09-08 20:02:10 +00004AC_INIT(config.h.in)
H. Peter Anvin2ef2f062003-09-01 04:19:37 +00005AC_CONFIG_HEADERS(config.h)
H. Peter Anvin87bc6192002-04-30 20:53:16 +00006
7dnl Check for broken VPATH handling on older NetBSD makes.
8AC_DEFUN(AC_PROG_MAKE_VPATHOK,
9[AC_MSG_CHECKING(whether ${MAKE-make} has sane VPATH handling)
10set dummy ${MAKE-make}; ac_make=`echo "[$]2" | sed 'y%./+-%__p_%'`
11AC_CACHE_VAL(ac_cv_prog_make_vpathok,
12[mkdir conftestdir
13cat > conftestdir/conftestmake <<\EOF
14VPATH = ..
15conftestfoo: conftestbar
16 @echo ac_make2temp=ok
17conftestbar: conftestbaz
18 @echo ac_maketemp=broken
19 @touch conftestbar
20EOF
21echo > conftestbaz # these two lines need to be...
22echo > conftestbar # ... in this order not the other
23changequote(, )dnl
24unset ac_maketemp
25unset ac_make2temp
26# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
27eval `cd conftestdir; ${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
28changequote([, ])dnl
29if test -n "$ac_maketemp"; then
30 ac_cv_prog_make_vpathok=no
31else
32 if test -n "$ac_make2temp"; then
33 ac_cv_prog_make_vpathok=yes
34 else
35 ac_cv_prog_make_vpathok=no
36 fi
37fi
38rm -rf conftestdir
39rm -f conftestbar conftestbaz])dnl
40if test $ac_cv_prog_make_vpathok = yes; then
41 AC_MSG_RESULT(yes)
42else
43 AC_MSG_RESULT(no)
44fi
45])
46
47AC_PREFIX_PROGRAM(nasm)
48
49dnl Checks for programs.
50AC_PROG_CC
51AC_PROG_LN_S
52AC_PROG_MAKE_SET
53if test -f nasm.c; then
54 # we're building in the source dir, so we don't need this check at all
55 ac_cv_prog_make_vpathok=yes
56else
57 AC_PROG_MAKE_VPATHOK
58fi
59AC_PROG_INSTALL
60
H. Peter Anvin1ed03872007-04-15 22:45:25 +000061dnl If we have gcc, add appropriate options
62PA_ADD_CFLAGS([-W])
63PA_ADD_CFLAGS([-Wall])
64PA_ADD_CFLAGS([-std=c99])
65PA_ADD_CFLAGS([-pedantic])
H. Peter Anvin87bc6192002-04-30 20:53:16 +000066
H. Peter Anvin620515a2002-04-30 20:57:38 +000067dnl Look for "nroff" or "groff"
H. Peter Anvinef7468f2002-04-30 20:57:59 +000068AC_CHECK_PROGS(NROFF, nroff, echo)
H. Peter Anvin620515a2002-04-30 20:57:38 +000069AC_SUBST(NROFF)
70
H. Peter Anvin87bc6192002-04-30 20:53:16 +000071dnl Checks for header files.
72AC_HEADER_STDC
73if test $ac_cv_header_stdc = no; then
74 AC_MSG_ERROR([NASM requires ANSI C header files to compile])
75fi
76
77AC_CHECK_HEADERS(limits.h)
78if test $ac_cv_header_limits_h = no; then
79 AC_MSG_ERROR([NASM requires '<limits.h>' to compile])
80fi
81
H. Peter Anvin52daec52007-06-21 19:00:12 +000082dnl Check for <inttypes.h> or add a substitute version
83AC_CHECK_HEADERS(inttypes.h, , CFLAGS="$CFLAGS -I\$(top_srcdir)/inttypes")
84
H. Peter Anvinfe501952007-10-02 21:53:51 -070085dnl The standard header for str*casecmp is <strings.h>
86AC_CHECK_HEADERS(strings.h)
87
H. Peter Anvin87bc6192002-04-30 20:53:16 +000088dnl Checks for typedefs, structures, and compiler characteristics.
89AC_C_CONST
H. Peter Anvin87bc6192002-04-30 20:53:16 +000090AC_TYPE_SIZE_T
H. Peter Anvin87bc6192002-04-30 20:53:16 +000091
92dnl Checks for library functions.
H. Peter Anvina3d1ccd2007-09-28 20:17:12 -070093AC_SUBST(XOBJS)
H. Peter Anvin87bc6192002-04-30 20:53:16 +000094
H. Peter Anvinb8af9aa2007-09-17 13:53:14 -070095AC_CHECK_FUNCS(strcspn, ,
96 AC_MSG_ERROR([NASM requires ANSI C (specifically, "strcspn")]))
H. Peter Anvin87bc6192002-04-30 20:53:16 +000097
H. Peter Anvinb8af9aa2007-09-17 13:53:14 -070098AC_CHECK_FUNCS(strspn, ,
99 AC_MSG_ERROR([NASM requires ANSI C (specifically, "strspn")]))
H. Peter Anvin87bc6192002-04-30 20:53:16 +0000100
H. Peter Anvinb8af9aa2007-09-17 13:53:14 -0700101missing=true
H. Peter Anvin304b6052007-09-28 10:50:20 -0700102AC_CHECK_FUNCS([vsnprintf _vsnprintf], missing=false)
H. Peter Anvinb8af9aa2007-09-17 13:53:14 -0700103if $missing; then
H. Peter Anvin304b6052007-09-28 10:50:20 -0700104 XOBJS="$XOBJS lib/vsnprintf.o"
Ed Beroseta5d29452004-12-15 23:02:20 +0000105fi
106
H. Peter Anvinb8af9aa2007-09-17 13:53:14 -0700107missing=true
H. Peter Anvin304b6052007-09-28 10:50:20 -0700108AC_CHECK_FUNCS([snprintf _snprintf], missing=false)
H. Peter Anvinb8af9aa2007-09-17 13:53:14 -0700109if $missing; then
H. Peter Anvin304b6052007-09-28 10:50:20 -0700110 XOBJS="$XOBJS lib/snprintf.o"
Ed Beroseta5d29452004-12-15 23:02:20 +0000111fi
112
H. Peter Anvinfe501952007-10-02 21:53:51 -0700113AC_CHECK_FUNCS(strcasecmp stricmp)
114AC_CHECK_FUNCS(strncasecmp strnicmp)
115AC_CHECK_FUNCS(strsep)
116
H. Peter Anvin038d8612007-04-12 16:54:50 +0000117AC_CHECK_FUNCS(getuid)
118AC_CHECK_FUNCS(getgid)
119
H. Peter Anvin87bc6192002-04-30 20:53:16 +0000120if test $ac_cv_prog_make_vpathok = no; then
121 echo Copying generated srcs into build directory to compensate for VPATH breakage
H. Peter Anvin1170eb62002-05-19 02:26:38 +0000122 for file in macros.c insnsa.c insnsd.c insnsn.c insnsi.h version.h version.mac; do
123 if test ! -f $file; then cp -p ${srcdir}/${file} .; fi
124 done
H. Peter Anvin87bc6192002-04-30 20:53:16 +0000125fi
126
H. Peter Anvin4b563af2002-05-04 00:15:02 +0000127AC_OUTPUT_COMMANDS([mkdir -p output])
H. Peter Anvin0fcdade2002-05-19 01:57:54 +0000128AC_OUTPUT(Makefile rdoff/Makefile doc/Makefile)