summaryrefslogtreecommitdiff
path: root/configure.in
blob: 5ab86962f8eb5749f166cbd6a32c65c8fe7f108c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
dnl Process this file with autoconf 2.53 or later to produce
dnl a configure script.
AC_PREREQ(2.53)
AC_REVISION([$Id$])
AC_INIT(nasm.c)
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

if test "$GCC" = "yes"; then
  GCCFLAGS="-Wall -ansi -pedantic"
else
  GCCFLAGS=
fi
AC_SUBST(GCCFLAGS)

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 Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
if test $ac_cv_c_const = no; then
  AC_MSG_ERROR([NASM requires ANSI C (specifically, working "const")])
fi

AC_TYPE_SIZE_T
if test $ac_cv_type_size_t = no; then
  AC_MSG_ERROR([NASM requires ANSI C (specifically, "size_t")])
fi

dnl Checks for library functions.
AC_FUNC_VPRINTF
if test $ac_cv_func_vprintf = no; then
  AC_MSG_ERROR([NASM requires ANSI C (specifically, "vprintf" and friends)])
fi

AC_CHECK_FUNCS(strcspn)
if test $ac_cv_func_strcspn = no; then
  AC_MSG_ERROR([NASM requires ANSI C (specifically, "strcspn")])
fi

AC_CHECK_FUNCS(strspn)
if test $ac_cv_func_strspn = no; then
  AC_MSG_ERROR([NASM requires ANSI C (specifically, "strspn")])
fi

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)