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.
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(selinux,
78 [ --enable-selinux enable SELinux support [default=no]], ,
82 AC_ARG_ENABLE(discover-only,
83 [ --enable-discover-only support only reading/probing [default=no]], ,
84 enable_discover_only=no
86 if test "$enable_discover_only" = yes; then
87 AC_DEFINE(DISCOVER_ONLY, 1, [Probing functionality only])
91 AC_ARG_ENABLE(dynamic-loading,
92 [ --enable-dynamic-loading support dynamic fs libraries [default=yes]], ,
93 if test "$enable_discover_only" = yes; then
94 enable_dynamic_loading=no
96 enable_dynamic_loading=yes
99 if test "$enable_discover_only" = yes -a "$enable_dynamic_loading" = yes; then
101 [You can't use --enable-dynamic-loading and --disable-discover-only together]
106 [ --enable-fs include filesystem support [default=yes]], ,
109 if test "$enable_fs" = yes; then
110 AC_DEFINE(ENABLE_FS, 1,
111 [Include file system support. i.e. libparted/fs_...])
115 [ --enable-debug compile in assertions [default=yes]], ,
119 if test "$enable_debug" = yes; then
120 AC_DEFINE(DEBUG, 1, [Enable assertions, etc.])
123 AC_ARG_ENABLE(read-only,
124 [ --enable-read-only disable writing (for debugging) [default=no]]
128 if test "$enable_read_only" = yes; then
129 AC_DEFINE(READ_ONLY, 1, [Disable all writing code])
133 AC_SUBST(PARTEDLDFLAGS)
136 [ --enable-pc98 build with pc98 support [default=yes]], ,
139 if test "$enable_pc98" = yes; then
140 AC_DEFINE(ENABLE_PC98, 1,
141 [Include PC98 partition tables. (Sometimes excluded to avoid
142 collisions with msdos partition tables])
145 AC_ARG_ENABLE(Werror,
146 [ --enable-Werror build with gcc -Werror [default=yes]], ,
150 AC_ARG_ENABLE(hfs-extract-fs,
151 [ --enable-hfs-extract-fs Extract special HFS files for debugging [default=no]], ,
152 enable_hfs_extract_fs=no
154 if test "$enable_hfs_extract_fs" = yes; then
155 AC_DEFINE(HFS_EXTRACT_FS, 1,
156 [Extract low level special HFS(+) files for debugging purposes
157 when using the "check" command (NOT FOR PACKAGING)])
160 dnl make libc threadsafe (not required for us, but useful other users of
162 CFLAGS="$CFLAGS -D_REENTRANT"
164 dnl Check for programs.
167 AC_PROG_GCC_TRADITIONAL
169 dnl This test must come as early as possible after the compiler configuration
170 dnl tests, because the choice of the file model can (in principle) affect
171 dnl whether functions and headers are available, whether they work, etc.
174 CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=${ac_cv_sys_file_offset_bits}"
175 AC_CHECK_SIZEOF(off_t, 64, [
177 #include <sys/types.h>
182 if test "$OS" = linux -a $ac_cv_sizeof_off_t -lt 8; then
183 dnl Need to disable shared libraries, to get llseek() to work. Long
184 dnl story. The short story is: lseek() isn't in glibc, so a syscall
185 dnl must be made. syscalls can't be made from within shared libraries,
186 dnl because of a bug (?) in gcc.
188 off_t is less than 8 bytes. Using llseek syscall, and disabling shared
195 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"
196 AM_GNU_GETTEXT_VERSION([0.12.1])
197 AM_GNU_GETTEXT([external])
198 CFLAGS="$CFLAGS -DLOCALEDIR=\"\\\"$datadir/locale\\\"\""
199 if test "$USE_INCLUDED_LIBINTL" = "yes"; then
201 GNU Parted requires gettext to be installed for compilation -
202 if native language support is desired. Either disable native language support
204 $ ./configure --disable-nls
205 Or install gettext. GNU gettext is available from
206 http://ftp.gnu.org/gnu/gettext
210 CFLAGS="$CFLAGS -DLOCALEDIR=\"\\\"$datadir/locale\\\"\""
212 dnl Check for libdl, if we are doing dynamic loading
214 if test "$enable_dynamic_loading" = yes; then
215 AC_CHECK_LIB(dl, dlopen,
217 PARTED_LIBS="$PARTED_LIBS -ldl"
218 AC_DEFINE(DYNAMIC_LOADING, 1, [Lazy linking to fs libs]),
220 [-ldl not found! Try using --disable-dynamic-loading]
227 dnl Check for libuuid
229 AC_CHECK_LIB(uuid, uuid_generate, UUID_LIBS="-luuid",
231 GNU Parted requires libuuid - a part of the e2fsprogs package (but
232 sometimes distributed separately in uuid-devel or similar)
233 This can probably be found on your distribution's CD or FTP site or at:
234 http://web.mit.edu/tytso/www/linux/e2fsprogs.html
235 Note: if you are using precompiled packages you will also need the development
236 package as well (which may be called e2fsprogs-devel or something similar).
237 If you compile e2fsprogs yourself then you need to do 'make install' and
244 dnl Check for libdevmapper
246 if test "$enable_device_mapper" = yes; then
247 AC_CHECK_LIB(devmapper, dm_task_create,
248 DM_LIBS="-ldevmapper",
250 [libdevmapper not found! Try using --disable-device-mapper]
257 dnl Check for SELinux
259 if test "$enable_selinux" = yes; then
260 SELINUX_LIBS="-lselinux -lsepol"
262 AC_SUBST(SELINUX_LIBS)
264 dnl Check for libreiserfs
266 if test "$enable_dynamic_loading" = no -a "$enable_discover_only" = no; then
268 AC_CHECK_LIB(dal, dal_equals,
270 AC_CHECK_LIB(reiserfs, reiserfs_fs_probe,
271 REISER_LIBS="-ldal -lreiserfs"
272 AC_DEFINE(HAVE_LIBREISERFS, 1, [Have libreiserfs])
274 AC_CHECK_LIB(reiserfs, reiserfs_fs_check,
275 AC_DEFINE(HAVE_REISERFS_FS_CHECK, 1, [Have reiserfs_fs_check()])
280 AC_SUBST(REISER_LIBS)
282 dnl Check for termcap
283 if test "$with_readline" = yes; then
286 AC_SEARCH_LIBS(tgetent, ncurses curses termcap termlib,
287 PARTED_LIBS="$PARTED_LIBS $LIBS",
289 termcap could not be found which is required for the
290 --with-readline option (which is enabled by default). Either disable readline
291 support with --without-readline or download and install termcap from:
292 ftp.gnu.org/gnu/termcap
293 Note: if you are using precompiled packages you will also need the development
294 package as well (which may be called termcap-devel or something similar).
295 Note: (n)curses also seems to work as a substitute for termcap. This was
296 not found either - but you could try installing that as well.
303 dnl Check for readline
304 if test "$with_readline" = yes; then
306 LIBS="$LIBS $PARTED_LIBS"
307 AC_CHECK_LIB(readline, readline,
308 PARTED_LIBS="-lreadline $PARTED_LIBS"
309 AC_DEFINE(HAVE_LIBREADLINE, 1, [have readline]),
311 GNU Readline could not be found which is required for the
312 --with-readline (which is enabled by default). Either disable readline support with
313 --without-readline or downloaded and install it from:
314 ftp.gnu.org/gnu/readline
315 Note: if you are using precompiled packages you will also need the development
316 package as well (which may be called readline-devel or something similar).
324 AC_SUBST(PARTED_LIBS)
326 dnl Check for OS specific libraries
329 if test "$OS" = gnu; then
330 CFLAGS="$CFLAGS -D_GNU_SOURCE=1"
332 dnl libshouldbeinlibc
333 AC_CHECK_LIB(shouldbeinlibc, vm_deallocate,
334 OS_LIBS="$OS_LIBS -lshouldbeinlibc",
336 GNU Parted requires libshouldbeinlibc when running on
337 GNU/Hurd systems. It is a standard part of a GNU/Hurd system.
342 dnl libstore may depend on libparted being present.
343 dnl Aren't circular dependencies wonderful?
347 AC_CHECK_LIB(parted, ped_device_read)
350 AC_CHECK_LIB(store, store_open,
351 OS_LIBS="$OS_LIBS -lstore",
353 GNU Parted requires libstore when running on GNU/Hurd
354 systems. It is a standard part of a GNU/Hurd system.
357 $OS_LIBS $UUID_LIBS $DM_LIBS $LIBS
364 if test "$OS" = beos; then
365 dnl Include the socket library, as it is a depedency of libuuid
366 dnl and so also of us (due to socket() call in libuuid)
367 OS_LIBS="$OS_LIBS -lsocket"
372 dnl One day, gettext might support libtool...
373 dnl if test "$USE_INCLUDED_LIBINTL" = "yes"; then
374 dnl INTLINCS='-I$(top_srcdir)/intl'
379 dnl Checks for header files.
380 AC_CHECK_HEADER(uuid/uuid.h, ,
382 GNU Parted requires libuuid - a part of the e2fsprogs package.
383 You seem to have the library installed but not the headers. These are usually
384 found in a corresponding development package (usually called e2fsprogs-devel).
385 If you can't find one try:
386 http://web.mit.edu/tytso/www/linux/e2fsprogs.html
391 AC_CHECK_HEADERS(getopt.h)
393 dnl required for libparted/llseek.c (TODO: make linux-x86 only)
394 if test "$OS" = linux; then
395 AC_CHECK_HEADER(linux/unistd.h)
398 if test "$with_readline" = yes; then
399 AC_CHECK_HEADERS(readline/readline.h readline/history.h, ,
401 The headers for GNU Readline could not be found which
402 are required for the --with-readline option. You seem to have the GNU readline
403 library installed but not the headers. These are usually found in a
404 corresponding development package (usually called readline-devel). If you can't
406 ftp.gnu.org/gnu/readline
407 Alternatively you can disable readline support with --without-readline
413 AC_CHECK_HEADERS(termcap.h)
415 if test "$USE_NLS" = yes; then
416 AC_CHECK_HEADERS(wctype.h, ,
418 One or more of the header files that are required for
419 native language support (wctype.h) could not be found. Either get a newer
420 version of GNU libc and its headers - which can be obtained from:
421 ftp.gnu.org/gnu/glibc
422 Or disable native language support with the --disable-nls option
428 AC_CHECK_HEADER([execinfo.h], [
429 AC_CHECK_LIB(c, backtrace, [
430 AC_DEFINE(HAVE_BACKTRACE, 1, [Has backtrace support])
431 LDFLAGS="$LDFLAGS -rdynamic"
435 dnl Checks for typedefs, structures and compiler characteristics.
444 dnl Checks for library functions.
445 AC_CHECK_FUNCS(sigaction)
446 AC_CHECK_FUNCS(getuid)
448 if test "$with_readline" = yes; then
450 LIBS="$LIBS $PARTED_LIBS -lreadline"
451 AC_CHECK_FUNCS(rl_completion_matches)
456 CFLAGS=-D_GNU_SOURCE=1
457 AC_CHECK_FUNCS(canonicalize_file_name)
460 CFLAGS="$CFLAGS -W -Wall -Wno-unused -Wno-switch -Wno-format"
462 if test "$enable_Werror" = yes; then
463 CFLAGS="$CFLAGS -Werror"
466 DATE=$(date '+%d %b %Y %H:%M')
469 BUILDINFO="$USER@$HOST, $DATE"
475 include/parted/Makefile
477 libparted/labels/Makefile
478 libparted/fs/Makefile
479 libparted/fs/amiga/Makefile
480 libparted/fs/ext2/Makefile
481 libparted/fs/fat/Makefile
482 libparted/fs/hfs/Makefile
483 libparted/fs/jfs/Makefile
484 libparted/fs/linux_swap/Makefile
485 libparted/fs/ntfs/Makefile
486 libparted/fs/reiserfs/Makefile
487 libparted/fs/ufs/Makefile
488 libparted/fs/xfs/Makefile
495 debug/clearfat/Makefile
502 echo Type \'make\' to compile parted.