http://prdownloads.sourceforge.net/lufs/lufs-0.9.7.tar.gz?download
[lufs.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_PREREQ(2.50)
3 AC_INIT(AUTHORS)
4 AC_CONFIG_AUX_DIR(config)
5 AM_CONFIG_HEADER(config.h)
6 AC_CANONICAL_SYSTEM
7 AM_INIT_AUTOMAKE(lufs,0.9.7)
8
9 dnl "static" FSs
10 opt_fs="localfs locasefs ftpfs gnetfs"
11
12 AC_ARG_ENABLE(kernel-support,
13     [  --enable-kernel-support enable building of the kernel module (default=yes)],
14     [  KERNEL_SUPPORT=$enableval ],)
15
16 if test "$KERNEL_SUPPORT" != "no"
17 then
18
19     dnl Checking os
20     AC_MSG_CHECKING(OS)
21     OS_DIR=`uname -s`
22     if test ! -d kernel/$OS_DIR
23     then
24         AC_MSG_ERROR($OS_DIR - not supported!)
25     else
26         AC_MSG_RESULT($OS_DIR)
27     fi
28
29     dnl LINUX kernel configuration
30     if test "$OS_DIR"="Linux"
31     then
32
33         dnl Checking kernel & headers
34         AC_MSG_CHECKING(kernel)
35         AC_ARG_WITH(kernel, 
36             [  --with-kernel=VERSION   specify a kernel version to compile for], 
37             [KERNEL_VERSION=$withval],
38             [KERNEL_VERSION=`uname -r`])    
39         MODULES_DIR=/lib/modules/$KERNEL_VERSION
40         AC_MSG_RESULT($KERNEL_VERSION)
41
42         AC_MSG_CHECKING(kernel support)
43         KERNEL_DIR=`echo $KERNEL_VERSION | cut -d'.' -f1,2`
44         if test ! -d kernel/$OS_DIR/$KERNEL_DIR
45         then
46             AC_MSG_ERROR([$KERNEL_DIR not supported!])
47         else
48             AC_MSG_RESULT([supported in kernel/$OS_DIR/$KERNEL_DIR])
49         fi
50
51         AC_MSG_CHECKING(kernel headers)
52         AC_ARG_WITH(kheaders,
53             [  --with-kheaders=DIR     specify the location of the kernel headers],
54             [KERNEL_HDR=$withval],
55             [KERNEL_HDR=$MODULES_DIR/build/include])
56         if test ! -f $KERNEL_HDR/linux/fs.h
57         then 
58             AC_MSG_ERROR([not found in $KERNEL_HDR. please install them!])
59         else
60             AC_MSG_RESULT([found in $KERNEL_HDR])
61         fi
62
63         AC_MSG_CHECKING(kernel configuration)
64         if test -f $MODULES_DIR/build/.config
65         then
66             tmp=`cat $MODULES_DIR/build/.config | grep CONFIG_MODVERSIONS=y`
67             if test "$tmp"
68             then
69                 AC_MSG_RESULT([found, using modversions])
70                 MODVERSIONS="yes"
71 #               MODV_FLAGS="-DMODVERSIONS -include $KERNEL_HDR/linux/modversions.h"
72             else
73                 AC_MSG_RESULT([found, not using modversions])
74             fi
75         else
76             AC_MSG_RESULT([not found at $MODULES_DIR/build/.config, assuming modversions support])
77             MODVERSIONS="yes"
78 #           MODV_FLAGS="-DMODVERSIONS -include $KERNEL_HDR/linux/modversions.h"        
79         fi
80
81         AC_ARG_ENABLE(modversions, 
82             [  --enable-modversions    enable modeversions support (default=auto-detect)],
83             [ if test $enableval = "yes"; then MODVERSIONS="yes"; else MODVERSIONS=""; fi ],)
84     
85         if test $MODVERSIONS; then
86             AC_MSG_CHECKING(modversions.h)
87             if test -f $KERNEL_HDR/linux/modversions.h; then
88                 MODV_FILE="$KERNEL_HDR/linux/modversions.h"
89             fi
90             
91             if test -f $KERNEL_HDR/config/modversions.h; then
92                 MODV_FILE="$KERNEL_HDR/config/modversions.h"
93             fi
94             
95             if test $MODV_FILE; then
96                 MODV_FLAGS="-DMODVERSIONS -include $MODV_FILE"
97                 AC_MSG_RESULT([$MODV_FILE])
98             else
99                 AC_MSG_ERROR([not found!])
100             fi
101         fi
102
103         AC_SUBST(MODV_FLAGS)
104         AC_SUBST(KERNEL_DIR)
105         AC_SUBST(MODULES_DIR)
106         AC_SUBST(KERNEL_HDR)
107
108     fi
109 fi
110 AC_SUBST(OS_DIR)
111
112
113 dnl options
114 AC_ARG_ENABLE(debug,
115     [  --enable-debug          enable debug messages to stdout (default=no)],
116     [  DEBUG_FLAGS="-g -DDEBUG" && CXXFLAGS="-g -O2 -Wall -DDEBUG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" && CFLAGS="-g -O2 -Wall -DDEBUG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"],
117     [  CXXFLAGS="-O2 -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" && CFLAGS="-O2 -Wall -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"])
118 AC_SUBST(DEBUG_FLAGS)
119
120 AC_ARG_ENABLE(kdebug,
121     [  --enable-kdebug         enable kernel module debug messages (default=no)],
122     [  KDEBUG_FLAGS="-DLUFS_DEBUG -DLUFS_VERBOSE" ], )
123 AC_SUBST(KDEBUG_FLAGS)
124
125 AC_ARG_ENABLE(autofs-install,
126     [  --enable-autofs-install enable installing of autofs configuration (default=no)],
127     [  AUTOFS_INSTALL="yes"],)
128 AC_SUBST(AUTOFS_INSTALL)    
129
130 AC_ARG_ENABLE(suid,
131     [  --enable-suid           make lufsmnt and lufsumount suid root (default=yes)],
132     [ if test $enableval = "no"; then LUFS_SUID=""; else LUFS_SUID="true"; fi ] , LUFS_SUID="true" )
133 AC_SUBST(LUFS_SUID)
134
135 AC_DISABLE_STATIC
136
137 dnl Checks for programs.
138 AC_PROG_CC
139 AC_PROG_CPP
140 AC_PROG_CXX
141 AC_PROG_INSTALL
142 AC_PROG_LN_S
143 AM_PROG_LIBTOOL
144 AC_PROG_MAKE_SET
145
146
147 dnl Checking ssh
148 AC_MSG_CHECKING(for ssh)
149 AC_ARG_WITH(ssh, 
150         [  --with-ssh=PATH         specify the path to the ssh executable], 
151         [SSHPROG=$withval],
152         [SSHPROG=`which ssh 2>/dev/null`])
153 if test ! -x "$SSHPROG"
154 then
155     AC_MSG_RESULT([not found (sshfs support disabled)])
156 else
157     AC_MSG_RESULT([found ($SSHPROG)])
158     AC_DEFINE([HAS_SSH], 1 , [Define if ssh is found.])
159     opt_fs="$opt_fs sshfs"
160 fi
161 AC_SUBST(SSHPROG)
162
163
164 dnl Checking gnome
165 AC_CHECK_PROG(GCONF, gnome-config, gnome-config)
166 AC_CHECK_PROG(GVFSCONF, gnome-vfs-config, gnome-vfs-config)
167 AC_CHECK_LIB(gnomevfs, gnome_vfs_init, HAS_GNOMEVFS=1,)
168 if test "$GCONF" -a "$GVFSCONF" -a "$HAS_GNOMEVFS"
169 then
170     AC_DEFINE([HAS_GVFS], 1, [Define if gvfs is to be built.])
171
172     GVFS_LDADD="`$GCONF --libs gnome` `$GVFSCONF --libs`"
173     GVFS_CFLAGS="`$GCONF --cflags gnome` `$GVFSCONF --cflags`"
174     opt_fs="$opt_fs gvfs"
175 fi
176 AC_SUBST(GVFS_LDADD)
177 AC_SUBST(GVFS_CFLAGS)
178
179 AC_ARG_ENABLE(wavfs,
180         [  --enable-wavfs          build wavfs support (default=no)],
181         [ opt_fs="$opt_fs wavfs"],)
182
183
184 AC_ARG_ENABLE(cefs,
185         [  --enable-cefs           build cefs support (default=no)],
186         [ opt_fs="$opt_fs cefs"],)
187
188 if test -n "$cefs_dir"; then
189     AC_DEFINE([HAS_CEFS], 1, [Define if cefs is to be built.])
190     AC_DEFINE([INFOFILE], ["/tmp/cedevices"], [Path to the information file for the RAPI library])
191 fi
192
193 AC_ARG_ENABLE(cardfs,
194         [  --enable-cardfs         build cardfs support (default=no)],
195         [ WITH_CARDFS=true ],)
196
197 dnl Checks for libraries.
198 AC_CHECK_LIB(pthread, pthread_detach,,AC_MSG_ERROR(libpthread is needed by lufs))
199
200
201 dnl Checks for header files.
202 AC_HEADER_STDC
203 AC_CHECK_HEADERS(unistd.h)
204
205
206 dnl This will test for endian-swapping headers
207 AC_CHECK_HEADERS(byteswap.h sys/byteswap.h endian.h machine/endian.h sys/types.h)
208
209
210 dnl Checks for typedefs, structures, and compiler characteristics.
211 AC_C_CONST
212 AC_TYPE_PID_T
213
214 dnl Checks for library functions.
215 AC_CHECK_FUNCS(mkdir rmdir)
216
217 if test -n "$WITH_CARDFS"; then
218     echo checking for cardfs
219     AC_MSG_CHECKING(for libchipcard)
220     AC_ARG_WITH(chipcard-dir, 
221         [  --with-chipcard-dir=DIR uses libchipcard from given dir],
222         [cc_dir="$withval"],
223         [cc_dir="/usr/local/libchipcard \
224             /usr/local \
225             /usr/libchipcard \
226             /usr \
227             /"])
228     for li in $cc_dir; do
229         if test -x "$li/bin/libchipcard-config"; then
230             chipcard_dir="$li"
231         fi
232     done
233     if test -z "$chipcard_dir"; then
234         AC_MSG_RESULT([not found (chipcard support disabled)])
235     else
236         all_libraries="$all_libraries `$chipcard_dir/bin/libchipcard-config --libraries`"
237         all_includes="$all_includes `$chipcard_dir/bin/libchipcard-config --includes`"
238         AC_DEFINE([HAS_LIBCHIPCARD], 1, [Define if libchipcard is present.])
239         define_has_libchipcard="#define HAS_LIBCHIPCARD"
240         AC_SUBST(define_has_libchipcard)
241         LIBCHIPCARD_LIB="`$chipcard_dir/bin/libchipcard-config --libraries` -lcardfs"
242         LIBCHIPCARD_INCLUDES="`$chipcard_dir/bin/libchipcard-config --includes`"
243         AC_MSG_RESULT($chipcard_dir)
244         all_libraries="$all_libraries $libchipcard_libs"
245         all_includes="$all_includes $libchipcard_includes"
246         opt_fs="$opt_fs cardfs"
247     fi
248 fi
249 AC_SUBST(LIBCHIPCARD_LIB)
250 AC_SUBST(LIBCHIPCARD_INCLUDES)
251
252 all_includes="$all_includes -I`pwd`/include"
253
254 AC_SUBST(opt_fs)
255 AC_SUBST(all_includes)
256 AC_SUBST(all_libraries)
257
258 AC_OUTPUT(\
259         Makefile \
260         lufsd/Makefile \
261         filesystems/Makefile \
262         filesystems/localfs/Makefile \
263         filesystems/locasefs/Makefile \
264         filesystems/sshfs/Makefile \
265         filesystems/ftpfs/Makefile \
266         filesystems/cardfs/Makefile \
267         filesystems/cefs/Makefile \
268         filesystems/cefs/asyncd/Makefile \
269         filesystems/gvfs/Makefile \
270         filesystems/gnetfs/Makefile \
271         filesystems/wavfs/Makefile \
272         util/Makefile \
273         kernel/Makefile \
274         kernel/Linux/Makefile \
275         kernel/Linux/2.4/Makefile \
276         include/Makefile \
277         config/Makefile \
278         docs/Makefile \
279         man/Makefile \
280         )
281
282 echo "###############################################################################"
283 echo " supported filesystems: $opt_fs"
284 echo -n " suid files: "
285 if test $LUFS_SUID; then echo "lufsmnt & lufsumount."; else echo "none."; fi
286 echo "###############################################################################"