| dnl Copyright 1996-2003,2005,2006,2008,2009 Alain Knaff. |
| dnl This file is part of mtools. |
| dnl |
| dnl Mtools is free software: you can redistribute it and/or modify |
| dnl it under the terms of the GNU General Public License as published by |
| dnl the Free Software Foundation, either version 3 of the License, or |
| dnl (at your option) any later version. |
| dnl |
| dnl Mtools is distributed in the hope that it will be useful, |
| dnl but WITHOUT ANY WARRANTY; without even the implied warranty of |
| dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| dnl GNU General Public License for more details. |
| dnl |
| dnl You should have received a copy of the GNU General Public License |
| dnl along with Mtools. If not, see <http://www.gnu.org/licenses/>. |
| dnl |
| dnl Process this file with autoconf to produce a configure script. |
| AC_INIT(buffer.c) |
| |
| AC_CONFIG_HEADER(config.h) |
| |
| dnl Checks for compiler |
| AC_PROG_CC |
| dnl AC_PROG_CXX |
| AC_PROG_GCC_TRADITIONAL |
| AC_PROG_INSTALL |
| AC_PROG_LN_S |
| |
| AC_PATH_PROG(INSTALL_INFO, install-info, "") |
| |
| dnl Check for Systems |
| AC_USE_SYSTEM_EXTENSIONS |
| AC_CANONICAL_SYSTEM |
| |
| AC_C_CONST |
| AC_C_INLINE |
| |
| dnl Check for configuration options |
| dnl Enable OS/2 extended density format disks |
| AC_ARG_ENABLE(xdf, |
| [ --enable-xdf support for OS/2 extended density format disks], |
| [if test x$enableval = xyes; then |
| AC_DEFINE([USE_XDF],1,[Define this if you want to use Xdf]) |
| fi],AC_DEFINE([USE_XDF],1,[Define this if you want to use Xdf])) |
| |
| |
| dnl Check for configuration options |
| dnl Enable usage of vold on Solaris |
| AC_ARG_ENABLE(vold, |
| [ --enable-vold compatibility with Solaris' vold], |
| [if test x$enableval = xyes; then |
| AC_DEFINE([USING_VOLD],1,[Define this if you use mtools together with Solaris' vold]) |
| fi]) |
| |
| |
| dnl Check for configuration options |
| dnl Enable usage of vold on Solaris |
| AC_ARG_ENABLE(new-vold, |
| [ --enable-new-vold compatibility with Solaris' vold, new version], |
| [newVold=x$enableval |
| if test x$enableval = xyes; then |
| AC_DEFINE([USING_NEW_VOLD],1,[Define this if you use mtools together with the new Solaris' vold support]) |
| fi]) |
| |
| |
| dnl Check for configuration options |
| dnl Debugging |
| AC_ARG_ENABLE(debug, |
| [ --enable-debug debugging messages], |
| [if test x$enableval = xyes; then |
| AC_DEFINE([DEBUG],1,[Define for debugging messages]) |
| fi]) |
| |
| |
| dnl Check for configuration options |
| dnl Raw terminal code (enabled by default) |
| AC_ARG_ENABLE(raw_term, |
| [ --enable-raw-term raw terminal (readkey behaviour, default)], |
| [if test x$enableval = xyes; then |
| AC_DEFINE([USE_RAWTERM],1,[Define on non Unix OS'es which don't have the concept of tty's]) |
| fi], |
| AC_DEFINE([USE_RAWTERM],1,[Define on non Unix OS'es which don't have the concept of tty's])) |
| |
| |
| dnl Checks for libraries. |
| |
| dnl AC_IRIX_SUN |
| AC_CHECK_LIB(sun, getpwnam) |
| AC_CHECK_LIB(cam, cam_open_device) |
| AC_CHECK_LIB(iconv, iconv) |
| |
| dnl Checks for header files. |
| AC_HEADER_STDC |
| AC_HEADER_SYS_WAIT |
| AC_CHECK_HEADERS(getopt.h sys/stat.h stdlib.h unistd.h linux/unistd.h \ |
| libc.h fcntl.h limits.h sys/file.h sys/ioctl.h sys/time.h strings.h string.h \ |
| sys/param.h memory.h malloc.h io.h signal.h sys/signal.h utime.h sgtty.h \ |
| sys/floppy.h mntent.h sys/sysmacros.h netinet/in.h netinet/tcp.h assert.h \ |
| iconv.h wctype.h wchar.h locale.h xlocale.h linux/fs.h) |
| AC_CHECK_HEADERS(termio.h sys/termio.h, [break]) |
| AC_CHECK_HEADERS(termios.h sys/termios.h, [break]) |
| |
| dnl Check for types |
| AC_SYS_LARGEFILE |
| AC_TYPE_INT8_T |
| AC_TYPE_INT16_T |
| AC_TYPE_INT32_T |
| AC_TYPE_UINT8_T |
| AC_TYPE_UINT16_T |
| AC_TYPE_UINT32_T |
| AC_TYPE_SSIZE_T |
| AC_TYPE_SIZE_T |
| AC_TYPE_OFF_T |
| AC_TYPE_SIGNAL |
| AC_TYPE_UID_T |
| |
| AC_CHECK_TYPES(caddr_t) |
| AC_CHECK_SIZEOF(size_t) |
| AC_CHECK_SIZEOF(time_t) |
| AC_CHECK_SIZEOF(long) |
| AC_CHECK_SIZEOF(long long) |
| |
| dnl |
| dnl Check to see if llseek() is declared in unistd.h. On some libc's |
| dnl it is, and on others it isn't..... Thank you glibc developers.... |
| dnl |
| dnl Warning! Use of --enable-gcc-wall may throw off this test. |
| dnl |
| dnl |
| AC_MSG_CHECKING(whether llseek declared in unistd.h) |
| AC_CACHE_VAL(mtools_cv_have_llseek_prototype, |
| AC_TRY_COMPILE( |
| [#include <unistd.h>], [extern int llseek(int);], |
| [mtools_cv_have_llseek_prototype=no], |
| [mtools_cv_have_llseek_prototype=yes])) |
| AC_MSG_RESULT($mtools_cv_have_llseek_prototype) |
| if test "$mtools_cv_have_llseek_prototype" = yes; then |
| AC_DEFINE([HAVE_LLSEEK_PROTOTYPE],1,[Define when you have an LLSEEK prototype]) |
| fi |
| |
| AC_MSG_CHECKING(whether lseek64 declared in unistd.h) |
| AC_CACHE_VAL(mtools_cv_have_lseek64_prototype, |
| AC_TRY_COMPILE( |
| [ |
| #include "sysincludes.h" |
| #include <unistd.h> |
| ], [extern int lseek64(int);], |
| [mtools_cv_have_lseek64_prototype=no], |
| [mtools_cv_have_lseek64_prototype=yes])) |
| AC_MSG_RESULT($mtools_cv_have_lseek64_prototype) |
| if test "$mtools_cv_have_lseek64_prototype" = yes; then |
| AC_DEFINE([HAVE_LSEEK64_PROTOTYPE],1,[Define when you have an LSEEK64 prototype]) |
| fi |
| |
| |
| AC_CHECK_FUNCS(htons) |
| |
| dnl Apparently termio before termios is preferred by A/UX, AIX and SCO |
| |
| dnl Checks for typedefs, structures, and compiler characteristics. |
| AC_C_CONST |
| AC_C_INLINE |
| AC_TYPE_SIZE_T |
| AC_HEADER_TIME |
| AC_STRUCT_TM |
| |
| |
| dnl Checks for library functions. |
| AC_TYPE_SIGNAL |
| AC_CHECK_FUNCS(strerror random srandom strchr strrchr lockf flock \ |
| strcasecmp strncasecmp strnlen atexit on_exit getpass memmove \ |
| strdup strndup strcspn strspn strtoul strtol strtoll strtoi strtoui \ |
| memcpy strpbrk memset setenv seteuid setresuid setpgrp \ |
| tcsetattr tcflush basename fchdir media_oldaliases llseek lseek64 \ |
| snprintf stat64 setlocale toupper_l strncasecmp_l \ |
| wcsdup wcscasecmp wcsnlen putwc \ |
| getuserid getgroupid \ |
| alarm sigaction usleep) |
| |
| dnl |
| dnl Check for 64-bit off_t |
| dnl |
| AC_DEFUN(SFS_CHECK_OFF_T_64, |
| [AC_CACHE_CHECK(for 64-bit off_t, sfs_cv_off_t_64, |
| AC_TRY_COMPILE([ |
| #include <unistd.h> |
| #include <sys/types.h> |
| ],[ |
| switch (0) case 0: case (sizeof (off_t) <= 4):; |
| ], sfs_cv_off_t_64=no, sfs_cv_off_t_64=yes)) |
| if test $sfs_cv_off_t_64 = yes; then |
| AC_DEFINE([HAVE_OFF_T_64],1,[Define when the system has a 64 bit off_t type]) |
| fi]) |
| |
| |
| dnl ICE_CC_LOFF_T |
| dnl ------------- |
| dnl |
| dnl If the CC compiler supports `loff_t' type, define `HAVE_LOFF_T'. |
| dnl |
| AC_DEFUN(ICE_CC_LOFF_T, |
| [ |
| AC_MSG_CHECKING(whether ${CC} supports loff_t type) |
| AC_CACHE_VAL(ice_cv_have_loff_t, |
| [ |
| AC_TRY_COMPILE([#include <sys/types.h>],[loff_t a;], |
| ice_cv_have_loff_t=yes, |
| ice_cv_have_loff_t=no) |
| ]) |
| AC_MSG_RESULT($ice_cv_have_loff_t) |
| if test "$ice_cv_have_loff_t" = yes; then |
| AC_DEFINE([HAVE_LOFF_T],1,[Define when the compiler supports LOFF_T type]) |
| fi |
| ])dnl |
| |
| |
| dnl ICE_CC_OFFSET_T |
| dnl ------------- |
| dnl |
| dnl If the CC compiler supports `offset_t' type, define `HAVE_OFFSET_T'. |
| dnl |
| AC_DEFUN(ICE_CC_OFFSET_T, |
| [ |
| AC_MSG_CHECKING(whether ${CC} supports offset_t type) |
| AC_CACHE_VAL(ice_cv_have_offset_t, |
| [ |
| AC_TRY_COMPILE([#include <sys/types.h>],[offset_t a;], |
| ice_cv_have_offset_t=yes, |
| ice_cv_have_offset_t=no) |
| ]) |
| AC_MSG_RESULT($ice_cv_have_offset_t) |
| if test "$ice_cv_have_offset_t" = yes; then |
| AC_DEFINE([HAVE_OFFSET_T],1,[Define when the compiler supports OFFSET_T type]) |
| fi |
| ])dnl |
| |
| dnl ICE_CC_LONG_LONG |
| dnl ------------- |
| dnl |
| dnl If the CC compiler supports `long long' type, define `HAVE_LONG_LONG'. |
| dnl |
| AC_DEFUN(ICE_CC_LONG_LONG, |
| [ |
| AC_MSG_CHECKING(whether ${CC} supports long long type) |
| AC_CACHE_VAL(ice_cv_have_long_long, |
| [ |
| AC_TRY_COMPILE(,[long long a;], |
| ice_cv_have_long_long=yes, |
| ice_cv_have_long_long=no) |
| ]) |
| AC_MSG_RESULT($ice_cv_have_long_long) |
| if test "$ice_cv_have_long_long" = yes; then |
| AC_DEFINE([HAVE_LONG_LONG],1,[Define when the compiler supports LONG_LONG type]) |
| fi |
| ])dnl |
| |
| dnl ICE_CC_OFF64_T |
| dnl ------------- |
| dnl |
| dnl If the CC compiler supports `long long' type, define `HAVE_OFF64_T'. |
| dnl |
| AC_DEFUN(ICE_CC_OFF64_T, |
| [ |
| AC_MSG_CHECKING(whether ${CC} supports off64_t type) |
| AC_CACHE_VAL(ice_cv_have_off64_t, |
| [ |
| AC_TRY_COMPILE(,[off64_t a;], |
| ice_cv_have_off64_t=yes, |
| ice_cv_have_off64_t=no) |
| ]) |
| AC_MSG_RESULT($ice_cv_have_off64_t) |
| if test "$ice_cv_have_off64_t" = yes; then |
| AC_DEFINE([HAVE_OFF64_T],1,[Define when the compiler supports OFF64_T type]) |
| fi |
| ])dnl |
| |
| |
| SFS_CHECK_OFF_T_64 |
| ICE_CC_LOFF_T |
| ICE_CC_OFFSET_T |
| ICE_CC_LONG_LONG |
| |
| |
| AC_CHECK_FUNCS(utimes utime, [break]) |
| AC_CHECK_FUNCS(tzset gettimeofday) |
| |
| CF_SYS_ERRLIST |
| |
| [ |
| host_os0=`echo $host_os | sed 's/-/_/g'` |
| host_os1=`echo $host_os0 | sed 's/\./_/g'` |
| host_os2=`echo $host_os0 | sed 's/^\([^.]*\)\..*$/\1/g'` |
| host_os3=`echo $host_os2 | sed 's/^\([^0-9]*\)[0-9]*$/\1/g'` |
| host_cpu1=`echo $host_cpu | sed 's/\./_/g'` |
| host_vendor1=`echo $host_vendor | sed 's/\./_/g'` |
| HOST_ID="-DCPU_$host_cpu1 -DVENDOR_$host_vendor1 -DOS_$host_os1" |
| if [ $host_os1 != $host_os2 ] ; then |
| HOST_ID="$HOST_ID -DOS_$host_os2" |
| fi |
| if [ $host_os1 != $host_os3 ] && [ $host_os2 != $host_os3 ] ; then |
| HOST_ID="$HOST_ID -DOS_$host_os3" |
| fi |
| |
| my_host_os=`echo $host_os1 $host_os2 $host_os3 | sort -u` |
| objs=`echo $srcdir/*.c | sed 's/\.c$/.o/' ` |
| if [ "X$GCC" = "Xyes" ] ; then |
| Wall=-Wall |
| if [ "$host_os3" = sunos ] ; then |
| Wall="" |
| fi |
| if [ "$host_os3" = ultrix ] ; then |
| Wall="" |
| fi |
| if [ "$host_os3" = linux ] ; then |
| CFLAGS="$CFLAGS -fno-strength-reduce" |
| fi |
| if [ "$host_os3" = aux ] ; then |
| CFLAGS="$CFLAGS -ZP" |
| MACHDEPLIBS="-lposix -UTIL" |
| fi |
| case "${host}" in |
| arm*-*-linux) CFLAGS="$CFLAGS -mstructure-size-boundary=8";; |
| esac |
| CFLAGS="$CFLAGS $Wall" |
| else |
| if [ $host_os3 = hpux ] ; then |
| CPPFLAGS="$CPPFLAGS -Ae" |
| fi |
| |
| if [ $host_os3 = xenix ] ; then |
| CFLAGS="$CFLAGS -M2e" |
| fi |
| fi |
| |
| if [ $host_os3 = hpux ] ; then |
| LDFLAGS="$LDFLAGS -z" |
| fi |
| |
| if [ $host_os3 = xenix ] ; then |
| LDFLAGS="$LDFLAGS -M2e -i -f 5000" |
| fi |
| |
| if [ $host_os2 = sysv4 ] ; then |
| SHLIB="-lc -L/usr/ucblib -lucb" |
| else |
| SHLIB="" |
| fi |
| |
| if [ $host_os3 = isc ] ; then |
| CFLAGS="$CFLAGS -D_SYSV3" |
| SHLIB="-lc_s" |
| fi |
| |
| if [ $host_os3 = solaris -a x$newVold = xxyes ] ; then |
| SHLIB="$SHLIB -s -lvolmgt" |
| fi |
| |
| if [ $host_os3 = nextstep ] ; then |
| CFLAGS="$CFLAGS -DBSD" |
| SHLIB="" |
| fi |
| |
| if [ -d /usr/5lib ] ; then |
| extralibdir=-L/usr/5lib |
| fi |
| |
| ] |
| |
| AC_PATH_X |
| AC_PATH_XTRA |
| |
| dnl Floppyd |
| AC_ARG_ENABLE(floppyd, |
| [ --enable-floppyd floppy daemon support], |
| [if test x$enableval != x; then |
| use_floppyd=$enableval |
| fi]) |
| |
| AC_CHECK_LIB(socket,main) |
| dnl AC_CHECK_LIB(nsl,getpwnam) |
| AC_CHECK_LIB(bsd,main) |
| AC_CHECK_HEADERS(sys/socket.h arpa/inet.h netdb.h) |
| |
| if test X$use_floppyd = X -a X$no_x = X ; then |
| use_floppyd="yes" |
| fi |
| |
| if test X$use_floppyd = Xyes; then |
| if test X$no_x = Xyes ; then |
| echo "Floppyd needs X support" >&2 |
| echo "To compile without floppyd, use ./configure --disable-floppyd" >&2 |
| exit 1 |
| fi |
| FLOPPYD="floppyd floppyd_installtest" |
| BINFLOPPYD="\$(DESTDIR)\$(bindir)/floppyd \$(DESTDIR)\$(bindir)/floppyd_installtest" |
| AC_DEFINE([USE_FLOPPYD],1,[Define when you want to include floppyd support]) |
| AC_FUNC_SETPGRP |
| else |
| FLOPPYD= |
| BINFLOPPYD= |
| fi |
| |
| |
| AC_SUBST(FLOPPYD) |
| AC_SUBST(BINFLOPPYD) |
| AC_SUBST(extraincludedir) |
| AC_SUBST(extralibdir) |
| AC_SUBST(MACHDEPLIBS) |
| AC_SUBST(SHLIB) |
| AC_SUBST(host_cpu) |
| AC_SUBST(HOST_ID) |
| AC_OUTPUT(Makefile) |