1dnl Copyright 1996-2003,2005,2006,2008,2009 Alain Knaff. 2dnl This file is part of mtools. 3dnl 4dnl Mtools is free software: you can redistribute it and/or modify 5dnl it under the terms of the GNU General Public License as published by 6dnl the Free Software Foundation, either version 3 of the License, or 7dnl (at your option) any later version. 8dnl 9dnl Mtools is distributed in the hope that it will be useful, 10dnl but WITHOUT ANY WARRANTY; without even the implied warranty of 11dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12dnl GNU General Public License for more details. 13dnl 14dnl You should have received a copy of the GNU General Public License 15dnl along with Mtools. If not, see <http://www.gnu.org/licenses/>. 16dnl 17dnl Process this file with autoconf to produce a configure script. 18AC_INIT(buffer.c) 19 20AC_CONFIG_HEADER(config.h) 21 22dnl Checks for compiler 23AC_PROG_CC 24dnl AC_PROG_CXX 25AC_PROG_GCC_TRADITIONAL 26AC_PROG_INSTALL 27AC_PROG_LN_S 28 29AC_PATH_PROG(INSTALL_INFO, install-info, "") 30 31dnl Check for Systems 32AC_USE_SYSTEM_EXTENSIONS 33AC_CANONICAL_SYSTEM 34 35AC_C_CONST 36AC_C_INLINE 37 38dnl Check for configuration options 39dnl Enable OS/2 extended density format disks 40AC_ARG_ENABLE(xdf, 41[ --enable-xdf support for OS/2 extended density format disks], 42[if test x$enableval = xyes; then 43 AC_DEFINE([USE_XDF],1,[Define this if you want to use Xdf]) 44fi],AC_DEFINE([USE_XDF],1,[Define this if you want to use Xdf])) 45 46 47dnl Check for configuration options 48dnl Enable usage of vold on Solaris 49AC_ARG_ENABLE(vold, 50[ --enable-vold compatibility with Solaris' vold], 51[if test x$enableval = xyes; then 52 AC_DEFINE([USING_VOLD],1,[Define this if you use mtools together with Solaris' vold]) 53fi]) 54 55 56dnl Check for configuration options 57dnl Enable usage of vold on Solaris 58AC_ARG_ENABLE(new-vold, 59[ --enable-new-vold compatibility with Solaris' vold, new version], 60[newVold=x$enableval 61if test x$enableval = xyes; then 62 AC_DEFINE([USING_NEW_VOLD],1,[Define this if you use mtools together with the new Solaris' vold support]) 63fi]) 64 65 66dnl Check for configuration options 67dnl Debugging 68AC_ARG_ENABLE(debug, 69[ --enable-debug debugging messages], 70[if test x$enableval = xyes; then 71 AC_DEFINE([DEBUG],1,[Define for debugging messages]) 72fi]) 73 74 75dnl Check for configuration options 76dnl Raw terminal code (enabled by default) 77AC_ARG_ENABLE(raw_term, 78[ --enable-raw-term raw terminal (readkey behaviour, default)], 79[if test x$enableval = xyes; then 80 AC_DEFINE([USE_RAWTERM],1,[Define on non Unix OS'es which don't have the concept of tty's]) 81fi], 82AC_DEFINE([USE_RAWTERM],1,[Define on non Unix OS'es which don't have the concept of tty's])) 83 84 85dnl Checks for libraries. 86 87dnl AC_IRIX_SUN 88AC_CHECK_LIB(sun, getpwnam) 89AC_CHECK_LIB(cam, cam_open_device) 90AC_CHECK_LIB(iconv, iconv) 91 92dnl Checks for header files. 93AC_HEADER_STDC 94AC_HEADER_SYS_WAIT 95AC_CHECK_HEADERS(getopt.h sys/stat.h stdlib.h unistd.h linux/unistd.h \ 96libc.h fcntl.h limits.h sys/file.h sys/ioctl.h sys/time.h strings.h string.h \ 97sys/param.h memory.h malloc.h io.h signal.h sys/signal.h utime.h sgtty.h \ 98sys/floppy.h mntent.h sys/sysmacros.h netinet/in.h netinet/tcp.h assert.h \ 99iconv.h wctype.h wchar.h locale.h xlocale.h linux/fs.h) 100AC_CHECK_HEADERS(termio.h sys/termio.h, [break]) 101AC_CHECK_HEADERS(termios.h sys/termios.h, [break]) 102 103dnl Check for types 104AC_SYS_LARGEFILE 105AC_TYPE_INT8_T 106AC_TYPE_INT16_T 107AC_TYPE_INT32_T 108AC_TYPE_UINT8_T 109AC_TYPE_UINT16_T 110AC_TYPE_UINT32_T 111AC_TYPE_SSIZE_T 112AC_TYPE_SIZE_T 113AC_TYPE_OFF_T 114AC_TYPE_SIGNAL 115AC_TYPE_UID_T 116 117AC_CHECK_TYPES(caddr_t) 118AC_CHECK_SIZEOF(size_t) 119AC_CHECK_SIZEOF(time_t) 120AC_CHECK_SIZEOF(long) 121AC_CHECK_SIZEOF(long long) 122 123dnl 124dnl Check to see if llseek() is declared in unistd.h. On some libc's 125dnl it is, and on others it isn't..... Thank you glibc developers.... 126dnl 127dnl Warning! Use of --enable-gcc-wall may throw off this test. 128dnl 129dnl 130AC_MSG_CHECKING(whether llseek declared in unistd.h) 131AC_CACHE_VAL(mtools_cv_have_llseek_prototype, 132 AC_TRY_COMPILE( 133[#include <unistd.h>], [extern int llseek(int);], 134 [mtools_cv_have_llseek_prototype=no], 135 [mtools_cv_have_llseek_prototype=yes])) 136AC_MSG_RESULT($mtools_cv_have_llseek_prototype) 137if test "$mtools_cv_have_llseek_prototype" = yes; then 138 AC_DEFINE([HAVE_LLSEEK_PROTOTYPE],1,[Define when you have an LLSEEK prototype]) 139fi 140 141AC_MSG_CHECKING(whether lseek64 declared in unistd.h) 142AC_CACHE_VAL(mtools_cv_have_lseek64_prototype, 143 AC_TRY_COMPILE( 144[ 145#include "sysincludes.h" 146#include <unistd.h> 147], [extern int lseek64(int);], 148 [mtools_cv_have_lseek64_prototype=no], 149 [mtools_cv_have_lseek64_prototype=yes])) 150AC_MSG_RESULT($mtools_cv_have_lseek64_prototype) 151if test "$mtools_cv_have_lseek64_prototype" = yes; then 152 AC_DEFINE([HAVE_LSEEK64_PROTOTYPE],1,[Define when you have an LSEEK64 prototype]) 153fi 154 155 156AC_CHECK_FUNCS(htons) 157 158dnl Apparently termio before termios is preferred by A/UX, AIX and SCO 159 160dnl Checks for typedefs, structures, and compiler characteristics. 161AC_C_CONST 162AC_C_INLINE 163AC_TYPE_SIZE_T 164AC_HEADER_TIME 165AC_STRUCT_TM 166 167 168dnl Checks for library functions. 169AC_TYPE_SIGNAL 170AC_CHECK_FUNCS(strerror random srandom strchr strrchr lockf flock \ 171strcasecmp strncasecmp strnlen atexit on_exit getpass memmove \ 172strdup strndup strcspn strspn strtoul strtol strtoll strtoi strtoui \ 173memcpy strpbrk memset setenv seteuid setresuid setpgrp \ 174tcsetattr tcflush basename fchdir media_oldaliases llseek lseek64 \ 175snprintf stat64 setlocale toupper_l strncasecmp_l \ 176wcsdup wcscasecmp wcsnlen putwc \ 177getuserid getgroupid \ 178alarm sigaction usleep) 179 180dnl 181dnl Check for 64-bit off_t 182dnl 183AC_DEFUN(SFS_CHECK_OFF_T_64, 184[AC_CACHE_CHECK(for 64-bit off_t, sfs_cv_off_t_64, 185AC_TRY_COMPILE([ 186#include <unistd.h> 187#include <sys/types.h> 188],[ 189switch (0) case 0: case (sizeof (off_t) <= 4):; 190], sfs_cv_off_t_64=no, sfs_cv_off_t_64=yes)) 191if test $sfs_cv_off_t_64 = yes; then 192 AC_DEFINE([HAVE_OFF_T_64],1,[Define when the system has a 64 bit off_t type]) 193fi]) 194 195 196dnl ICE_CC_LOFF_T 197dnl ------------- 198dnl 199dnl If the CC compiler supports `loff_t' type, define `HAVE_LOFF_T'. 200dnl 201AC_DEFUN(ICE_CC_LOFF_T, 202[ 203AC_MSG_CHECKING(whether ${CC} supports loff_t type) 204AC_CACHE_VAL(ice_cv_have_loff_t, 205[ 206AC_TRY_COMPILE([#include <sys/types.h>],[loff_t a;], 207ice_cv_have_loff_t=yes, 208ice_cv_have_loff_t=no) 209]) 210AC_MSG_RESULT($ice_cv_have_loff_t) 211if test "$ice_cv_have_loff_t" = yes; then 212AC_DEFINE([HAVE_LOFF_T],1,[Define when the compiler supports LOFF_T type]) 213fi 214])dnl 215 216 217dnl ICE_CC_OFFSET_T 218dnl ------------- 219dnl 220dnl If the CC compiler supports `offset_t' type, define `HAVE_OFFSET_T'. 221dnl 222AC_DEFUN(ICE_CC_OFFSET_T, 223[ 224AC_MSG_CHECKING(whether ${CC} supports offset_t type) 225AC_CACHE_VAL(ice_cv_have_offset_t, 226[ 227AC_TRY_COMPILE([#include <sys/types.h>],[offset_t a;], 228ice_cv_have_offset_t=yes, 229ice_cv_have_offset_t=no) 230]) 231AC_MSG_RESULT($ice_cv_have_offset_t) 232if test "$ice_cv_have_offset_t" = yes; then 233AC_DEFINE([HAVE_OFFSET_T],1,[Define when the compiler supports OFFSET_T type]) 234fi 235])dnl 236 237dnl ICE_CC_LONG_LONG 238dnl ------------- 239dnl 240dnl If the CC compiler supports `long long' type, define `HAVE_LONG_LONG'. 241dnl 242AC_DEFUN(ICE_CC_LONG_LONG, 243[ 244AC_MSG_CHECKING(whether ${CC} supports long long type) 245AC_CACHE_VAL(ice_cv_have_long_long, 246[ 247AC_TRY_COMPILE(,[long long a;], 248ice_cv_have_long_long=yes, 249ice_cv_have_long_long=no) 250]) 251AC_MSG_RESULT($ice_cv_have_long_long) 252if test "$ice_cv_have_long_long" = yes; then 253AC_DEFINE([HAVE_LONG_LONG],1,[Define when the compiler supports LONG_LONG type]) 254fi 255])dnl 256 257dnl ICE_CC_OFF64_T 258dnl ------------- 259dnl 260dnl If the CC compiler supports `long long' type, define `HAVE_OFF64_T'. 261dnl 262AC_DEFUN(ICE_CC_OFF64_T, 263[ 264AC_MSG_CHECKING(whether ${CC} supports off64_t type) 265AC_CACHE_VAL(ice_cv_have_off64_t, 266[ 267AC_TRY_COMPILE(,[off64_t a;], 268ice_cv_have_off64_t=yes, 269ice_cv_have_off64_t=no) 270]) 271AC_MSG_RESULT($ice_cv_have_off64_t) 272if test "$ice_cv_have_off64_t" = yes; then 273AC_DEFINE([HAVE_OFF64_T],1,[Define when the compiler supports OFF64_T type]) 274fi 275])dnl 276 277 278SFS_CHECK_OFF_T_64 279ICE_CC_LOFF_T 280ICE_CC_OFFSET_T 281ICE_CC_LONG_LONG 282 283 284AC_CHECK_FUNCS(utimes utime, [break]) 285AC_CHECK_FUNCS(tzset gettimeofday) 286 287CF_SYS_ERRLIST 288 289[ 290host_os0=`echo $host_os | sed 's/-/_/g'` 291host_os1=`echo $host_os0 | sed 's/\./_/g'` 292host_os2=`echo $host_os0 | sed 's/^\([^.]*\)\..*$/\1/g'` 293host_os3=`echo $host_os2 | sed 's/^\([^0-9]*\)[0-9]*$/\1/g'` 294host_cpu1=`echo $host_cpu | sed 's/\./_/g'` 295host_vendor1=`echo $host_vendor | sed 's/\./_/g'` 296HOST_ID="-DCPU_$host_cpu1 -DVENDOR_$host_vendor1 -DOS_$host_os1" 297if [ $host_os1 != $host_os2 ] ; then 298 HOST_ID="$HOST_ID -DOS_$host_os2" 299fi 300if [ $host_os1 != $host_os3 ] && [ $host_os2 != $host_os3 ] ; then 301 HOST_ID="$HOST_ID -DOS_$host_os3" 302fi 303 304my_host_os=`echo $host_os1 $host_os2 $host_os3 | sort -u` 305objs=`echo $srcdir/*.c | sed 's/\.c$/.o/' ` 306if [ "X$GCC" = "Xyes" ] ; then 307 Wall=-Wall 308 if [ "$host_os3" = sunos ] ; then 309 Wall="" 310 fi 311 if [ "$host_os3" = ultrix ] ; then 312 Wall="" 313 fi 314 if [ "$host_os3" = linux ] ; then 315 CFLAGS="$CFLAGS -fno-strength-reduce" 316 fi 317 if [ "$host_os3" = aux ] ; then 318 CFLAGS="$CFLAGS -ZP" 319 MACHDEPLIBS="-lposix -UTIL" 320 fi 321 case "${host}" in 322 arm*-*-linux) CFLAGS="$CFLAGS -mstructure-size-boundary=8";; 323 esac 324 CFLAGS="$CFLAGS $Wall" 325else 326 if [ $host_os3 = hpux ] ; then 327 CPPFLAGS="$CPPFLAGS -Ae" 328 fi 329 330 if [ $host_os3 = xenix ] ; then 331 CFLAGS="$CFLAGS -M2e" 332 fi 333fi 334 335if [ $host_os3 = hpux ] ; then 336 LDFLAGS="$LDFLAGS -z" 337fi 338 339if [ $host_os3 = xenix ] ; then 340 LDFLAGS="$LDFLAGS -M2e -i -f 5000" 341fi 342 343if [ $host_os2 = sysv4 ] ; then 344 SHLIB="-lc -L/usr/ucblib -lucb" 345else 346 SHLIB="" 347fi 348 349if [ $host_os3 = isc ] ; then 350 CFLAGS="$CFLAGS -D_SYSV3" 351 SHLIB="-lc_s" 352fi 353 354if [ $host_os3 = solaris -a x$newVold = xxyes ] ; then 355 SHLIB="$SHLIB -s -lvolmgt" 356fi 357 358if [ $host_os3 = nextstep ] ; then 359 CFLAGS="$CFLAGS -DBSD" 360 SHLIB="" 361fi 362 363if [ -d /usr/5lib ] ; then 364 extralibdir=-L/usr/5lib 365fi 366 367] 368 369AC_PATH_X 370AC_PATH_XTRA 371 372dnl Floppyd 373AC_ARG_ENABLE(floppyd, 374[ --enable-floppyd floppy daemon support], 375[if test x$enableval != x; then 376 use_floppyd=$enableval 377fi]) 378 379AC_CHECK_LIB(socket,main) 380dnl AC_CHECK_LIB(nsl,getpwnam) 381AC_CHECK_LIB(bsd,main) 382AC_CHECK_HEADERS(sys/socket.h arpa/inet.h netdb.h) 383 384if test X$use_floppyd = X -a X$no_x = X ; then 385 use_floppyd="yes" 386fi 387 388if test X$use_floppyd = Xyes; then 389 if test X$no_x = Xyes ; then 390 echo "Floppyd needs X support" >&2 391 echo "To compile without floppyd, use ./configure --disable-floppyd" >&2 392 exit 1 393 fi 394 FLOPPYD="floppyd floppyd_installtest" 395 BINFLOPPYD="\$(DESTDIR)\$(bindir)/floppyd \$(DESTDIR)\$(bindir)/floppyd_installtest" 396 AC_DEFINE([USE_FLOPPYD],1,[Define when you want to include floppyd support]) 397 AC_FUNC_SETPGRP 398else 399 FLOPPYD= 400 BINFLOPPYD= 401fi 402 403 404AC_SUBST(FLOPPYD) 405AC_SUBST(BINFLOPPYD) 406AC_SUBST(extraincludedir) 407AC_SUBST(extralibdir) 408AC_SUBST(MACHDEPLIBS) 409AC_SUBST(SHLIB) 410AC_SUBST(host_cpu) 411AC_SUBST(HOST_ID) 412AC_OUTPUT(Makefile) 413