1ef01931fSBen Grasdnl Process this file with autoconf to produce a configure script. 2*0a6a1f1dSLionel SambucAC_INIT([file],[5.22],[christos@astron.com]) 384d9c625SLionel SambucAM_INIT_AUTOMAKE([subdir-objects foreign]) 4835f6802SDirk VogtAM_MAINTAINER_MODE(disable) 5835f6802SDirk Vogtm4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 6835f6802SDirk Vogt 784d9c625SLionel SambucAC_CONFIG_HEADERS([config.h]) 8835f6802SDirk VogtAC_CONFIG_MACRO_DIR([m4]) 9ef01931fSBen Gras 10ef01931fSBen GrasAC_MSG_CHECKING(for builtin ELF support) 11ef01931fSBen GrasAC_ARG_ENABLE(elf, 12ef01931fSBen Gras[ --disable-elf disable builtin ELF support], 13ef01931fSBen Gras[if test "${enableval}" = yes; then 14ef01931fSBen Gras AC_MSG_RESULT(yes) 15ef01931fSBen Gras AC_DEFINE([BUILTIN_ELF], 1, [Define if built-in ELF support is used]) 16ef01931fSBen Graselse 17ef01931fSBen Gras AC_MSG_RESULT(no) 18ef01931fSBen Grasfi], [ 19ef01931fSBen Gras # enable by default 20ef01931fSBen Gras AC_MSG_RESULT(yes) 21ef01931fSBen Gras AC_DEFINE([BUILTIN_ELF], 1, [Define in built-in ELF support is used]) 22ef01931fSBen Gras]) 23ef01931fSBen Gras 24ef01931fSBen GrasAC_MSG_CHECKING(for ELF core file support) 25ef01931fSBen GrasAC_ARG_ENABLE(elf-core, 26ef01931fSBen Gras[ --disable-elf-core disable ELF core file support], 27ef01931fSBen Gras[if test "${enableval}" = yes; then 28ef01931fSBen Gras AC_MSG_RESULT(yes) 29ef01931fSBen Gras AC_DEFINE([ELFCORE], 1, [Define for ELF core file support]) 30ef01931fSBen Graselse 31ef01931fSBen Gras AC_MSG_RESULT(no) 32ef01931fSBen Grasfi], [ 33ef01931fSBen Gras # enable by default 34ef01931fSBen Gras AC_MSG_RESULT(yes) 35ef01931fSBen Gras AC_DEFINE([ELFCORE], 1, [Define for ELF core file support]) 36ef01931fSBen Gras]) 37ef01931fSBen Gras 38ef01931fSBen GrasAC_MSG_CHECKING(for file formats in man section 5) 39ef01931fSBen GrasAC_ARG_ENABLE(fsect-man5, 40ef01931fSBen Gras[ --enable-fsect-man5 enable file formats in man section 5], 41ef01931fSBen Gras[if test "${enableval}" = yes; then 42ef01931fSBen Gras AC_MSG_RESULT(yes) 43ef01931fSBen Gras fsect=5 44ef01931fSBen Graselse 45ef01931fSBen Gras AC_MSG_RESULT(no) 46ef01931fSBen Gras fsect=4 47ef01931fSBen Grasfi], [ 48ef01931fSBen Gras # disable by default 49ef01931fSBen Gras AC_MSG_RESULT(no) 50ef01931fSBen Gras fsect=4 51ef01931fSBen Gras]) 52ef01931fSBen Gras 53835f6802SDirk VogtAC_CANONICAL_HOST 54835f6802SDirk Vogtcase "$host_os" in 55835f6802SDirk Vogt mingw32*) 56835f6802SDirk Vogt MINGW=1 57835f6802SDirk Vogt ;; 58835f6802SDirk Vogt *) 59835f6802SDirk Vogt MINGW=0 60835f6802SDirk Vogt ;; 61835f6802SDirk Vogtesac 62835f6802SDirk VogtAC_SUBST(MINGW) 63835f6802SDirk VogtAM_CONDITIONAL(MINGW, test "$MINGW" = 1) 64835f6802SDirk Vogt 65ef01931fSBen GrasAC_SUBST([pkgdatadir], ['$(datadir)/misc']) 66ef01931fSBen GrasAC_SUBST(fsect) 67ef01931fSBen GrasAM_CONDITIONAL(FSECT5, test x$fsect = x5) 68ef01931fSBen Gras 69ef01931fSBen GrasAC_SUBST(WARNINGS) 70ef01931fSBen Gras 71ef01931fSBen Grasdnl Checks for programs. 7284d9c625SLionel SambucAC_PROG_CC_STDC 7384d9c625SLionel SambucAC_USE_SYSTEM_EXTENSIONS 74ef01931fSBen GrasAM_PROG_CC_C_O 7584d9c625SLionel SambucAC_C_BIGENDIAN 76ef01931fSBen GrasAC_PROG_INSTALL 77ef01931fSBen GrasAC_PROG_LN_S 7884d9c625SLionel SambucLT_INIT([disable-static pic-only]) 7984d9c625SLionel Sambucgl_VISIBILITY 80ef01931fSBen Grasdnl Checks for headers 81ef01931fSBen GrasAC_HEADER_STDC 82ef01931fSBen GrasAC_HEADER_MAJOR 83ef01931fSBen GrasAC_HEADER_SYS_WAIT 84ef01931fSBen GrasAC_CHECK_HEADERS(stdint.h fcntl.h locale.h stdint.h inttypes.h unistd.h) 8584d9c625SLionel SambucAC_CHECK_HEADERS(stddef.h utime.h wchar.h wctype.h limits.h) 86*0a6a1f1dSLionel SambucAC_CHECK_HEADERS(getopt.h err.h xlocale.h) 87ef01931fSBen GrasAC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h sys/utime.h sys/time.h) 88ef01931fSBen GrasAC_CHECK_HEADERS(zlib.h) 89ef01931fSBen Gras 90ef01931fSBen Grasdnl Checks for typedefs, structures, and compiler characteristics. 91ef01931fSBen GrasAC_C_CONST 92ef01931fSBen GrasAC_TYPE_OFF_T 93ef01931fSBen GrasAC_TYPE_SIZE_T 94ef01931fSBen GrasAC_CHECK_MEMBERS([struct stat.st_rdev]) 95ef01931fSBen Gras 9684d9c625SLionel SambucAC_CHECK_MEMBERS([struct tm.tm_gmtoff]) 9784d9c625SLionel SambucAC_STRUCT_TIMEZONE 98ef01931fSBen GrasAC_STRUCT_TIMEZONE_DAYLIGHT 99ef01931fSBen GrasAC_SYS_LARGEFILE 100ef01931fSBen GrasAC_FUNC_FSEEKO 101ef01931fSBen GrasAC_TYPE_MBSTATE_T 102ef01931fSBen Gras 103ef01931fSBen GrasAC_STRUCT_OPTION_GETOPT_H 10484d9c625SLionel SambucAC_TYPE_PID_T 10584d9c625SLionel SambucAC_TYPE_UINT8_T 10684d9c625SLionel SambucAC_TYPE_UINT16_T 10784d9c625SLionel SambucAC_TYPE_UINT32_T 10884d9c625SLionel SambucAC_TYPE_INT32_T 10984d9c625SLionel SambucAC_TYPE_UINT64_T 11084d9c625SLionel SambucAC_TYPE_INT64_T 111*0a6a1f1dSLionel SambucAC_TYPE_INTPTR_T 112*0a6a1f1dSLionel SambucAC_TYPE_UINTPTR_T 11384d9c625SLionel SambucAC_FUNC_MMAP 11484d9c625SLionel SambucAC_FUNC_FORK 11584d9c625SLionel SambucAC_FUNC_MBRTOWC 116ef01931fSBen Gras 117ef01931fSBen GrasAC_MSG_CHECKING(for gcc compiler warnings) 118ef01931fSBen GrasAC_ARG_ENABLE(warnings, 119ef01931fSBen Gras[ --disable-warnings disable compiler warnings], 120ef01931fSBen Gras[if test "${enableval}" = no -o "$GCC" = no; then 121ef01931fSBen Gras AC_MSG_RESULT(no) 122ef01931fSBen Gras WARNINGS= 123ef01931fSBen Graselse 124ef01931fSBen Gras AC_MSG_RESULT(yes) 125ef01931fSBen Gras WARNINGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \ 126ef01931fSBen Gras -Wmissing-declarations -Wredundant-decls -Wnested-externs \ 127ef01931fSBen Gras -Wsign-compare -Wreturn-type -Wswitch -Wshadow \ 128835f6802SDirk Vogt -Wcast-qual -Wwrite-strings -Wextra -Wunused-parameter -Wformat=2" 129ef01931fSBen Grasfi], [ 130835f6802SDirk Vogtif test "$GCC" = yes; then 131ef01931fSBen Gras AC_MSG_RESULT(yes) 132ef01931fSBen Gras WARNINGS="-Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith \ 133ef01931fSBen Gras -Wmissing-declarations -Wredundant-decls -Wnested-externs \ 134ef01931fSBen Gras -Wsign-compare -Wreturn-type -Wswitch -Wshadow \ 135835f6802SDirk Vogt -Wcast-qual -Wwrite-strings -Wextra -Wunused-parameter -Wformat=2" 136835f6802SDirk Vogtelse 137835f6802SDirk Vogt WARNINGS= 138835f6802SDirk Vogt AC_MSG_RESULT(no) 139ef01931fSBen Grasfi]) 140ef01931fSBen Gras 141ef01931fSBen Grasdnl Checks for functions 142*0a6a1f1dSLionel SambucAC_CHECK_FUNCS(strerror strndup strtoul mkstemp mkostemp utimes utime wcwidth strtof newlocale uselocale freelocale setlocale) 143ef01931fSBen Gras 144ef01931fSBen Grasdnl Provide implementation of some required functions if necessary 145*0a6a1f1dSLionel SambucAC_REPLACE_FUNCS(getopt_long asprintf vasprintf strlcpy strlcat getline ctime_r asctime_r pread strcasestr fmtcheck) 146ef01931fSBen Gras 147ef01931fSBen Grasdnl Checks for libraries 148ef01931fSBen GrasAC_CHECK_LIB(z,gzopen) 149835f6802SDirk Vogtif test "$MINGW" = 1; then 150835f6802SDirk Vogt AC_CHECK_LIB(gnurx,regexec,,AC_MSG_ERROR([libgnurx is required to build file(1) with MinGW])) 151835f6802SDirk Vogtfi 152ef01931fSBen Gras 153ef01931fSBen Grasdnl See if we are cross-compiling 154ef01931fSBen GrasAM_CONDITIONAL(IS_CROSS_COMPILE, test "$cross_compiling" = yes) 155ef01931fSBen Gras 156ef01931fSBen GrasAC_CONFIG_FILES([Makefile src/Makefile magic/Makefile tests/Makefile doc/Makefile python/Makefile]) 157ef01931fSBen GrasAC_OUTPUT 158