xref: /freebsd/contrib/file/configure.ac (revision 3a970562d7f8b2506f7bcbe378e3c02a408425d7)
1dnl Process this file with autoconf to produce a configure script.
2AC_INIT([file],[5.28],[christos@astron.com])
3AM_INIT_AUTOMAKE([subdir-objects foreign])
4m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
5
6AC_CONFIG_HEADERS([config.h])
7AC_CONFIG_MACRO_DIR([m4])
8
9AC_MSG_CHECKING(for builtin ELF support)
10AC_ARG_ENABLE(elf,
11[  --disable-elf            disable builtin ELF support],
12[if test "${enableval}" = yes; then
13  AC_MSG_RESULT(yes)
14  AC_DEFINE([BUILTIN_ELF], 1, [Define if built-in ELF support is used])
15else
16  AC_MSG_RESULT(no)
17fi], [
18  # enable by default
19  AC_MSG_RESULT(yes)
20  AC_DEFINE([BUILTIN_ELF], 1, [Define in built-in ELF support is used])
21])
22
23AC_MSG_CHECKING(for ELF core file support)
24AC_ARG_ENABLE(elf-core,
25[  --disable-elf-core       disable ELF core file support],
26[if test "${enableval}" = yes; then
27  AC_MSG_RESULT(yes)
28  AC_DEFINE([ELFCORE], 1, [Define for ELF core file support])
29else
30  AC_MSG_RESULT(no)
31fi], [
32  # enable by default
33  AC_MSG_RESULT(yes)
34  AC_DEFINE([ELFCORE], 1, [Define for ELF core file support])
35])
36
37AC_MSG_CHECKING(for zlib support)
38AC_ARG_ENABLE(zlib,
39[AS_HELP_STRING([--disable-zlib], [disable zlib compression support @<:@default=auto@:>@])])
40AC_MSG_RESULT($enable_zlib)
41
42AC_MSG_CHECKING(for file formats in man section 5)
43AC_ARG_ENABLE(fsect-man5,
44[  --enable-fsect-man5      enable file formats in man section 5],
45[if test "${enableval}" = yes; then
46  AC_MSG_RESULT(yes)
47  fsect=5
48else
49  AC_MSG_RESULT(no)
50  fsect=4
51fi], [
52  # disable by default
53  AC_MSG_RESULT(no)
54  fsect=4
55])
56
57AC_CANONICAL_HOST
58case "$host_os" in
59   mingw32*)
60      MINGW=1
61      ;;
62   *)
63      MINGW=0
64      ;;
65esac
66AC_SUBST(MINGW)
67AM_CONDITIONAL(MINGW, test "$MINGW" = 1)
68
69AC_SUBST([pkgdatadir], ['$(datadir)/misc'])
70AC_SUBST(fsect)
71AM_CONDITIONAL(FSECT5, test x$fsect = x5)
72
73AC_SUBST(WARNINGS)
74
75dnl Checks for programs.
76AC_PROG_CC_STDC
77AC_USE_SYSTEM_EXTENSIONS
78AM_PROG_CC_C_O
79AC_C_BIGENDIAN
80AC_PROG_INSTALL
81AC_PROG_LN_S
82LT_INIT([disable-static pic-only])
83gl_VISIBILITY
84dnl Checks for headers
85AC_HEADER_STDC
86AC_HEADER_MAJOR
87AC_HEADER_SYS_WAIT
88AC_CHECK_HEADERS(stdint.h fcntl.h locale.h stdint.h inttypes.h unistd.h)
89AC_CHECK_HEADERS(stddef.h utime.h wchar.h wctype.h limits.h)
90AC_CHECK_HEADERS(getopt.h err.h xlocale.h signal.h)
91AC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h sys/utime.h sys/time.h)
92if test "$enable_zlib" != "no"; then
93  AC_CHECK_HEADERS(zlib.h)
94fi
95AC_CHECK_TYPE([sig_t],[AC_DEFINE([HAVE_SIG_T],1,[Have sig_t type])],,[
96#ifdef HAVE_SIGNAL_H
97#include <signal.h>
98#endif])
99
100dnl Checks for typedefs, structures, and compiler characteristics.
101AC_C_CONST
102AC_TYPE_OFF_T
103AC_TYPE_SIZE_T
104AC_CHECK_MEMBERS([struct stat.st_rdev])
105
106AC_CHECK_MEMBERS([struct tm.tm_gmtoff])
107AC_STRUCT_TIMEZONE
108AC_STRUCT_TIMEZONE_DAYLIGHT
109AC_SYS_LARGEFILE
110AC_FUNC_FSEEKO
111AC_TYPE_MBSTATE_T
112
113AC_STRUCT_OPTION_GETOPT_H
114AC_TYPE_PID_T
115AC_TYPE_UINT8_T
116AC_TYPE_UINT16_T
117AC_TYPE_UINT32_T
118AC_TYPE_INT32_T
119AC_TYPE_UINT64_T
120AC_TYPE_INT64_T
121AC_TYPE_INTPTR_T
122AC_TYPE_UINTPTR_T
123AC_FUNC_MMAP
124AC_FUNC_FORK
125AC_FUNC_MBRTOWC
126
127AC_MSG_CHECKING(for gcc compiler warnings)
128AC_ARG_ENABLE(warnings,
129[  --disable-warnings	disable compiler warnings],
130[if test "${enableval}" = no -o "$GCC" = no; then
131   AC_MSG_RESULT(no)
132   WARNINGS=
133else
134   AC_MSG_RESULT(yes)
135   WARNINGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \
136       -Wmissing-declarations -Wredundant-decls -Wnested-externs \
137       -Wsign-compare -Wreturn-type -Wswitch -Wshadow \
138       -Wcast-qual -Wwrite-strings -Wextra -Wunused-parameter -Wformat=2"
139fi], [
140if test "$GCC" = yes; then
141   AC_MSG_RESULT(yes)
142   WARNINGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \
143       -Wmissing-declarations -Wredundant-decls -Wnested-externs \
144       -Wsign-compare -Wreturn-type -Wswitch -Wshadow \
145       -Wcast-qual -Wwrite-strings -Wextra -Wunused-parameter -Wformat=2"
146else
147   WARNINGS=
148   AC_MSG_RESULT(no)
149fi])
150
151dnl Checks for functions
152AC_CHECK_FUNCS(strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof newlocale uselocale freelocale setlocale)
153
154dnl Provide implementation of some required functions if necessary
155AC_REPLACE_FUNCS(getopt_long asprintf vasprintf strlcpy strlcat getline ctime_r asctime_r localtime_r gmtime_r pread strcasestr fmtcheck dprintf)
156
157dnl Checks for libraries
158if test "$enable_zlib" != "no"; then
159  AC_CHECK_LIB(z, gzopen)
160fi
161if test "$MINGW" = 1; then
162  AC_CHECK_LIB(gnurx,regexec,,AC_MSG_ERROR([libgnurx is required to build file(1) with MinGW]))
163fi
164
165dnl See if we are cross-compiling
166AM_CONDITIONAL(IS_CROSS_COMPILE, test "$cross_compiling" = yes)
167
168dnl Final sanity checks
169if test "$enable_zlib" = "yes"; then
170  if test "$ac_cv_header_zlib_h$ac_cv_lib_z_gzopen" != "yesyes"; then
171    AC_MSG_ERROR([zlib support requested but not found])
172  fi
173elif  test "$ac_cv_header_zlib_h$ac_cv_lib_z_gzopen" = "yesyes"; then
174  AC_DEFINE([ZLIBSUPPORT], 1, [Enable zlib compression support])
175fi
176
177AC_CONFIG_FILES([Makefile src/Makefile magic/Makefile tests/Makefile doc/Makefile python/Makefile])
178AC_OUTPUT
179