New upstream version 2.20
[debian/cpmtools] / configure.in
1 AC_INIT(cpmfs.c)
2 AC_CONFIG_HEADER(config.h)
3 AC_CANONICAL_HOST
4 VERSION=2.20
5 UPDATED='October 25, 2014'
6
7 DEVICE="posix"
8
9 if test "$prefix" = NONE
10 then
11   case $host in
12     *-linux-*)
13     ;;
14     *-pc-mingw32)
15       CFLAGS_LIBDSK=-DNOTWINDLL
16     ;;
17   esac
18 fi
19
20 AC_PROG_CC
21 AC_PROG_INSTALL
22 AC_PROG_CPP
23
24 if test "$GCC" = yes
25 then
26   CFLAGS="${CFLAGS} ${EXTRA_GCFLAGS}-pipe -Wall -Wextra -Wno-unused-parameter -Wno-unused -Wshadow -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes -Wcast-align -Wcast-qual -Wpointer-arith -Wwrite-strings -Wmissing-declarations -Wnested-externs -Wundef -pedantic -fno-common"
27   LDFLAGS="${LDFLAGS} ${EXTRA_GLDFLAGS}-g"
28 else
29   CFLAGS="${CFLAGS} ${EXTRA_CFLAGS}"
30   LDFLAGS="${LDFLAGS} ${EXTRA_LDFLAGS}"
31 fi
32
33 AC_CYGWIN
34 AC_MINGW32
35 dnl Choose between posix and win32 drivers...
36 DEVICE="posix"
37
38 DISKDEFS='${datarootdir}/diskdefs'
39
40 if test "$CYGWIN" = "yes"
41 then
42   DEVICE="win32"
43 #  DISKDEFS='%USERPROFILE%/diskdefs'
44 fi
45 if test "$MINGW32" = "yes"
46 then
47   DEVICE="win32"
48 #  DISKDEFS='%USERPROFILE%\\diskdefs'
49 fi
50
51 AC_ARG_WITH(diskdefs,[  --with-diskdefs         Specify diskdefs location], 
52                 [DISKDEFS="$withval"], [DISKDEFS="$DISKDEFS"])
53 AC_ARG_WITH(defformat,[  --with-defformat        Specify default format (ibm-3740)], 
54                 [DEFFORMAT="$withval"], [DEFFORMAT="ibm-3740"])
55 AC_ARG_WITH(libdsk,   [  --with-libdsk           Specify path to libdsk library], 
56                 [LIBDSK="$withval"], [LIBDSK=""])
57 AC_ARG_WITH(dmalloc,  [  --with-dmalloc          Specify path to dmalloc library], 
58                 [CPPFLAGS="$CPPFLAGS -I$with_dmalloc/include"
59                  LDFLAGS="$LDFLAGS -L$with_dmalloc/lib"
60                  LIBS="$LIBS -ldmalloc"
61                  AC_DEFINE(USE_DMALLOC)])
62
63 dnl Check for curses. If not found, don't build fsed.cpm
64 dnl Try both curses and ncurses
65 AC_CHECK_LIB(curses, printw, FSED_CPM=fsed.cpm LIBS="-lcurses $LIBS", FSED_CPM=)
66 if test x"$FSED_CPM" = x""; then
67   AC_CHECK_LIB(ncurses, printw, FSED_CPM=fsed.cpm LIBS="-lncurses $LIBS", FSED_CPM=)
68   if test x"$FSED_CPM" != x""; then
69     AC_DEFINE(NEED_NCURSES)
70     AC_CHECK_HEADERS(ncurses/ncurses.h,have_ncurses_ncurses_h=yes)
71   fi
72 fi
73
74 dnl If using libdsk, check it's available. 
75 if test "$LIBDSK" != ""; then
76   DEVICE="libdsk"
77   CPPFLAGS="$CPPFLAGS -I$LIBDSK/include"
78   CFLAGS="$CFLAGS -I$LIBDSK/include $CFLAGS_LIBDSK"
79   LDFLAGS="$LDFLAGS -L$LIBDSK/lib"
80   AC_CHECK_LIB(dsk, dsk_open)
81   AC_CHECK_HEADERS(libdsk.h, ,[echo "No libdsk.h - aborting"; exit 1])
82 fi
83
84 dnl If using win32, check it's available. 
85 if test x"$DEVICE" = x"win32"; then
86   AC_CHECK_HEADERS(windows.h, ,[echo "Device win32, but <windows.h> not found - aborting"; exit 1] )
87   AC_CHECK_HEADERS(winioctl.h, ,[echo "Device win32, but <winioctl.h> not found - aborting"; exit 1],
88 [#ifdef HAVE_WINDOWS_H
89 #include <windows.h>
90 #endif
91 ])
92 fi
93
94 dnl Checks for header files.
95 AC_HEADER_STDC
96 AC_CHECK_HEADERS(fcntl.h sys/types.h sys/stat.h limits.h unistd.h)
97
98 dnl Checks for typedefs, structures, and compiler characteristics.
99 AC_C_CONST
100 AC_TYPE_MODE_T
101 AC_TYPE_OFF_T
102 AC_TYPE_PID_T
103 AC_TYPE_SIZE_T
104 AC_STRUCT_TM
105 AC_EXEEXT
106 AC_OBJEXT
107 AC_SYS_LARGEFILE
108
109 dnl add EXE extension to fsed.cpm
110 if test x"$FSED_CPM" != x""; then
111   FSED_CPM="$FSED_CPM$EXEEXT"
112 fi
113
114 dnl Checks for library functions.
115 AC_FUNC_MEMCMP
116 AC_FUNC_STRFTIME
117 AC_CHECK_FUNCS(mktime strerror)
118
119 AC_SUBST(LDLIBS)
120 AC_SUBST(LDDEPS)
121 AC_SUBST(DEVICE)
122 eval DATADIR=$datadir
123 AC_SUBST(DATADIR)
124 AC_SUBST(DISKDEFS)
125 AC_SUBST(DEFFORMAT)
126 AC_SUBST(FSED_CPM)
127 AC_SUBST(UPDATED)
128 AC_OUTPUT(Makefile cpm.5 cpmchattr.1 cpmchmod.1 cpmcp.1 cpmls.1 cpmrm.1 fsck.cpm.1 fsed.cpm.1 mkfs.cpm.1 )