Home | History | Annotate | Download | only in e2fsprogs
      1 AC_INIT(version.h)
      2 AC_PREREQ(2.50)
      3 AC_CONFIG_AUX_DIR(config)
      4 MCONFIG=./MCONFIG
      5 AC_SUBST_FILE(MCONFIG)
      6 BINARY_TYPE=bin
      7 dnl
      8 dnl This is to figure out the version number and the date....
      9 dnl
     10 E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h  \
     11 	| awk '{print $3}' | tr \" " " | awk '{print $1}'`
     12 DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
     13 	| tr \" " "`
     14 E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'`
     15 MONTH=`echo $DATE | awk -F- '{print $2}'`
     16 YEAR=`echo $DATE | awk -F- '{print $3}'`
     17 
     18 if expr $YEAR ">" 1900 > /dev/null ; then
     19 	E2FSPROGS_YEAR=$YEAR
     20 elif expr $YEAR ">" 90 >/dev/null ; then
     21 	E2FSPROGS_YEAR=19$YEAR
     22 else
     23 	E2FSPROGS_YEAR=20$YEAR
     24 fi
     25 
     26 case $MONTH in
     27 Jan)	MONTH_NUM=01; E2FSPROGS_MONTH="January" ;;
     28 Feb)	MONTH_NUM=02; E2FSPROGS_MONTH="February" ;;
     29 Mar)	MONTH_NUM=03; E2FSPROGS_MONTH="March" ;;
     30 Apr)	MONTH_NUM=04; E2FSPROGS_MONTH="April" ;;
     31 May)	MONTH_NUM=05; E2FSPROGS_MONTH="May" ;;
     32 Jun)	MONTH_NUM=06; E2FSPROGS_MONTH="June" ;;
     33 Jul)	MONTH_NUM=07; E2FSPROGS_MONTH="July" ;;
     34 Aug)	MONTH_NUM=08; E2FSPROGS_MONTH="August" ;;
     35 Sep)	MONTH_NUM=09; E2FSPROGS_MONTH="September" ;;
     36 Oct)	MONTH_NUM=10; E2FSPROGS_MONTH="October" ;;
     37 Nov)	MONTH_NUM=11; E2FSPROGS_MONTH="November" ;;
     38 Dec)	MONTH_NUM=12; E2FSPROGS_MONTH="December" ;;
     39 *)	echo "Unknown month $MONTH??" ;;
     40 esac
     41 
     42 base_ver=`echo $E2FSPROGS_VERSION | \
     43 	       sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
     44 
     45 date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
     46 
     47 case $E2FSPROGS_VERSION in
     48 *-WIP|pre-*)
     49 	pre_vers=`echo $base_ver 0.01 - p | dc`
     50 	E2FSPROGS_PKGVER="$pre_vers+${base_ver}_WIP_$date_spec"
     51 	;;
     52 *)
     53 	E2FSPROGS_PKGVER="$base_ver"
     54 	;;
     55 esac
     56 
     57 unset DATE MONTH YEAR base_ver pre_vers date_spec
     58 echo "Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION"
     59 echo "Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}"
     60 AC_SUBST(E2FSPROGS_YEAR)
     61 AC_SUBST(E2FSPROGS_MONTH)
     62 AC_SUBST(E2FSPROGS_DAY)
     63 AC_SUBST(E2FSPROGS_VERSION)
     64 AC_SUBST(E2FSPROGS_PKGVER)
     65 AC_CANONICAL_HOST
     66 dnl
     67 dnl Use diet libc
     68 dnl 
     69 AC_ARG_WITH([diet-libc],
     70 [  --with-diet-libc        use diet libc],
     71 CC="diet cc -nostdinc"
     72 AC_MSG_RESULT(CC=$CC))dnl
     73 dnl
     74 dnl set $(CC) from --with-cc=value
     75 dnl
     76 AC_ARG_WITH([cc],
     77 [  --with-cc=COMPILER      select compiler to use],
     78 AC_MSG_RESULT(CC=$withval)
     79 CC=$withval,
     80 if test -z "$CC" ; then CC=cc; fi
     81 [AC_MSG_RESULT(CC defaults to $CC)])dnl
     82 export CC
     83 AC_SUBST([CC])
     84 AC_PROG_CC
     85 AC_PROG_CPP
     86 dnl
     87 dnl set $(LD) from --with-linker=value
     88 dnl
     89 AC_ARG_WITH([linker],
     90 [  --with-linker=LINKER    select linker to use],
     91 AC_MSG_RESULT(LD=$withval)
     92 LD=$withval,
     93 if test -z "$LD" ; then LD=$CC; fi
     94 [AC_MSG_RESULT(LD defaults to $LD)])dnl
     95 export LD
     96 AC_SUBST([LD])
     97 dnl
     98 dnl set $(CCOPTS) from --with-ccopts=value
     99 dnl
    100 AC_ARG_WITH([ccopts],
    101 [  --with-ccopts=CCOPTS    select compiler command line options],
    102 AC_MSG_RESULT(CCOPTS is $withval)
    103 CFLAGS=$withval,
    104 )dnl
    105 dnl
    106 dnl On systems without linux header files, we add an extra include directory
    107 dnl that holds enough to fake it (hopefully).  Note that the $(top_srcdir) here
    108 dnl is quoted so that it gets expanded by make, not by configure.
    109 dnl
    110 AC_CHECK_HEADER(linux/fs.h, [linux_headers=yes], [linux_headers=no])
    111 if test "$linux_headers" != yes; then
    112   LINUX_INCLUDE='-I$(top_builddir)/include'
    113 fi
    114 AC_SUBST(LINUX_INCLUDE)
    115 dnl
    116 dnl Alpha computers use fast and imprecise floating point code that may
    117 dnl miss exceptions by default. Force sane options if we're using GCC.
    118 AC_MSG_CHECKING(for additional special compiler flags)
    119 if test "$GCC" = yes
    120 then
    121     case "$host_cpu" in
    122 	alpha)		addcflags="-mieee" ;;
    123     esac
    124 fi
    125 if test "x$addcflags" != x
    126 then
    127     AC_MSG_RESULT($addcflags)
    128     CFLAGS="$addcflags $CFLAGS"
    129 else
    130     AC_MSG_RESULT([[(none)]])
    131 fi
    132 dnl
    133 dnl Set default values for library extentions.  Will be dealt with after
    134 dnl parsing configuration opions, which may modify these
    135 dnl
    136 LIB_EXT=.a
    137 STATIC_LIB_EXT=.a
    138 PROFILE_LIB_EXT=.a
    139 dnl
    140 dnl set $(LDFLAGS) from --with-ldopts=value
    141 dnl
    142 AC_ARG_WITH([ldopts],
    143 [  --with-ldopts=LDOPTS    select linker command line options],
    144 AC_MSG_RESULT(LDFLAGS is $withval)
    145 LDFLAGS=$withval,
    146 LDFLAGS=)dnl
    147 AC_SUBST(LDFLAGS)
    148 dnl
    149 dnl Allow separate `root_prefix' to be specified
    150 dnl
    151 AC_ARG_WITH([root-prefix],
    152 [  --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
    153 root_prefix=$withval,
    154 root_prefix=NONE)dnl
    155 dnl
    156 dnl handle --enable-maintainer-mode
    157 dnl
    158 AC_ARG_ENABLE([maintainer-mode],
    159 [  --enable-maintainer-mode enable makefile rules useful for maintainers],
    160 if test "$enableval" = "no"
    161 then
    162 	MAINTAINER_CMT=#
    163 	echo "Disabling maintainer mode"
    164 else
    165 	MAINTAINER_CMT=
    166 	echo "Enabling maintainer mode"
    167 fi
    168 ,
    169 MAINTAINER_CMT=#
    170 echo "Disabling maintainer mode by default"
    171 )
    172 AC_SUBST(MAINTAINER_CMT)
    173 dnl
    174 dnl handle --enable-compression
    175 dnl
    176 AC_ARG_ENABLE([compression],
    177 [  --enable-compression	  enable EXPERIMENTAL compression support],
    178 if test "$enableval" = "no"
    179 then
    180 	echo "Disabling compression support"
    181 else
    182 	AC_DEFINE(ENABLE_COMPRESSION)
    183 	echo "Enabling compression support"
    184 	echo "WARNING: Compression support is experimental"
    185 fi
    186 ,
    187 echo "Disabling compression support by default"
    188 )
    189 dnl
    190 dnl handle --enable-htree
    191 dnl
    192 AC_ARG_ENABLE([htree],
    193 [  --enable-htree      	  enable EXPERIMENTAL htree directory support],
    194 if test "$enableval" = "no"
    195 then
    196 	HTREE_CMT=#
    197 	echo "Disabling htree directory support"
    198 else
    199 	HTREE_CMT=
    200 	AC_DEFINE(ENABLE_HTREE)
    201 	echo "Enabling htree directory support"
    202 fi
    203 ,
    204 HTREE_CMT=
    205 AC_DEFINE(ENABLE_HTREE)
    206 echo "Enabling htree directory support by default"
    207 )
    208 AC_SUBST(HTREE_CMT)
    209 dnl
    210 dnl This needs to be before all of the --enable-*-shlibs options
    211 dnl
    212 E2_PKG_CONFIG_STATIC=--static
    213 dnl
    214 dnl handle --enable-elf-shlibs
    215 dnl
    216 AC_ARG_ENABLE([elf-shlibs],
    217 [  --enable-elf-shlibs	  select ELF shared libraries],
    218 if test "$enableval" = "no"
    219 then
    220 	ELF_CMT=#
    221 	MAKEFILE_ELF=/dev/null
    222 	echo "Disabling ELF shared libraries"
    223 else
    224 	E2_PKG_CONFIG_STATIC=
    225 	ELF_CMT=
    226 	MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
    227 	[case "$host_os" in
    228 	solaris2.*)
    229 		MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
    230 	;;
    231 	esac]
    232 	BINARY_TYPE=elfbin
    233 	LIB_EXT=.so
    234 	echo "Enabling ELF shared libraries"
    235 fi
    236 ,
    237 MAKEFILE_ELF=/dev/null
    238 ELF_CMT=#
    239 echo "Disabling ELF shared libraries by default"
    240 )
    241 AC_SUBST(ELF_CMT)
    242 AC_SUBST_FILE(MAKEFILE_ELF)
    243 dnl
    244 dnl handle --enable-bsd-shlibs
    245 dnl
    246 AC_ARG_ENABLE([bsd-shlibs],
    247 [  --enable-bsd-shlibs	  select BSD shared libraries],
    248 if test "$enableval" = "no"
    249 then
    250 	BSDLIB_CMT=#
    251 	MAKEFILE_BSDLIB=/dev/null
    252 	echo "Disabling BSD shared libraries"
    253 else
    254 	E2_PKG_CONFIG_STATIC=
    255 	BSDLIB_CMT=
    256 	MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
    257 	LIB_EXT=.so
    258 	[case "$host_os" in
    259 	darwin*)
    260 		MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
    261 		LIB_EXT=.dylib
    262 	;;
    263 	esac]
    264 	echo "Enabling BSD shared libraries"
    265 fi
    266 ,
    267 MAKEFILE_BSDLIB=/dev/null
    268 BSDLIB_CMT=#
    269 echo "Disabling BSD shared libraries by default"
    270 )
    271 AC_SUBST(BSDLIB_CMT)
    272 AC_SUBST_FILE(MAKEFILE_BSDLIB)
    273 dnl
    274 dnl handle --enable-profile
    275 dnl
    276 AC_ARG_ENABLE([profile],
    277 [  --enable-profile	  build profiling libraries],
    278 if test "$enableval" = "no"
    279 then
    280 	PROFILE_CMT=#
    281 	MAKEFILE_PROFILE=/dev/null
    282 	echo "Disabling profiling libraries"
    283 else
    284 	PROFILE_CMT=
    285 	MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
    286 	PROFILED_LIB_EXT=_p.a
    287 	echo "Building profiling libraries"
    288 fi
    289 ,
    290 PROFILE_CMT=#
    291 MAKEFILE_PROFILE=/dev/null
    292 echo "Disabling profiling libraries by default"
    293 )
    294 AC_SUBST(PROFILE_CMT)
    295 AC_SUBST_FILE(MAKEFILE_PROFILE)
    296 dnl
    297 dnl handle --enable-checker
    298 dnl
    299 AC_ARG_ENABLE([checker],
    300 [  --enable-checker	  build checker libraries],
    301 if test "$enableval" = "no"
    302 then
    303 	CHECKER_CMT=#
    304 	MAKEFILE_CHECKER=/dev/null
    305 	echo "Disabling checker libraries"
    306 else
    307 	CHECKER_CMT=
    308 	MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
    309 	echo "Building checker libraries"
    310 fi
    311 ,
    312 CHECKER_CMT=#
    313 MAKEFILE_CHECKER=/dev/null
    314 echo "Disabling checker libraries by default"
    315 )
    316 AC_SUBST(CHECKER_CMT)
    317 AC_SUBST_FILE(MAKEFILE_CHECKER)
    318 dnl
    319 dnl Substitute library extensions
    320 dnl
    321 AC_SUBST(LIB_EXT)
    322 AC_SUBST(STATIC_LIB_EXT)
    323 AC_SUBST(PROFILED_LIB_EXT)
    324 dnl
    325 dnl handle --enable-jbd-debug
    326 dnl
    327 AC_ARG_ENABLE([jbd-debug],
    328 [  --enable-jbd-debug  	  enable journal debugging],
    329 if test "$enableval" = "no"
    330 then
    331 	echo "Disabling journal debugging"
    332 else
    333 	AC_DEFINE(CONFIG_JBD_DEBUG)
    334 	echo "Enabling journal debugging"
    335 fi
    336 ,
    337 echo "Disabling journal debugging by default"
    338 )
    339 dnl
    340 dnl handle --enable-blkid-debug
    341 dnl
    342 AC_ARG_ENABLE([blkid-debug],
    343 [  --enable-blkid-debug    enable blkid debugging],
    344 if test "$enableval" = "no"
    345 then
    346 	echo "Disabling blkid debugging"
    347 else
    348 	AC_DEFINE(CONFIG_BLKID_DEBUG)
    349 	echo "Enabling blkid debugging"
    350 fi
    351 ,
    352 echo "Disabling blkid debugging by default"
    353 )
    354 dnl
    355 dnl handle --enable-testio-debug
    356 dnl
    357 AC_ARG_ENABLE([testio-debug],
    358 [  --enable-testio-debug   enable the use of the test I/O manager for debugging],
    359 if test "$enableval" = "no"
    360 then
    361 	echo "Disabling testio debugging"
    362 else
    363 	AC_DEFINE(CONFIG_TESTIO_DEBUG)
    364 	echo "Enabling testio debugging"
    365 fi
    366 ,
    367 echo "Disabling testio debugging by default"
    368 )
    369 dnl
    370 dnl handle --enable-swapfs
    371 dnl
    372 AC_ARG_ENABLE([swapfs],
    373 [  --disable-swapfs    	  disable support of legacy byte-swapped filesystems],
    374 if test "$enableval" = "no"
    375 then
    376 	SWAPFS_CMT=#
    377 	echo "Disabling swapfs support"
    378 else
    379 	SWAPFS_CMT=
    380 	AC_DEFINE(ENABLE_SWAPFS)
    381 	echo "Enabling swapfs support"
    382 fi
    383 ,
    384 SWAPFS_CMT=
    385 echo "Enabling swapfs support by default"
    386 AC_DEFINE(ENABLE_SWAPFS)
    387 )
    388 AC_SUBST(SWAPFS_CMT)
    389 dnl
    390 dnl handle --enable-debugfs
    391 dnl
    392 AC_ARG_ENABLE([debugfs],
    393 [  --disable-debugfs   	  disable support of debugfs program],
    394 if test "$enableval" = "no"
    395 then
    396 	echo "Disabling debugfs support"
    397 	DEBUGFS_CMT="#"
    398 else
    399 	DEBUGFS_CMT=
    400 	echo "Enabling debugfs support"
    401 fi
    402 ,
    403 echo "Enabling debugfs support by default"
    404 DEBUGFS_CMT=
    405 )
    406 AC_SUBST(DEBUGFS_CMT)
    407 dnl
    408 dnl handle --enable-imager
    409 dnl
    410 AC_ARG_ENABLE([imager],
    411 [  --disable-imager   	  disable support of e2image program],
    412 if test "$enableval" = "no"
    413 then
    414 	echo "Disabling e2image support"
    415 	IMAGER_CMT="#"
    416 else
    417 	IMAGER_CMT=
    418 	echo "Enabling e2image support"
    419 fi
    420 ,
    421 echo "Enabling e2image support by default"
    422 IMAGER_CMT=
    423 )
    424 AC_SUBST(IMAGER_CMT)
    425 dnl
    426 dnl handle --enable-resizer
    427 dnl
    428 AC_ARG_ENABLE([resizer],
    429 [  --disable-resizer   	  disable support of e2resize program],
    430 if test "$enableval" = "no"
    431 then
    432 	echo "Disabling e2resize support"
    433 	RESIZER_CMT="#"
    434 else
    435 	RESIZER_CMT=
    436 	echo "Enabling e2resize support"
    437 fi
    438 ,
    439 echo "Enabling e2resize support by default"
    440 RESIZER_CMT=
    441 )
    442 AC_SUBST(RESIZER_CMT)
    443 dnl
    444 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
    445 dnl
    446 AC_ARG_ENABLE([fsck],
    447 [  --enable-fsck           build fsck wrapper program],
    448 [if test "$enableval" = "no"
    449 then
    450 	FSCK_PROG='' FSCK_MAN=''
    451 	echo "Not building fsck wrapper"
    452 else
    453 	FSCK_PROG=fsck FSCK_MAN=fsck.8
    454 	echo "Building fsck wrapper"
    455 fi]
    456 ,
    457 [case "$host_os" in
    458   gnu*)
    459     FSCK_PROG='' FSCK_MAN=''
    460     echo "Not building fsck wrapper by default"
    461     ;;
    462   *)
    463     FSCK_PROG=fsck FSCK_MAN=fsck.8
    464     echo "Building fsck wrapper by default"
    465 esac]
    466 )
    467 AC_SUBST(FSCK_PROG)
    468 AC_SUBST(FSCK_MAN)
    469 dnl
    470 dnl See whether to install the `e2initrd-helper' program
    471 dnl
    472 AC_ARG_ENABLE([e2initrd-helper],
    473 [  --enable-e2initrd-helper build e2initrd-helper program],
    474 [if test "$enableval" = "no"
    475 then
    476 	E2INITRD_PROG='' E2INITRD_MAN=''
    477 	echo "Not building e2initrd helper"
    478 else
    479 	E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
    480 	echo "Building e2initrd helper"
    481 fi]
    482 ,
    483 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
    484 echo "Building e2initrd helper by default"
    485 )
    486 AC_SUBST(E2INITRD_PROG)
    487 AC_SUBST(E2INITRD_MAN)
    488 dnl handle --enable-blkid-devmapper
    489 dnl
    490 STATIC_BLKID_DEVMAPPER_LIBS=''
    491 AC_ARG_ENABLE([blkid-devmapper],
    492 [  --enable-blkid-devmapper  build with device-mapper support],
    493 [if test "$enableval" = "no"
    494 then
    495 	echo "Disabling device-mapper support"
    496 	DEVMAPPER_REQ=''
    497 	DEVMAPPER_LIBS=''
    498 	STATIC_DEVMAPPER_LIBS=''
    499 else
    500 	AC_DEFINE(HAVE_DEVMAPPER)
    501 	echo "Enabling device-mapper support"
    502 
    503 	PKG_PROG_PKG_CONFIG()
    504 
    505 	if test -z "$PKG_CONFIG"; then
    506 		echo "pkg-config not installed; please install it."
    507 		exit 1;
    508 	fi
    509  
    510 	AC_CHECK_LIB(devmapper, dm_tree_create,
    511 		[DEVMAPPER_LIBS=`$PKG_CONFIG --libs devmapper`; 
    512 		 STATIC_DEVMAPPER_LIBS=`$PKG_CONFIG --static --libs devmapper`;
    513 		 DEVMAPPER_REQ="devmapper";
    514 		 DEVMAPPER_PC_LIBS="-ldevmapper"],
    515 		[AC_MSG_ERROR([device-mapper library not found])],
    516 		[$DEVMAPPER_LIBS])
    517 	# work around stupid devmapper.pc bug in Debian
    518 	case "$STATIC_DEVMAPPER_LIBS" in
    519 	*pthread*)
    520 	    ;;
    521 	*)
    522 	    echo "Working around Debian bug #390243..."
    523 	    STATIC_DEVMAPPER_LIBS="-pthread $STATIC_DEVMAPPER_LIBS"
    524 	    ;;
    525 	esac
    526 	if test "$E2_PKG_CONFIG_STATIC" = "--static"; then
    527 	    DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS"
    528 	    STATIC_BLKID_DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS"
    529 	fi
    530 fi]
    531 ,
    532 echo "Disabling device-mapper support by default"
    533 )
    534 AC_SUBST(DEVMAPPER_REQ)
    535 AC_SUBST(DEVMAPPER_PC_LIBS)
    536 AC_SUBST(DEVMAPPER_LIBS)
    537 AC_SUBST(STATIC_DEVMAPPER_LIBS)
    538 AC_SUBST(STATIC_BLKID_DEVMAPPER_LIBS)
    539 dnl
    540 dnl
    541 dnl
    542 AC_ARG_ENABLE([tls],
    543 [  --disable-tls           disable use of thread local support],
    544 [if test "$enableval" = "no"
    545 then
    546 	try_tls=""
    547 	echo "Disabling thread local support"
    548 else
    549 	try_tls="yes"
    550 	echo "Enabling thread local support"
    551 fi]
    552 ,
    553 try_tls="yes"
    554 echo "Try using thread local support by default"
    555 )
    556 if test "$try_tls" = "yes"
    557 then
    558 AX_TLS
    559 fi
    560 dnl
    561 dnl
    562 dnl
    563 AC_ARG_ENABLE([uuidd],
    564 [  --disable-uuidd         disable building the uuid daemon],
    565 [if test "$enableval" = "no"
    566 then
    567 	echo "Not building uuidd"
    568 	UUIDD_CMT="#"
    569 else
    570 	AC_DEFINE(USE_UUIDD)
    571 	UUIDD_CMT=""
    572 	echo "Building uuidd"
    573 fi]
    574 ,
    575 AC_DEFINE(USE_UUIDD)
    576 UUIDD_CMT=""
    577 echo "Building uuidd by default"
    578 )
    579 AC_SUBST(UUIDD_CMT)
    580 dnl
    581 dnl
    582 dnl
    583 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
    584 AC_SUBST_FILE(MAKEFILE_LIBRARY)
    585 dnl
    586 dnl Add internationalization support, using gettext.
    587 dnl
    588 GETTEXT_PACKAGE=e2fsprogs
    589 PACKAGE=e2fsprogs
    590 VERSION="$E2FSPROGS_VERSION"
    591 VERSION=0.14.1
    592 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
    593 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
    594 AC_SUBST(GETTEXT_PACKAGE)
    595 AC_SUBST(PACKAGE)
    596 AC_SUBST(VERSION)
    597 
    598 AM_GNU_GETTEXT
    599 dnl
    600 dnl End of configuration options
    601 dnl
    602 AC_SUBST(BINARY_TYPE)
    603 AC_PROG_MAKE_SET
    604 AC_PATH_PROG(LN, ln, ln)
    605 AC_PROG_LN_S
    606 AC_PATH_PROG(MV, mv, mv)
    607 AC_PATH_PROG(CP, cp, cp)
    608 AC_PATH_PROG(RM, rm, rm)
    609 AC_PATH_PROG(CHMOD, chmod, :)
    610 AC_PROG_AWK
    611 AC_PROG_EGREP
    612 AC_PATH_PROG(SED, sed, sed)
    613 AC_PATH_PROG(PERL, perl, perl)
    614 AC_PATH_PROG(LDCONFIG, ldconfig, :)
    615 AC_CHECK_TOOL(AR, ar, ar)
    616 AC_CHECK_TOOL(RANLIB, ranlib, :)
    617 AC_CHECK_TOOL(STRIP, strip, :)
    618 AC_PROG_INSTALL
    619 # See if we need a separate native compiler.
    620 if test $cross_compiling = no; then
    621   BUILD_CC="$CC"
    622   AC_SUBST(BUILD_CC)
    623 else
    624   AC_CHECK_PROGS(BUILD_CC, gcc cc)
    625 fi
    626 AC_CHECK_HEADERS(dirent.h errno.h getopt.h malloc.h mntent.h paths.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h unistd.h utime.h linux/fd.h linux/major.h net/if_dl.h netinet/in.h sys/disklabel.h sys/ioctl.h sys/mkdev.h sys/mman.h sys/prctl.h sys/queue.h sys/resource.h sys/select.h sys/socket.h sys/sockio.h sys/stat.h sys/syscall.h sys/sysmacros.h sys/time.h sys/types.h sys/un.h sys/wait.h)
    627 AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
    628 [[
    629 #if HAVE_SYS_QUEUE_H
    630 #include <sys/queue.h>
    631 #endif
    632 ]])
    633 AC_CHECK_HEADERS(net/if.h,,,
    634 [[
    635 #if HAVE_SYS_TYPES_H
    636 #include <sys/types.h>
    637 #endif
    638 #if HAVE_SYS_SOCKET
    639 #include <sys/socket.h>
    640 #endif
    641 ]])
    642 AC_FUNC_VPRINTF
    643 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
    644 dnl is not decleared.
    645 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT)],,
    646 		[#include <dirent.h>])
    647 dnl Check to see if ssize_t was decleared
    648 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T)],,
    649 	      [#include <sys/types.h>])
    650 dnl
    651 dnl Check to see if llseek() is declared in unistd.h.  On some libc's 
    652 dnl it is, and on others it isn't..... Thank you glibc developers....
    653 dnl
    654 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)],,
    655 	      [#include <unistd.h>])
    656 dnl
    657 dnl Check to see if lseek64() is declared in unistd.h.  Glibc's header files
    658 dnl are so convoluted that I can't tell whether it will always be defined,
    659 dnl and if it isn't defined while lseek64 is defined in the library, 
    660 dnl disaster will strike.  
    661 dnl
    662 dnl Warning!  Use of --enable-gcc-wall may throw off this test.
    663 dnl
    664 dnl
    665 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE)],,
    666 		[#define _LARGEFILE_SOURCE
    667 		 #define _LARGEFILE64_SOURCE
    668 		 #include <unistd.h>])
    669 dnl
    670 dnl Word sizes...
    671 dnl
    672 if test "$cross_compiling" = yes -a "$ac_cv_sizeof_long" = ""; then
    673   # if cross-compiling, with no cached values, just assume something common. 
    674   ac_cv_sizeof_short=2
    675   ac_cv_sizeof_int=4
    676   ac_cv_sizeof_long=4
    677   ac_cv_sizeof_long_long=8
    678   AC_MSG_WARN([Cross-compiling, so cannot check type sizes; assuming short=2, int=4, long=4, long long=8])
    679 fi
    680 AC_CHECK_SIZEOF(short)
    681 AC_CHECK_SIZEOF(int)
    682 AC_CHECK_SIZEOF(long)
    683 AC_CHECK_SIZEOF(long long)
    684 SIZEOF_SHORT=$ac_cv_sizeof_short
    685 SIZEOF_INT=$ac_cv_sizeof_int
    686 SIZEOF_LONG=$ac_cv_sizeof_long
    687 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
    688 AC_SUBST(SIZEOF_SHORT)
    689 AC_SUBST(SIZEOF_INT)
    690 AC_SUBST(SIZEOF_LONG)
    691 AC_SUBST(SIZEOF_LONG_LONG)
    692 AC_C_BIGENDIAN
    693 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
    694 ASM_TYPES_HEADER=./asm_types.h
    695 AC_SUBST_FILE(ASM_TYPES_HEADER)
    696 dnl
    697 dnl See if we have inttypes.h and if intptr_t is defined
    698 dnl
    699 AC_CHECK_HEADERS([inttypes.h])
    700 AC_CHECK_TYPES(intptr_t)
    701 dnl
    702 dnl See if struct stat has a st_flags field, in which case we can get file
    703 dnl flags somewhat portably.  Also check for the analogous setter, chflags().
    704 dnl
    705 AC_MSG_CHECKING(whether struct stat has a st_flags field)
    706 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
    707 	AC_TRY_COMPILE([#include <sys/stat.h>],
    708 		[struct stat stat; stat.st_flags = 0;],
    709 		[e2fsprogs_cv_struct_st_flags=yes],
    710 		[e2fsprogs_cv_struct_st_flags=no]))
    711 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
    712 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
    713   AC_MSG_CHECKING(whether st_flags field is useful)
    714   AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
    715 	AC_TRY_COMPILE([#include <sys/stat.h>],
    716 		[struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
    717 		[e2fsprogs_cv_struct_st_flags_immut=yes],
    718 		[e2fsprogs_cv_struct_st_flags_immut=no]))
    719   AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
    720   if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
    721 	  AC_DEFINE(HAVE_STAT_FLAGS)
    722   fi
    723 fi
    724 dnl
    725 dnl Check for the presence of SA_LEN
    726 dnl
    727 AC_CHECK_MEMBER(struct sockaddr.sa_len,
    728 		AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]),,
    729 	[#include <sys/types.h>
    730 	 #include <sys/socket.h>])
    731 dnl
    732 AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 ftruncate64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime setresuid setresgid)
    733 dnl
    734 dnl Check to see if -lsocket is required (solaris) to make something
    735 dnl that uses socket() to compile; this is needed for the UUID library
    736 dnl
    737 SOCKET_LIB=''
    738 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
    739 AC_SUBST(SOCKET_LIB)
    740 dnl
    741 dnl Check to see if libdl exists for the sake of dlopen
    742 dnl
    743 DLOPEN_LIB=''
    744 AC_CHECK_LIB(dl, dlopen, 
    745 [DLOPEN_LIB=-ldl
    746 AC_DEFINE(HAVE_DLOPEN)])
    747 AC_SUBST(DLOPEN_LIB)
    748 dnl
    749 dnl See if optreset exists
    750 dnl
    751 AC_MSG_CHECKING(for optreset)
    752 AC_CACHE_VAL(ac_cv_have_optreset,
    753 [AC_EGREP_HEADER(optreset, unistd.h,
    754   ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
    755 AC_MSG_RESULT($ac_cv_have_optreset)
    756 if test $ac_cv_have_optreset = yes; then
    757   AC_DEFINE(HAVE_OPTRESET)
    758 fi
    759 dnl
    760 dnl Check for unified diff
    761 dnl
    762 AC_MSG_CHECKING(for unified diff option)
    763 if diff -u $0 $0 >& /dev/null ; then
    764    UNI_DIFF_OPTS=-u
    765 else
    766    UNI_DIFF_OPTS=-c
    767 fi
    768 AC_MSG_RESULT($UNI_DIFF_OPTS)
    769 AC_SUBST(UNI_DIFF_OPTS)
    770 dnl
    771 dnl We use the EXT2 ioctls only under Linux
    772 dnl
    773 case "$host_os" in
    774 linux*)
    775 	AC_DEFINE(HAVE_EXT2_IOCTLS)
    776 	;;
    777 esac
    778 dnl
    779 dnl OS-specific uncomment control
    780 dnl
    781 LINUX_CMT="#"
    782 CYGWIN_CMT="#"
    783 UNIX_CMT=
    784 case "$host_os" in
    785 linux*)
    786 	LINUX_CMT=
    787 	;;
    788 cygwin)
    789 	CYGWIN_CMT=
    790 	UNIX_CMT="#"
    791 	;;
    792 esac
    793 AC_SUBST(LINUX_CMT)
    794 AC_SUBST(CYGWIN_CMT)
    795 AC_SUBST(UNIX_CMT)
    796 dnl
    797 dnl Linux and Hurd places root files in the / by default
    798 dnl
    799 case "$host_os" in
    800 linux* | gnu* | k*bsd*-gnu)
    801 	if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
    802 		root_prefix="";
    803 		echo "On $host_os systems, root_prefix defaults to ''"
    804 	fi
    805 	;;
    806 esac
    807 dnl
    808 dnl On Linux/hurd, force the prefix to be /usr
    809 dnl
    810 case "$host_os" in
    811 linux* | gnu* | k*bsd*-gnu)
    812 	if test "$prefix" = NONE ; then
    813 		prefix="/usr";
    814 		echo "On $host_os systems, prefix defaults to /usr"
    815 		if test "$mandir" = '${prefix}/man' ; then
    816 			echo "...and mandir defaults to /usr/share/man"
    817 			mandir=/usr/share/man
    818 		fi
    819 	fi
    820 ;;
    821 esac
    822 if test "$root_prefix" = NONE ; then
    823 	if test "$prefix" = NONE ; then
    824 		root_prefix="$ac_default_prefix"
    825 	else
    826 		root_prefix="$prefix"
    827 	fi
    828 	root_bindir=$bindir
    829 	root_sbindir=$sbindir
    830 	root_libdir=$libdir
    831 	root_sysconfdir=$sysconfdir
    832 else
    833 	root_bindir='${root_prefix}/bin'
    834 	root_sbindir='${root_prefix}/sbin'
    835 	root_libdir='${root_prefix}/lib'
    836 	root_sysconfdir='${root_prefix}/etc'
    837 fi
    838 if test "$bindir" != '${exec_prefix}/bin'; then
    839     root_bindir=$bindir
    840     echo "Setting root_bindir to $root_bindir"
    841 fi
    842 if test "$sbindir" != '${exec_prefix}/sbin'; then
    843     root_sbindir=$sbindir
    844     echo "Setting root_sbindir to $root_sbindir"
    845 fi
    846 if test "$libdir" != '${exec_prefix}/lib'; then
    847     root_libdir=$libdir
    848     echo "Setting root_libdir to $root_libdir"
    849 fi
    850 if test "$sysconfdir" != '${prefix}/etc'; then
    851     root_sysconfdir=$sysconfdir
    852     echo "Setting root_sysconfdir to $root_sysconfdir"
    853 fi
    854 AC_SUBST(root_prefix)
    855 AC_SUBST(root_bindir)
    856 AC_SUBST(root_sbindir)
    857 AC_SUBST(root_libdir)
    858 AC_SUBST(root_sysconfdir)
    859 dnl
    860 dnl See if -static works.
    861 dnl
    862 AC_MSG_CHECKING([whether linker accepts -static])
    863 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
    864 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
    865 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
    866  ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
    867 LDFLAGS=$SAVE_LDFLAGS])
    868 dnl
    869 dnl Regardless of how the test turns out, Solaris doesn't handle -static
    870 dnl This is caused by the socket library requiring the nsl library, which
    871 dnl requires the -dl library, which only works for dynamically linked 
    872 dnl programs.  It basically means you can't have statically linked programs
    873 dnl which use the network under Solaris.  
    874 dnl
    875 case "$host_os" in
    876 solaris2.*)
    877 	ac_cv_e2fsprogs_use_static=no	
    878 ;;
    879 esac
    880 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
    881 LDFLAG_STATIC=
    882 if test $ac_cv_e2fsprogs_use_static = yes; then
    883 	LDFLAG_STATIC=-static
    884 fi
    885 AC_SUBST(LDFLAG_STATIC)
    886 dnl
    887 dnl Work around mysterious Darwin / GNU libintl problem
    888 dnl (__asm__ redirection doesn't work for some mysterious reason.  Looks like
    889 dnl Apple hacked gcc somehow?)
    890 dnl
    891 case "$host_os" in
    892 darwin*)
    893 	echo "Using Apple Darwin / GNU libintl workaround"
    894 	AC_DEFINE(_INTL_REDIRECT_MACROS)
    895 	;;
    896 esac
    897 dnl
    898 dnl Make the ss and et directories work correctly.
    899 dnl
    900 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
    901 ET_DIR=`cd ${srcdir}/lib/et; pwd`
    902 AC_SUBST(SS_DIR)
    903 AC_SUBST(ET_DIR)
    904 dnl
    905 dnl Only try to run the test suite if we're not cross compiling.
    906 dnl
    907 if test "$cross_compiling" = yes ; then
    908   DO_TEST_SUITE=
    909 else
    910   DO_TEST_SUITE=check
    911 fi
    912 AC_SUBST(DO_TEST_SUITE)
    913 dnl
    914 dnl Only include the intl include files if we're building with them
    915 dnl 
    916 INTL_FLAGS=
    917 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
    918 	INTL_FLAGS='-I$(top_builddir)/intl -I$(top_srcdir)/intl'
    919 fi
    920 AC_SUBST(INTL_FLAGS)
    921 dnl
    922 dnl Build CFLAGS
    923 dnl
    924 if test $cross_compiling = no; then
    925    BUILD_CFLAGS="$CFLAGS"
    926    BUILD_LDFLAGS="$LDFLAGS"
    927 else
    928    BUILD_CFLAGS=
    929    BUILD_LDFLAGS=
    930 fi
    931 AC_SUBST(BUILD_CFLAGS)
    932 AC_SUBST(BUILD_LDFLAGS)
    933 dnl
    934 dnl Make our output files, being sure that we create the some miscellaneous 
    935 dnl directories
    936 dnl
    937 test -d lib || mkdir lib
    938 test -d include || mkdir include
    939 test -d include/linux || mkdir include/linux
    940 test -d include/asm || mkdir include/asm
    941 for i in MCONFIG Makefile e2fsprogs.spec \
    942 	util/Makefile util/subst.conf util/gen-tarball \
    943 	lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
    944 	lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
    945 	lib/uuid/Makefile lib/uuid/uuid_types.h \
    946 	lib/blkid/Makefile lib/blkid/blkid_types.h \
    947 	lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
    948 	lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
    949 	misc/Makefile ext2ed/Makefile e2fsck/Makefile \
    950 	debugfs/Makefile tests/Makefile tests/progs/Makefile \
    951 	resize/Makefile doc/Makefile intl/Makefile po/Makefile.in ; do
    952 	if test -d `dirname ${srcdir}/$i` ; then
    953 		outlist="$outlist $i"
    954 	fi
    955 done
    956 AC_OUTPUT($outlist)
    957 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi
    958 
    959