summaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure326
1 files changed, 198 insertions, 128 deletions
diff --git a/configure b/configure
index 4ac10b046..fd5ab6422 100755
--- a/configure
+++ b/configure
@@ -3,27 +3,35 @@
#
# We need to find out the following things:
#
-# 1. For mount/nfsmount.c: is inet_aton() available?
-# 2. For fdisk/fdisksunlabel.c: is there a <scsi/scsi.h>?
-# For fdisk/fdisk.c: is there a <linux/blkpg.h>?
-# 4. For sys-utils/cytune.c: do we need <linux/tqueue.h>?
-# 5. For sys-utils/kbd_rate.c: does <linux/kd.h> exist?
-# 6. For cfdisk, setterm, more, ul: do we have ncurses? How installed?
-# For more: do we have libtermcap?
-# 7. For chfn, chsh, login, newgrp, passwd: do we need -lcrypt?
-# 8. For sln: does static compilation work?
-# 9. For lib/nls.h: do we have <locale.h>?
-# 10. For lib/nls.h: do we have <libintl.h> and gettext()?
-# 11. For xgettext: does it take the option --foreign-user?
-# 12. For cal.c: do we have <langinfo.h>?
-# 13. For err.c: do we have __progname?
-# 14. For script.c: do we have <pty.h> and openpty()?
-# 15. For lib/widechar.h: do we have wide character support?
-# 16. For clock/kd.c: do we have nanosleep()?
-# 17. For mkswap: do we have personality()?
-# 18. For pivot_root.c: does <linux/unistd.h> define __NR_pivot_root?
-# 19. For hwclock.c: does struct tm have a field tm_gmtoff?
-# 20. For nfsmount: does the output of rpcgen compile?
+# Existence of header files:
+# H1. For fdisksunlabel.c: is there a <scsi/scsi.h>?
+# H2. For fdisk.c: is there a <linux/blkpg.h>?
+# H3. For kbd_rate.c: does <linux/kd.h> exist?
+# H4. For nls.h: do we have <locale.h>?
+# H5. For cal.c: do we have <langinfo.h>?
+# H6. For mkswap.c: do we have <asm/page.h>?
+# H7. For nfsmount.h (nfsmount_xdr.c: int32_t): do we have <asm/types.h>?
+#
+# Existence of functions:
+# F1. For nfsmount.c: is inet_aton() available?
+# F2. For mkswap.c: is fsync() available?
+# F3. For agetty.c: is getdomainname() available?
+# F4. For hwclock/kd.c: do we have nanosleep()?
+# F5. For mkswap.c: do we have personality()?
+#
+# 1. For sys-utils/cytune.c: do we need <linux/tqueue.h>?
+# 2. For cfdisk, setterm, more, ul: do we have ncurses? How installed?
+# 3. For more: do we have libtermcap?
+# 4. For chfn, chsh, login, newgrp, passwd: do we need -lcrypt?
+# 5. For sln: does static compilation work?
+# 6. For lib/nls.h: do we have <libintl.h> and gettext()?
+# 7. For xgettext: does it take the option --foreign-user?
+# 8. For err.c: do we have __progname?
+# 9. For script.c: do we have <pty.h> and openpty()?
+# 10. For lib/widechar.h: do we have wide character support?
+# 11. For pivot_root.c: does <linux/unistd.h> define __NR_pivot_root?
+# 12. For hwclock.c: does struct tm have a field tm_gmtoff?
+# 13. For nfsmount: does the output of rpcgen compile?
rm -f make_include defines.h
@@ -36,24 +44,13 @@ echo '#define UTIL_LINUX_VERSION "'$VERSION'"' > defines.h
echo '#define util_linux_version "util-linux-'$VERSION'"' >> defines.h
echo >> defines.h
-if test -z "$CC"
-then
- if test "$RANDOM" = "$RANDOM"; then
- # Plain old Bourne shell.
- echo checking for gcc
- test -z "$CC" -a -n "`gcc 2>&1`" && CC="gcc -O"
- else
- # ksh, bash or zsh. ksh and zsh write "command not found" to stderr.
- echo checking for gcc
- test -z "$CC" && type gcc && CC="gcc -O"
- fi
-else
- echo "Using CC=\"$CC\""
- echo
-fi
-
CC=${CC-cc}
CFLAGS=${CFLAGS-"-O"}
+LDFLAGS=${LDFLAGS-"-s"}
+echo CC=$CC >> make_include
+echo CFLAGS=$CFLAGS >> make_include
+echo LDFLAGS=$LDFLAGS >> make_include
+
DEFS=
LIBS=
compile='$CC $CFLAGS $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1'
@@ -63,8 +60,80 @@ export COMPILE
rm -f conftest.c conftest
+
+#
+# Find out about the existence of header files
+#
+
#
-# 1. For mount/nfsmount.c: is inet_aton() available?
+# H1. For fdisk/fdisksunlabel.c: is <scsi/scsi.h> available?
+# Some kernels have <scsi/scsi.h> that uses u_char
+# But maybe there is already a typedef. Let us use a #define
+#
+echo "
+#define u_char unsigned char
+#include <scsi/scsi.h>
+#undef u_char
+main(){ exit(0); }
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+ echo "#define HAVE_scsi_h" >> defines.h
+ echo "You have <scsi/scsi.h>"
+else
+ echo "You don't have <scsi/scsi.h>"
+fi
+rm -f conftest conftest.c
+
+#
+# H2. For fdisk/fdisk.c: is <linux/blkpg.h> available?
+#
+if ./testincl "linux/blkpg.h"; then
+ echo "#define HAVE_blkpg_h" >> defines.h
+fi
+
+#
+# H3. Does <linux/kd.h> exist?
+#
+if ./testincl "linux/kd.h"; then
+ echo "#define HAVE_kd_h" >> defines.h
+fi
+
+#
+# H4. For lib/nls.h: do we have <locale.h>?
+#
+if ./testincl "locale.h"; then
+ echo "#define HAVE_locale_h" >> defines.h
+fi
+
+#
+# H5. For cal.c: do we have <langinfo.h>?
+#
+if ./testincl "langinfo.h"; then
+ echo "#define HAVE_langinfo_h" >> defines.h
+fi
+
+#
+# H6. For mkswap.c: do we have <asm/page.h>?
+#
+if ./testincl "asm/page.h"; then
+ echo "#define HAVE_asm_page_h" >> defines.h
+fi
+
+#
+# H7. For nfsmount.h: do we have <asm/types.h>?
+#
+if ./testincl "asm/types.h"; then
+ echo "#define HAVE_asm_types_h" >> defines.h
+fi
+
+
+#
+# Find out about the existence of functions
+#
+
+#
+# F1. For mount/nfsmount.c: is inet_aton() available?
#
echo "
#include <sys/socket.h>
@@ -86,34 +155,88 @@ fi
rm -f conftest conftest.c
#
-# 2. For fdisk/fdisksunlabel.c: is <scsi/scsi.h> available?
-# Some kernels have <scsi/scsi.h> that uses u_char
-# But maybe there is already a typedef. Let us use a #define
+# F2. For mkswap.c: is fsync() available?
#
echo "
-#define u_char unsigned char
-#include <scsi/scsi.h>
-#undef u_char
-main(){ exit(0); }
+#include <unistd.h>
+main(int a, char **v){
+ if (a == -1) /* false */
+ fsync(0);
+ exit(0);
+}
" > conftest.c
eval $compile
if test -s conftest && ./conftest 2>/dev/null; then
- echo "#define HAVE_scsi_h" >> defines.h
- echo "You have <scsi/scsi.h>"
+ echo "#define HAVE_fsync" >> defines.h
+ echo "You have fsync()"
else
- echo "You don't have <scsi/scsi.h>"
+ echo "You don't have fsync()"
fi
rm -f conftest conftest.c
#
-# 2A. For fdisk/fdisk.c: is <linux/blkpg.h> available?
+# F3. For agetty.c: is getdomainname() available?
#
-if ./testincl "linux/blkpg.h"; then
- echo "#define HAVE_blkpg_h" >> defines.h
+echo "
+#include <unistd.h>
+main(int a, char **v){
+ char buf[1];
+ if (a == -1) /* false */
+ getdomainname(buf, sizeof buf);
+ exit(0);
+}
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+ echo "#define HAVE_getdomainname" >> defines.h
+ echo "You have getdomainname()"
+else
+ echo "You don't have getdomainname()"
fi
+rm -f conftest conftest.c
#
-# 4. cytune.c may need struct tq_struct
+# F4. For hwclock/kd.c: do we have nanosleep?
+#
+echo "
+#include <time.h>
+int main () {
+ struct timespec sleep = { 0, 1 };
+ nanosleep( &sleep, NULL );
+ exit(0);
+}
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+ echo "#define HAVE_nanosleep" >> defines.h
+ echo "You have nanosleep()"
+else
+ echo "You don't have nanosleep()"
+fi
+rm -f conftest conftest.c
+
+#
+# F5. For mkswap.c: do we have personality()?
+#
+echo "
+int main () {
+ extern int personality(unsigned long);
+ personality(0);
+ exit(0);
+}
+" > conftest.c
+eval $compile
+if test -s conftest && ./conftest 2>/dev/null; then
+ echo "#define HAVE_personality" >> defines.h
+ echo "You have personality()"
+else
+ echo "You don't have personality()"
+fi
+rm -f conftest conftest.c
+
+
+#
+# 1. cytune.c may need struct tq_struct
#
echo "
#include <sys/types.h>
@@ -130,14 +253,7 @@ fi
rm -f conftest conftest.c
#
-# 5. Does <linux/kd.h> exist?
-#
-if ./testincl "linux/kd.h"; then
- echo "#define HAVE_kd_h" >> defines.h
-fi
-
-#
-# 6. How is [n]curses installed?
+# 2. How is [n]curses installed?
#
test_curses_h=0
have_ncurses=1
@@ -214,7 +330,7 @@ fi
rm -f conftest conftest.c
#
-# 7. Do we need -lcrypt?
+# 4. Do we need -lcrypt?
#
echo '
#define _XOPEN_SOURCE
@@ -232,7 +348,7 @@ fi
rm -f conftest conftest.c
#
-# 8. Does static compilation work?
+# 5. Does static compilation work?
#
echo "
main(){ return 0; }
@@ -244,17 +360,10 @@ else
echo "CAN_DO_STATIC=no" >> make_include
echo "Strange... Static compilation fails here."
fi
+rm -f conftest.c conftest
#
-# 9. For lib/nls.h: do we have <locale.h>?
-#
-if ./testincl "locale.h"; then
- echo "#define HAVE_locale_h" >> defines.h
-fi
-
-
-#
-# 10. For lib/nls.h: do we have <libintl.h> and gettext() ?
+# 6. For lib/nls.h: do we have <libintl.h> and gettext() ?
#
echo '
#include <libintl.h>
@@ -280,7 +389,7 @@ rm -f conftest conftest.c
#
-# 11. Does xgettext exist and take the option --foreign-user?
+# 7. Does xgettext exist and take the option --foreign-user?
#
if (test $ENABLE_NLS = yes && type xgettext > /dev/null 2>&1); then
msg=`xgettext --foreign-user 2>&1 | grep unrecognized`
@@ -294,16 +403,9 @@ else
echo "HAVE_XGETTEXT=no" >> make_include
fi
-#
-# 12. For cal.c: do we have <langinfo.h>?
-#
-if ./testincl "langinfo.h"; then
- echo "#define HAVE_langinfo_h" >> defines.h
-fi
-
#
-# 13. For err.c: do we have __progname?
+# 8. For err.c: do we have __progname?
# [make sure gcc -O does not optimize the access away]
#
echo "
@@ -321,7 +423,7 @@ fi
rm -f conftest conftest.c
#
-# 14. For script.c: do we have <pty.h> and openpty()?
+# 9. For script.c: do we have <pty.h> and openpty()?
#
echo "
#include <pty.h>
@@ -340,7 +442,7 @@ fi
rm -f conftest conftest.c
#
-# 15. For lib/widechar.h: do we have wide character support?
+# 10. For lib/widechar.h: do we have wide character support?
# [Do we have the headers <wchar.h>, <wctype.h>, the types wchar_t, wint_t
# and the fgetwc, fputwc, WEOF functions/macros?]
#
@@ -368,46 +470,7 @@ fi
rm -f conftest conftest.c
#
-# 16. For clock/kd.c: do we have nanosleep?
-#
-echo "
-#include <time.h>
-int main () {
- struct timespec sleep = { 0, 1 };
- nanosleep( &sleep, NULL );
- exit(0);
-}
-" > conftest.c
-eval $compile
-if test -s conftest && ./conftest 2>/dev/null; then
- echo "#define HAVE_nanosleep" >> defines.h
- echo "You have nanosleep()"
-else
- echo "You don't have nanosleep()"
-fi
-rm -f conftest conftest.c
-
-#
-# 17. For mkswap.c: do we have personality()?
-#
-echo "
-int main () {
- extern int personality(unsigned long);
- personality(0);
- exit(0);
-}
-" > conftest.c
-eval $compile
-if test -s conftest && ./conftest 2>/dev/null; then
- echo "#define HAVE_personality" >> defines.h
- echo "You have personality()"
-else
- echo "You don't have personality()"
-fi
-rm -f conftest conftest.c
-
-#
-# 18. For pivot_root.c: does <linux/unistd.h> define __NR_pivot_root?
+# 11. For pivot_root.c: does <linux/unistd.h> define __NR_pivot_root?
#
echo "
#include <linux/unistd.h>
@@ -426,7 +489,7 @@ fi
rm -f conftest conftest.c
#
-# 19. For hwclock.c: does struct tm have a field tm_gmtoff?
+# 12. For hwclock.c: does struct tm have a field tm_gmtoff?
#
echo "
#include <time.h>
@@ -449,9 +512,15 @@ fi
rm -f conftest conftest.c
#
-# 20. For nfsmount: does the output of rpcgen compile?
+# 13. For nfsmount: does the output of rpcgen compile?
+#
+# On some systems the output of rpcgen compiles with warnings
+# Here we conclude "Your rpcgen output does not compile"
+# and use pregenerated files. If one wishes to use rpcgen anyway,
+# just add the line "HAVE_GOOD_RPC=yes" to make_include.
#
rm -f conftest conftestx.c conftestl.c conftest.h conftest.x
+rm -f conftestx.o conftestl.o
echo "
#ifdef RPC_CLNT
%#include <string.h> /* for memset() */
@@ -476,10 +545,10 @@ program MOUNTPROG {
} = 2;
} = 100005;
" > conftest.x
-if rpcgen -h -o conftest.h conftest.x && \
- rpcgen -c -o conftestx.c conftest.x && \
- rpcgen -l -o conftestl.c conftest.x && \
- cc -c conftestx.c 2> conferrs && cc -c conftestl.c 2>> conferrs && \
+if rpcgen -h -o conftest.h conftest.x 2> conferrs && \
+ rpcgen -c -o conftestx.c conftest.x 2>> conferrs && \
+ rpcgen -l -o conftestl.c conftest.x 2>> conferrs && \
+ cc -c conftestx.c 2>> conferrs && cc -c conftestl.c 2>> conferrs && \
test ! -s conferrs
then
echo "HAVE_GOOD_RPC=yes" >> make_include
@@ -488,3 +557,4 @@ else
echo "Your rpcgen output does not compile"
fi
rm -f conftest conftestx.c conftestl.c conftest.h conftest.x conferrs
+rm -f conftestx.o conftestl.o