blob: 80e9b38f4d120bb076572deb6ce7212ab1c39d49 [file] [log] [blame]
H. Peter Anvin87bc6192002-04-30 20:53:16 +00001dnl Process this file with autoconf to produce a configure script.
2AC_INIT(nasm.c)
3
4dnl Check for broken VPATH handling on older NetBSD makes.
5AC_DEFUN(AC_PROG_MAKE_VPATHOK,
6[AC_MSG_CHECKING(whether ${MAKE-make} has sane VPATH handling)
7set dummy ${MAKE-make}; ac_make=`echo "[$]2" | sed 'y%./+-%__p_%'`
8AC_CACHE_VAL(ac_cv_prog_make_vpathok,
9[mkdir conftestdir
10cat > conftestdir/conftestmake <<\EOF
11VPATH = ..
12conftestfoo: conftestbar
13 @echo ac_make2temp=ok
14conftestbar: conftestbaz
15 @echo ac_maketemp=broken
16 @touch conftestbar
17EOF
18echo > conftestbaz # these two lines need to be...
19echo > conftestbar # ... in this order not the other
20changequote(, )dnl
21unset ac_maketemp
22unset ac_make2temp
23# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
24eval `cd conftestdir; ${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
25changequote([, ])dnl
26if test -n "$ac_maketemp"; then
27 ac_cv_prog_make_vpathok=no
28else
29 if test -n "$ac_make2temp"; then
30 ac_cv_prog_make_vpathok=yes
31 else
32 ac_cv_prog_make_vpathok=no
33 fi
34fi
35rm -rf conftestdir
36rm -f conftestbar conftestbaz])dnl
37if test $ac_cv_prog_make_vpathok = yes; then
38 AC_MSG_RESULT(yes)
39else
40 AC_MSG_RESULT(no)
41fi
42])
43
44AC_PREFIX_PROGRAM(nasm)
45
46dnl Checks for programs.
47AC_PROG_CC
48AC_PROG_LN_S
49AC_PROG_MAKE_SET
50if test -f nasm.c; then
51 # we're building in the source dir, so we don't need this check at all
52 ac_cv_prog_make_vpathok=yes
53else
54 AC_PROG_MAKE_VPATHOK
55fi
56AC_PROG_INSTALL
57
58if test "$GCC" = "yes"; then
59 GCCFLAGS="-Wall -ansi -pedantic"
60else
61 GCCFLAGS=
62fi
63AC_SUBST(GCCFLAGS)
64
H. Peter Anvin620515a2002-04-30 20:57:38 +000065dnl Look for "nroff" or "groff"
66AC_CHECK_PROGS(NROFF, groff nroff, echo)
67AC_SUBST(NROFF)
68
H. Peter Anvin87bc6192002-04-30 20:53:16 +000069dnl Checks for header files.
70AC_HEADER_STDC
71if test $ac_cv_header_stdc = no; then
72 AC_MSG_ERROR([NASM requires ANSI C header files to compile])
73fi
74
75AC_CHECK_HEADERS(limits.h)
76if test $ac_cv_header_limits_h = no; then
77 AC_MSG_ERROR([NASM requires '<limits.h>' to compile])
78fi
79
80dnl Checks for typedefs, structures, and compiler characteristics.
81AC_C_CONST
82if test $ac_cv_c_const = no; then
83 AC_MSG_ERROR([NASM requires ANSI C (specifically, working "const")])
84fi
85
86AC_TYPE_SIZE_T
87if test $ac_cv_type_size_t = no; then
88 AC_MSG_ERROR([NASM requires ANSI C (specifically, "size_t")])
89fi
90
91dnl Checks for library functions.
92AC_FUNC_VPRINTF
93if test $ac_cv_func_vprintf = no; then
94 AC_MSG_ERROR([NASM requires ANSI C (specifically, "vprintf" and friends)])
95fi
96
97AC_CHECK_FUNCS(strcspn)
98if test $ac_cv_func_strcspn = no; then
99 AC_MSG_ERROR([NASM requires ANSI C (specifically, "strcspn")])
100fi
101
102AC_CHECK_FUNCS(strspn)
103if test $ac_cv_func_strspn = no; then
104 AC_MSG_ERROR([NASM requires ANSI C (specifically, "strspn")])
105fi
106
107if test $ac_cv_prog_make_vpathok = no; then
108 echo Copying generated srcs into build directory to compensate for VPATH breakage
109 if test ! -f insnsa.c; then cp -p ${srcdir}/insnsa.c .; fi
110 if test ! -f insnsd.c; then cp -p ${srcdir}/insnsd.c .; fi
111 if test ! -f macros.c; then cp -p ${srcdir}/macros.c .; fi
112fi
113
114AC_OUTPUT(Makefile rdoff/Makefile)