configure.ac revision 298192
1215976Sjmallettdnl Process this file with autoconf to produce a configure script.
2215976SjmallettAC_INIT([file],[5.26],[christos@astron.com])
3215976SjmallettAM_INIT_AUTOMAKE([subdir-objects foreign])
4215976Sjmallettm4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
5215976Sjmallett
6215976SjmallettAC_CONFIG_HEADERS([config.h])
7215976SjmallettAC_CONFIG_MACRO_DIR([m4])
8215976Sjmallett
9215976SjmallettAC_MSG_CHECKING(for builtin ELF support)
10215976SjmallettAC_ARG_ENABLE(elf,
11215976Sjmallett[  --disable-elf            disable builtin ELF support],
12215976Sjmallett[if test "${enableval}" = yes; then
13215976Sjmallett  AC_MSG_RESULT(yes)
14215976Sjmallett  AC_DEFINE([BUILTIN_ELF], 1, [Define if built-in ELF support is used])
15215976Sjmallettelse
16215976Sjmallett  AC_MSG_RESULT(no)
17215976Sjmallettfi], [
18215976Sjmallett  # enable by default
19215976Sjmallett  AC_MSG_RESULT(yes)
20215976Sjmallett  AC_DEFINE([BUILTIN_ELF], 1, [Define in built-in ELF support is used])
21215976Sjmallett])
22215976Sjmallett
23215976SjmallettAC_MSG_CHECKING(for ELF core file support)
24215976SjmallettAC_ARG_ENABLE(elf-core,
25215976Sjmallett[  --disable-elf-core       disable ELF core file support],
26215976Sjmallett[if test "${enableval}" = yes; then
27215976Sjmallett  AC_MSG_RESULT(yes)
28215976Sjmallett  AC_DEFINE([ELFCORE], 1, [Define for ELF core file support])
29215976Sjmallettelse
30215976Sjmallett  AC_MSG_RESULT(no)
31215976Sjmallettfi], [
32215976Sjmallett  # enable by default
33215976Sjmallett  AC_MSG_RESULT(yes)
34215976Sjmallett  AC_DEFINE([ELFCORE], 1, [Define for ELF core file support])
35215976Sjmallett])
36215976Sjmallett
37215976SjmallettAC_MSG_CHECKING(for file formats in man section 5)
38215976SjmallettAC_ARG_ENABLE(fsect-man5,
39215976Sjmallett[  --enable-fsect-man5      enable file formats in man section 5],
40215976Sjmallett[if test "${enableval}" = yes; then
41215976Sjmallett  AC_MSG_RESULT(yes)
42215976Sjmallett  fsect=5
43215976Sjmallettelse
44215976Sjmallett  AC_MSG_RESULT(no)
45215976Sjmallett  fsect=4
46215976Sjmallettfi], [
47215976Sjmallett  # disable by default
48215976Sjmallett  AC_MSG_RESULT(no)
49215976Sjmallett  fsect=4
50215976Sjmallett])
51215976Sjmallett
52215976SjmallettAC_CANONICAL_HOST
53215976Sjmallettcase "$host_os" in
54215976Sjmallett   mingw32*)
55215976Sjmallett      MINGW=1
56215976Sjmallett      ;;
57215976Sjmallett   *)
58215976Sjmallett      MINGW=0
59215976Sjmallett      ;;
60215976Sjmallettesac
61215976SjmallettAC_SUBST(MINGW)
62215976SjmallettAM_CONDITIONAL(MINGW, test "$MINGW" = 1)
63215976Sjmallett
64215976SjmallettAC_SUBST([pkgdatadir], ['$(datadir)/misc'])
65215976SjmallettAC_SUBST(fsect)
66215976SjmallettAM_CONDITIONAL(FSECT5, test x$fsect = x5)
67215976Sjmallett
68215976SjmallettAC_SUBST(WARNINGS)
69215976Sjmallett
70215976Sjmallettdnl Checks for programs.
71215976SjmallettAC_PROG_CC_STDC
72215976SjmallettAC_USE_SYSTEM_EXTENSIONS
73215976SjmallettAM_PROG_CC_C_O
74215976SjmallettAC_C_BIGENDIAN
75215976SjmallettAC_PROG_INSTALL
76215976SjmallettAC_PROG_LN_S
77215976SjmallettLT_INIT([disable-static pic-only])
78215976Sjmallettgl_VISIBILITY
79215976Sjmallettdnl Checks for headers
80215976SjmallettAC_HEADER_STDC
81215976SjmallettAC_HEADER_MAJOR
82215976SjmallettAC_HEADER_SYS_WAIT
83215976SjmallettAC_CHECK_HEADERS(stdint.h fcntl.h locale.h stdint.h inttypes.h unistd.h)
84215976SjmallettAC_CHECK_HEADERS(stddef.h utime.h wchar.h wctype.h limits.h)
85215976SjmallettAC_CHECK_HEADERS(getopt.h err.h xlocale.h signal.h)
86215976SjmallettAC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h sys/utime.h sys/time.h)
87215976SjmallettAC_CHECK_HEADERS(zlib.h)
88215976SjmallettAC_CHECK_TYPE([sig_t],[AC_DEFINE([HAVE_SIG_T],1,[Have sig_t type])],,[
89215976Sjmallett#ifdef HAVE_SIGNAL_H
90215976Sjmallett#include <signal.h>
91215976Sjmallett#endif])
92215976Sjmallett
93215976Sjmallettdnl Checks for typedefs, structures, and compiler characteristics.
94215976SjmallettAC_C_CONST
95215976SjmallettAC_TYPE_OFF_T
96215976SjmallettAC_TYPE_SIZE_T
97215976SjmallettAC_CHECK_MEMBERS([struct stat.st_rdev])
98215976Sjmallett
99215976SjmallettAC_CHECK_MEMBERS([struct tm.tm_gmtoff])
100215976SjmallettAC_STRUCT_TIMEZONE
101215976SjmallettAC_STRUCT_TIMEZONE_DAYLIGHT
102215976SjmallettAC_SYS_LARGEFILE
103215976SjmallettAC_FUNC_FSEEKO
104215976SjmallettAC_TYPE_MBSTATE_T
105215976Sjmallett
106215976SjmallettAC_STRUCT_OPTION_GETOPT_H
107215976SjmallettAC_TYPE_PID_T
108215976SjmallettAC_TYPE_UINT8_T
109215976SjmallettAC_TYPE_UINT16_T
110215976SjmallettAC_TYPE_UINT32_T
111215976SjmallettAC_TYPE_INT32_T
112215976SjmallettAC_TYPE_UINT64_T
113215976SjmallettAC_TYPE_INT64_T
114215976SjmallettAC_TYPE_INTPTR_T
115215976SjmallettAC_TYPE_UINTPTR_T
116215976SjmallettAC_FUNC_MMAP
117215976SjmallettAC_FUNC_FORK
118215976SjmallettAC_FUNC_MBRTOWC
119215976Sjmallett
120215976SjmallettAC_MSG_CHECKING(for gcc compiler warnings)
121215976SjmallettAC_ARG_ENABLE(warnings,
122215976Sjmallett[  --disable-warnings	disable compiler warnings],
123215976Sjmallett[if test "${enableval}" = no -o "$GCC" = no; then
124215976Sjmallett   AC_MSG_RESULT(no)
125215976Sjmallett   WARNINGS=
126215976Sjmallettelse
127215976Sjmallett   AC_MSG_RESULT(yes)
128215976Sjmallett   WARNINGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \
129215976Sjmallett       -Wmissing-declarations -Wredundant-decls -Wnested-externs \
130215976Sjmallett       -Wsign-compare -Wreturn-type -Wswitch -Wshadow \
131215976Sjmallett       -Wcast-qual -Wwrite-strings -Wextra -Wunused-parameter -Wformat=2"
132215976Sjmallettfi], [
133215976Sjmallettif test "$GCC" = yes; then
134215976Sjmallett   AC_MSG_RESULT(yes)
135215976Sjmallett   WARNINGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \
136215976Sjmallett       -Wmissing-declarations -Wredundant-decls -Wnested-externs \
137215976Sjmallett       -Wsign-compare -Wreturn-type -Wswitch -Wshadow \
138215976Sjmallett       -Wcast-qual -Wwrite-strings -Wextra -Wunused-parameter -Wformat=2"
139215976Sjmallettelse
140215976Sjmallett   WARNINGS=
141215976Sjmallett   AC_MSG_RESULT(no)
142215976Sjmallettfi])
143215976Sjmallett
144215976Sjmallettdnl Checks for functions
145215976SjmallettAC_CHECK_FUNCS(strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof newlocale uselocale freelocale setlocale)
146215976Sjmallett
147215976Sjmallettdnl Provide implementation of some required functions if necessary
148215976SjmallettAC_REPLACE_FUNCS(getopt_long asprintf vasprintf strlcpy strlcat getline ctime_r asctime_r localtime_r gmtime_r pread strcasestr fmtcheck dprintf)
149215976Sjmallett
150215976Sjmallettdnl Checks for libraries
151215976SjmallettAC_CHECK_LIB(z,gzopen)
152215976Sjmallettif test "$MINGW" = 1; then
153215976Sjmallett  AC_CHECK_LIB(gnurx,regexec,,AC_MSG_ERROR([libgnurx is required to build file(1) with MinGW]))
154215976Sjmallettfi
155215976Sjmallett
156215976Sjmallettdnl See if we are cross-compiling
157215976SjmallettAM_CONDITIONAL(IS_CROSS_COMPILE, test "$cross_compiling" = yes)
158215976Sjmallett
159215976SjmallettAC_CONFIG_FILES([Makefile src/Makefile magic/Makefile tests/Makefile doc/Makefile python/Makefile])
160215976SjmallettAC_OUTPUT
161215976Sjmallett