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