1 dnl GNU Parted - a library and front end for manipulation hard disk partitions
2 dnl Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005
3 dnl Free Software Foundation, Inc.
5 dnl This file may be modified and/or distributed without restriction.
9 AC_INIT(include/parted/parted.h)
12 dnl Shamelessly pulled straight from glib's configure.in ...
14 dnl PED_MICRO_VERSION += 1;
15 dnl PED_INTERFACE_AGE += 1;
16 dnl PED_BINARY_AGE += 1;
17 dnl if any functions have been added, set PED_INTERFACE_AGE to 0.
18 dnl if backwards compatibility has been broken (eg. functions removed,
19 dnl function signatures changed),
20 dnl set PED_BINARY_AGE _and_ PED_INTERFACE_AGE to 0.
26 PED_VERSION_SUFFIX=rc3
27 PED_VERSION=$PED_MAJOR_VERSION.$PED_MINOR_VERSION.$PED_MICRO_VERSION$PED_VERSION_SUFFIX
29 LT_RELEASE=$PED_MAJOR_VERSION.$PED_MINOR_VERSION
30 LT_CURRENT=`expr $PED_MICRO_VERSION - $PED_INTERFACE_AGE`
31 LT_REVISION=$PED_INTERFACE_AGE
32 LT_AGE=`expr $PED_BINARY_AGE - $PED_INTERFACE_AGE`
42 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
44 AM_CONFIG_HEADER(config.h)
51 *) AC_MSG_ERROR([Unknown or unsupported OS "$host_os". Only "linux", "gnu" and "beos" are supported in this version of GNU Parted.]) ;;
55 dnl Command-line options
57 [ --with-readline support fancy command line editing], ,
62 [ --enable-mtrace enable malloc() debugging], ,
65 if test "$enable_mtrace" = yes; then
66 AC_DEFINE(ENABLE_MTRACE, 1, [Mtrace malloc() debugging])
69 AC_ARG_ENABLE(device-mapper,
70 [ --enable-device-mapper enable device mapper support [default=no]], ,
71 enable_device_mapper=no
73 if test "$enable_device_mapper" = yes; then
74 AC_DEFINE(ENABLE_DEVICE_MAPPER, 1, [device mapper (libdevmapper) support])
77 AC_ARG_ENABLE(discover-only,
78 [ --enable-discover-only support only reading/probing [default=no]], ,
79 enable_discover_only=no
81 if test "$enable_discover_only" = yes; then
82 AC_DEFINE(DISCOVER_ONLY, 1, [Probing functionality only])
86 AC_ARG_ENABLE(dynamic-loading,
87 [ --enable-dynamic-loading support dynamic fs libraries [default=yes]], ,
88 if test "$enable_discover_only" = yes; then
89 enable_dynamic_loading=no
91 enable_dynamic_loading=yes
94 if test "$enable_discover_only" = yes -a "$enable_dynamic_loading" = yes; then
96 [You can't use --enable-dynamic-loading and --disable-discover-only together]
101 [ --enable-fs include filesystem support [default=yes]], ,
104 if test "$enable_fs" = yes; then
105 AC_DEFINE(ENABLE_FS, 1,
106 [Include file system support. i.e. libparted/fs_...])
110 [ --enable-debug compile in assertions [default=yes]], ,
114 if test "$enable_debug" = yes; then
115 AC_DEFINE(DEBUG, 1, [Enable assertions, etc.])
118 AC_ARG_ENABLE(read-only,
119 [ --enable-read-only disable writing (for debugging) [default=no]]
123 if test "$enable_read_only" = yes; then
124 AC_DEFINE(READ_ONLY, 1, [Disable all writing code])
128 AC_SUBST(PARTEDLDFLAGS)
131 [ --enable-pc98 build with pc98 support [default=yes]], ,
134 if test "$enable_pc98" = yes; then
135 AC_DEFINE(ENABLE_PC98, 1,
136 [Include PC98 partition tables. (Sometimes excluded to avoid
137 collisions with msdos partition tables])
140 AC_ARG_ENABLE(Werror,
141 [ --enable-Werror build with gcc -Werror [default=yes]], ,
145 AC_ARG_ENABLE(hfs-extract-fs,
146 [ --enable-hfs-extract-fs Extract special HFS files for debugging [default=no]], ,
147 enable_hfs_extract_fs=no
149 if test "$enable_hfs_extract_fs" = yes; then
150 AC_DEFINE(HFS_EXTRACT_FS, 1,
151 [Extract low level special HFS(+) files for debugging purposes
152 when using the "check" command (NOT FOR PACKAGING)])
155 dnl make libc threadsafe (not required for us, but useful other users of
157 CFLAGS="$CFLAGS -D_REENTRANT"
159 dnl Check for programs.
162 AC_PROG_GCC_TRADITIONAL
164 dnl This test must come as early as possible after the compiler configuration
165 dnl tests, because the choice of the file model can (in principle) affect
166 dnl whether functions and headers are available, whether they work, etc.
169 CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=${ac_cv_sys_file_offset_bits}"
170 AC_CHECK_SIZEOF(off_t, 64, [
172 #include <sys/types.h>
177 if test "$OS" = linux -a $ac_cv_sizeof_off_t -lt 8; then
178 dnl Need to disable shared libraries, to get llseek() to work. Long
179 dnl story. The short story is: lseek() isn't in glibc, so a syscall
180 dnl must be made. syscalls can't be made from within shared libraries,
181 dnl because of a bug (?) in gcc.
183 off_t is less than 8 bytes. Using llseek syscall, and disabling shared
190 ALL_LINGUAS="ca cs da de es fr gl id it ja nl nn hu pl pt pt_BR ru sv tr uk vi zh_CN zh_TW"
191 AM_GNU_GETTEXT_VERSION([0.12.1])
192 AM_GNU_GETTEXT([external])
193 CFLAGS="$CFLAGS -DLOCALEDIR=\"\\\"$datadir/locale\\\"\""
194 if test "$USE_INCLUDED_LIBINTL" = "yes"; then
196 GNU Parted requires gettext to be installed for compilation -
197 if native language support is desired. Either disable native language support
199 $ ./configure --disable-nls
200 Or install gettext. GNU gettext is available from
201 http://ftp.gnu.org/gnu/gettext
205 CFLAGS="$CFLAGS -DLOCALEDIR=\"\\\"$datadir/locale\\\"\""
207 dnl Check for libdl, if we are doing dynamic loading
209 if test "$enable_dynamic_loading" = yes; then
210 AC_CHECK_LIB(dl, dlopen,
212 PARTED_LIBS="$PARTED_LIBS -ldl"
213 AC_DEFINE(DYNAMIC_LOADING, 1, [Lazy linking to fs libs]),
215 [-ldl not found! Try using --disable-dynamic-loading]
222 dnl Check for libuuid
224 AC_CHECK_LIB(uuid, uuid_generate, UUID_LIBS="-luuid",
226 GNU Parted requires libuuid - a part of the e2fsprogs package (but
227 sometimes distributed separately in uuid-devel or similar)
228 This can probably be found on your distribution's CD or FTP site or at:
229 http://web.mit.edu/tytso/www/linux/e2fsprogs.html
230 Note: if you are using precompiled packages you will also need the development
231 package as well (which may be called e2fsprogs-devel or something similar).
232 If you compile e2fsprogs yourself then you need to do 'make install' and
239 dnl Check for libdevmapper
241 if test "$enable_device_mapper" = yes; then
242 AC_CHECK_LIB(devmapper, dm_task_create,
243 DM_LIBS="-ldevmapper -lselinux -lsepol",
245 [libdevmapper not found! Try using --disable-device-mapper]
252 dnl Check for libreiserfs
254 if test "$enable_dynamic_loading" = no -a "$enable_discover_only" = no; then
256 AC_CHECK_LIB(dal, dal_equals,
258 AC_CHECK_LIB(reiserfs, reiserfs_fs_probe,
259 REISER_LIBS="-ldal -lreiserfs"
260 AC_DEFINE(HAVE_LIBREISERFS, 1, [Have libreiserfs])
262 AC_CHECK_LIB(reiserfs, reiserfs_fs_check,
263 AC_DEFINE(HAVE_REISERFS_FS_CHECK, 1, [Have reiserfs_fs_check()])
268 AC_SUBST(REISER_LIBS)
270 dnl Check for termcap
271 if test "$with_readline" = yes; then
274 AC_SEARCH_LIBS(tgetent, ncurses curses termcap termlib,
275 PARTED_LIBS="$PARTED_LIBS $LIBS",
277 termcap could not be found which is required for the
278 --with-readline option (which is enabled by default). Either disable readline
279 support with --without-readline or download and install termcap from:
280 ftp.gnu.org/gnu/termcap
281 Note: if you are using precompiled packages you will also need the development
282 package as well (which may be called termcap-devel or something similar).
283 Note: (n)curses also seems to work as a substitute for termcap. This was
284 not found either - but you could try installing that as well.
291 dnl Check for readline
292 if test "$with_readline" = yes; then
294 LIBS="$LIBS $PARTED_LIBS"
295 AC_CHECK_LIB(readline, readline,
296 PARTED_LIBS="-lreadline $PARTED_LIBS"
297 AC_DEFINE(HAVE_LIBREADLINE, 1, [have readline]),
299 GNU Readline could not be found which is required for the
300 --with-readline (which is enabled by default). Either disable readline support with
301 --without-readline or downloaded and install it from:
302 ftp.gnu.org/gnu/readline
303 Note: if you are using precompiled packages you will also need the development
304 package as well (which may be called readline-devel or something similar).
312 AC_SUBST(PARTED_LIBS)
314 dnl Check for OS specific libraries
317 if test "$OS" = gnu; then
318 CFLAGS="$CFLAGS -D_GNU_SOURCE=1"
320 dnl libshouldbeinlibc
321 AC_CHECK_LIB(shouldbeinlibc, vm_deallocate,
322 OS_LIBS="$OS_LIBS -lshouldbeinlibc",
324 GNU Parted requires libshouldbeinlibc when running on
325 GNU/Hurd systems. It is a standard part of a GNU/Hurd system.
330 dnl libstore may depend on libparted being present.
331 dnl Aren't circular dependencies wonderful?
335 AC_CHECK_LIB(parted, ped_device_read)
338 AC_CHECK_LIB(store, store_open,
339 OS_LIBS="$OS_LIBS -lstore",
341 GNU Parted requires libstore when running on GNU/Hurd
342 systems. It is a standard part of a GNU/Hurd system.
345 $OS_LIBS $UUID_LIBS $DM_LIBS $LIBS
352 if test "$OS" = beos; then
353 dnl Include the socket library, as it is a depedency of libuuid
354 dnl and so also of us (due to socket() call in libuuid)
355 OS_LIBS="$OS_LIBS -lsocket"
360 dnl One day, gettext might support libtool...
361 dnl if test "$USE_INCLUDED_LIBINTL" = "yes"; then
362 dnl INTLINCS='-I$(top_srcdir)/intl'
367 dnl Checks for header files.
368 AC_CHECK_HEADER(uuid/uuid.h, ,
370 GNU Parted requires libuuid - a part of the e2fsprogs package.
371 You seem to have the library installed but not the headers. These are usually
372 found in a corresponding development package (usually called e2fsprogs-devel).
373 If you can't find one try:
374 http://web.mit.edu/tytso/www/linux/e2fsprogs.html
379 AC_CHECK_HEADERS(getopt.h)
381 dnl required for libparted/llseek.c (TODO: make linux-x86 only)
382 if test "$OS" = linux; then
383 AC_CHECK_HEADER(linux/unistd.h)
386 if test "$with_readline" = yes; then
387 AC_CHECK_HEADERS(readline/readline.h readline/history.h, ,
389 The headers for GNU Readline could not be found which
390 are required for the --with-readline option. You seem to have the GNU readline
391 library installed but not the headers. These are usually found in a
392 corresponding development package (usually called readline-devel). If you can't
394 ftp.gnu.org/gnu/readline
395 Alternatively you can disable readline support with --without-readline
401 AC_CHECK_HEADERS(termcap.h)
403 if test "$USE_NLS" = yes; then
404 AC_CHECK_HEADERS(wctype.h, ,
406 One or more of the header files that are required for
407 native language support (wctype.h) could not be found. Either get a newer
408 version of GNU libc and its headers - which can be obtained from:
409 ftp.gnu.org/gnu/glibc
410 Or disable native language support with the --disable-nls option
416 dnl Checks for typedefs, structures and compiler characteristics.
425 dnl Checks for library functions.
426 AC_CHECK_FUNCS(sigaction)
427 AC_CHECK_FUNCS(getuid)
429 if test "$with_readline" = yes; then
431 LIBS="$LIBS $PARTED_LIBS -lreadline"
432 AC_CHECK_FUNCS(rl_completion_matches)
437 CFLAGS=-D_GNU_SOURCE=1
438 AC_CHECK_FUNCS(canonicalize_file_name)
441 CFLAGS="$CFLAGS -W -Wall -Wno-unused -Wno-switch -Wno-format"
443 if test "$enable_Werror" = yes; then
444 CFLAGS="$CFLAGS -Werror"
447 DATE=$(date '+%d %b %Y %H:%M')
450 BUILDINFO="$USER@$HOST, $DATE"
456 include/parted/Makefile
458 libparted/labels/Makefile
459 libparted/fs/Makefile
460 libparted/fs/amiga/Makefile
461 libparted/fs/ext2/Makefile
462 libparted/fs/fat/Makefile
463 libparted/fs/hfs/Makefile
464 libparted/fs/jfs/Makefile
465 libparted/fs/linux_swap/Makefile
466 libparted/fs/ntfs/Makefile
467 libparted/fs/reiserfs/Makefile
468 libparted/fs/ufs/Makefile
469 libparted/fs/xfs/Makefile
476 debug/clearfat/Makefile
483 echo Type \'make\' to compile parted.