summaryrefslogtreecommitdiff
path: root/configure.in
blob: 85dd6ad33490ed8db7bb18ae672d739c92c25f2d (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
120
121
122
123
124
125
126
127
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(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_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

AC_CHECK_FUNCS(snprintf)
if test $ac_cv_func_snprintf = no; then
  AC_MSG_ERROR([NASM requires ISO C99 (specifically, "snprintf")])
fi

AC_CHECK_FUNCS(vsnprintf)
if test $ac_cv_func_snprintf = no; 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)