750 lines
18 KiB
Bash
Executable File
750 lines
18 KiB
Bash
Executable File
#!/bin/sh
|
|
# Configure script for util-linux - aeb, 990205
|
|
#
|
|
# We need to find out the following things:
|
|
#
|
|
# Version of gcc
|
|
#
|
|
# 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 <sys/user.h> or <asm/page.h>?
|
|
# H6a For mkswap.c: do we have <uuid/uuid.h>?
|
|
# H7. For nfsmount.c: do we have <rpcsvc/nfs_prot.h>?
|
|
# H8. For nfsmount.h (nfsmount_xdr.c: int32_t): do we have <asm/types.h>?
|
|
# H9. For raw.c: do we have <linux/raw.h>?
|
|
# H10. For md5.c: do we have <stdint.h>?
|
|
# H11. For cmos.c: do we have <sys/io.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()?
|
|
# F6. For agetty.c: is updwtmp() available?
|
|
# F7. For pg.c: are fseeko() and ftello() available?
|
|
# F8. For fsck.cramfs.c: is lchown() available?
|
|
# F9. For cfdisk.c: is rpmatch() available?
|
|
#
|
|
# 1. Deleted.
|
|
# 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 <sys/syscall.h> define SYS_pivot_root?
|
|
# 12. For hwclock.c: does struct tm have a field tm_gmtoff?
|
|
# 13. For nfsmount: does the output of rpcgen compile?
|
|
# 14. For fsck.cramfs, mkfs.cramfs: do we have libz?
|
|
# 15. For mount, do we have blkid?
|
|
|
|
rm -f make_include defines.h
|
|
|
|
VERSION=`cat VERSION`
|
|
echo
|
|
echo configuring util-linux-$VERSION
|
|
echo
|
|
echo "VERSION=$VERSION" > make_include
|
|
echo '#define UTIL_LINUX_VERSION "'$VERSION'"' > defines.h
|
|
echo '#define util_linux_version "util-linux-'$VERSION'"' >> defines.h
|
|
echo >> defines.h
|
|
|
|
CC=${CC-cc}
|
|
CFLAGS=${CFLAGS-"-O2"}
|
|
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'
|
|
compile_with_warnings='$CC $CFLAGS $DEFS conftest.c -o conftest $LIBS 2>&1'
|
|
static_compile='$CC -static $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1'
|
|
eval COMPILE='"'$compile'"'
|
|
export COMPILE
|
|
|
|
rm -f conftest.c conftest
|
|
|
|
#
|
|
# Old gcc (e.g. 2.5.8 and 2.7.2.3) wants options like -m486, and these
|
|
# are still accepted by 2.95.3 and RedHat's 2.96, but gcc 3.0 says:
|
|
# `-m486' is deprecated. Use `-march=i486' or `-mcpu=i486' instead.
|
|
#
|
|
# Later gcc (e.g. 2.95.3 and 3.3.4) wants options like -mcpu=i486
|
|
# and has never heard about -mtune=i486.
|
|
#
|
|
# I am told that gcc >= 3.4.0 wants options like -mtune=i486
|
|
# -mtune gives the CPU to optimize for
|
|
# -march gives the architecture
|
|
#
|
|
# Various versions of gcc react to unknown options with strings
|
|
# containing "Invalid option" or "invalid option".
|
|
#
|
|
echo "
|
|
int main(){ exit(0); }
|
|
" > conftest.c
|
|
gccout=`$CC $CFLAGS -mtune=i486 conftest.c -o conftest 2>&1 | grep "nvalid"`
|
|
if test -z "$gccout"; then
|
|
echo "HAVE_NEW_GCC=yes" >> make_include
|
|
else
|
|
gccout=`$CC $CFLAGS -m386 conftest.c -o conftest 2>&1 | grep "march="`
|
|
if test -z "$gccout"; then
|
|
echo "HAVE_OLD_GCC=yes" >> make_include
|
|
fi
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# Find out about the existence of header files
|
|
#
|
|
|
|
#
|
|
# 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
|
|
int main(){ exit(0); }
|
|
" > conftest.c
|
|
eval $compile
|
|
if test -s conftest; 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 <sys/user.h> or <asm/page.h>?
|
|
#
|
|
if ./testincl "sys/user.h"; then
|
|
echo "#define HAVE_sys_user_h" >> defines.h
|
|
else if ./testincl "asm/page.h"; then
|
|
echo "#define HAVE_asm_page_h" >> defines.h
|
|
fi; fi
|
|
|
|
#
|
|
# H6a. For mkswap.c: do we have <uuid/uuid.h>?
|
|
#
|
|
if ./testincl "uuid/uuid.h"; then
|
|
echo "#define HAVE_uuid_uuid_h" >> defines.h
|
|
echo "HAVE_UUID=yes" >> make_include
|
|
else
|
|
echo "HAVE_UUID=no" >> make_include
|
|
fi
|
|
|
|
#
|
|
# H7. For nfsmount.c: do we have <rpcsvc/nfs_prot.h>?
|
|
#
|
|
if ./testincl "rpcsvc/nfs_prot.h"; then
|
|
echo "#define HAVE_rpcsvc_nfs_prot_h" >> defines.h
|
|
fi
|
|
|
|
#
|
|
# H8. For nfsmount.h: do we have <asm/types.h>?
|
|
#
|
|
if ./testincl "asm/types.h"; then
|
|
echo "#define HAVE_asm_types_h" >> defines.h
|
|
fi
|
|
|
|
#
|
|
# H9. For raw.c: do we have <linux/raw.h>?
|
|
#
|
|
if ./testincl "linux/raw.h"; then
|
|
echo "HAVE_RAW_H=yes" >> make_include
|
|
fi
|
|
|
|
#
|
|
# H10. For md5.c: do we have <stdint.h>?
|
|
if ./testincl "stdint.h"; then
|
|
echo "#define HAVE_stdint_h" >> defines.h
|
|
fi
|
|
|
|
#
|
|
# H11. For cmos.c: do we have <sys/io.h>?
|
|
if ./testincl "sys/io.h"; then
|
|
echo "#define HAVE_sys_io_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>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
int main(int a, char **v){
|
|
if (a == -1) /* false */
|
|
inet_aton((const char *) 0, (struct in_addr *) 0);
|
|
exit(0);
|
|
}
|
|
" > conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "#define HAVE_inet_aton" >> defines.h
|
|
echo "You have inet_aton()"
|
|
else
|
|
echo "You don't have inet_aton()"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# F2. For mkswap.c: is fsync() available?
|
|
#
|
|
echo "
|
|
#include <unistd.h>
|
|
int main(int a, char **v){
|
|
if (a == -1) /* false */
|
|
fsync(0);
|
|
exit(0);
|
|
}
|
|
" > conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "#define HAVE_fsync" >> defines.h
|
|
echo "You have fsync()"
|
|
else
|
|
echo "You don't have fsync()"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# F3. For agetty.c: is getdomainname() available?
|
|
#
|
|
echo "
|
|
#include <unistd.h>
|
|
int 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; then
|
|
echo "#define HAVE_getdomainname" >> defines.h
|
|
echo "You have getdomainname()"
|
|
else
|
|
echo "You don't have getdomainname()"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# 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; 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; then
|
|
echo "#define HAVE_personality" >> defines.h
|
|
echo "You have personality()"
|
|
else
|
|
echo "You don't have personality()"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# F6. For agetty.c: is updwtmp() available?
|
|
#
|
|
echo '
|
|
#include <string.h>
|
|
#include <utmp.h>
|
|
int main(int a, char **v){
|
|
struct utmp ut;
|
|
memset (&ut, 0, sizeof(ut));
|
|
if (a == -1) /* false */
|
|
updwtmp("/nowhere/wtmp", &ut);
|
|
exit(0);
|
|
}
|
|
' > conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "#define HAVE_updwtmp" >> defines.h
|
|
echo "You have updwtmp()"
|
|
else
|
|
echo "You don't have updwtmp()"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# F7. For pg.c: are fseeko() and ftello() available?
|
|
#
|
|
echo '
|
|
#include <stdio.h>
|
|
int main(int a, char **v){
|
|
fseeko(stdout, 0, 0);
|
|
ftello(stdout);
|
|
exit(0);
|
|
}
|
|
' > conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "#define HAVE_fseeko" >> defines.h
|
|
echo "You have fseeko()"
|
|
else
|
|
echo "You don't have fseeko()"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# F8. For fsck.cramfs.c: is lchown() available?
|
|
#
|
|
echo '
|
|
#include <sys/types.h>
|
|
#include <unistd.h>
|
|
int main(int a, char **v){
|
|
lchown("nowhere",0,0);
|
|
exit(0);
|
|
}
|
|
' > conftest.c
|
|
gccout=`eval $compile_with_warnings | grep "lchown is not implemented"`
|
|
if test -s conftest -a -z "$gccout"; then
|
|
echo "#define HAVE_lchown" >> defines.h
|
|
echo "You have lchown()"
|
|
else
|
|
echo "You don't have lchown()"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# F9. For cfdisk.c: is rpmatch() available?
|
|
#
|
|
echo '
|
|
#define _SVID_SOURCE
|
|
#include <stdlib.h>
|
|
int main(int a, char **v){
|
|
rpmatch("y");
|
|
exit(0);
|
|
}
|
|
' > conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "#define HAVE_rpmatch" >> defines.h
|
|
echo "You have rpmatch()"
|
|
else
|
|
echo "You don't have rpmatch()"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# 2. How is [n]curses installed?
|
|
#
|
|
test_curses_h=0
|
|
have_ncurses=1
|
|
if ! ./testincl "term.h"; then
|
|
have_ncurses=0
|
|
elif ./testincl -q "ncurses/curses.h"; then
|
|
echo "HAVE_NCURSES=yes" >> make_include
|
|
echo "CURSESFLAGS=-I/usr/include/ncurses -DNCH=0" >> make_include
|
|
echo "You have ncurses. Using <ncurses/curses.h>."
|
|
elif ./testincl -q "ncurses.h"; then
|
|
echo "HAVE_NCURSES=yes" >> make_include
|
|
echo "CURSESFLAGS=-DNCH=1" >> make_include
|
|
echo "You have ncurses. Using <ncurses.h>."
|
|
elif [ -f /usr/local/include/ncurses.h ]; then
|
|
echo "HAVE_NCURSES=yes" >> make_include
|
|
echo "CURSESFLAGS=-I/usr/local/include -DNCH=1" >> make_include
|
|
echo "You have ncurses. Using /usr/local/include/ncurses.h."
|
|
elif ./testincl -q "curses.h"; then
|
|
test_curses_h=1
|
|
else
|
|
have_ncurses=0
|
|
fi
|
|
#
|
|
# If we found a curses.h, test whether it is ncurses
|
|
# (It should define __NCURSES_H and NCURSES_VERSION and NCURSES_CONST ...)
|
|
#
|
|
if [ $test_curses_h = 1 ]; then
|
|
echo "
|
|
#include <curses.h>
|
|
int main(){ char *c = NCURSES_VERSION; exit(0); }
|
|
" > conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "HAVE_NCURSES=yes" >> make_include
|
|
echo "CURSESFLAGS=-DNCH=0" >> make_include
|
|
echo "You have ncurses. Using <curses.h>."
|
|
else
|
|
have_ncurses=0
|
|
fi
|
|
rm -f conftest conftest.c
|
|
fi
|
|
|
|
if [ $have_ncurses = 0 ]; then
|
|
echo "HAVE_NCURSES=no" >> make_include
|
|
echo "You don't have ncurses - I will not make ul and setterm."
|
|
else
|
|
echo "LIBCURSES=-lncurses" >> make_include
|
|
echo "#define HAVE_ncurses" >> defines.h
|
|
fi
|
|
|
|
#
|
|
# 3. Some systems have /usr/lib/termcap.so -> /usr/lib/termcap.so.2
|
|
# where however the latter file does not exist. When termcap does
|
|
# not exist, we can try to compile more with curses instead.
|
|
#
|
|
echo '
|
|
#include <termcap.h>
|
|
int main(){ exit(0); tgetnum("li"); }
|
|
' > conftest.c
|
|
LIBS=-ltermcap
|
|
eval $compile
|
|
LIBS=
|
|
if test -s conftest; then
|
|
echo "#define HAVE_termcap" >> defines.h
|
|
echo "HAVE_TERMCAP=yes" >> make_include
|
|
echo "LIBTERMCAP=-ltermcap" >> make_include
|
|
echo "You have termcap"
|
|
else
|
|
echo "HAVE_TERMCAP=no" >> make_include
|
|
if [ $have_ncurses = 0 ]; then
|
|
echo "You don't have termcap - I will not make more."
|
|
else
|
|
echo "You don't have termcap"
|
|
fi
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# 4. Do we need -lcrypt?
|
|
#
|
|
echo '
|
|
#define _XOPEN_SOURCE
|
|
#include <unistd.h>
|
|
int main(){ char *c = crypt("abc","pw"); exit(0); }
|
|
' > conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "NEED_LIBCRYPT=no" >> make_include
|
|
echo "You don't need -lcrypt"
|
|
else
|
|
echo "NEED_LIBCRYPT=yes" >> make_include
|
|
echo "You need -lcrypt"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# 5. Does static compilation work?
|
|
#
|
|
echo "
|
|
int main(){ return 0; }
|
|
" > conftest.c
|
|
eval $static_compile
|
|
if test -s conftest; then
|
|
: OK, nothing special
|
|
else
|
|
echo "CAN_DO_STATIC=no" >> make_include
|
|
echo "Strange... Static compilation fails here."
|
|
fi
|
|
rm -f conftest.c conftest
|
|
|
|
#
|
|
# 6. For lib/nls.h: do we have <libintl.h> and gettext() ?
|
|
#
|
|
echo '
|
|
#include <libintl.h>
|
|
int main(int a, char **v){
|
|
if (a == -1) /* false */
|
|
gettext("There is no gettext man page\n");
|
|
exit(0);
|
|
}
|
|
' > conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo '#define HAVE_libintl_h' >> defines.h
|
|
echo "You have <libintl.h> and gettext()"
|
|
echo '#define MAY_ENABLE_NLS' >> defines.h
|
|
MAY_ENABLE_NLS=yes
|
|
else
|
|
echo "You don't have native language support"
|
|
MAY_ENABLE_NLS=no
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
|
|
#
|
|
# 7. Does xgettext exist and take the option --foreign-user?
|
|
#
|
|
# We use the bash builtin "type" here.
|
|
# I don't see an easy way to avoid it.
|
|
# Many Linux systems do not have "which". Maybe "env" can be used.
|
|
# Writing /usr/bin/xgettext is no good: one may have xgettext elsewhere.
|
|
#
|
|
if (test $MAY_ENABLE_NLS = yes && type xgettext > /dev/null 2>&1); then
|
|
msg=`xgettext --foreign-user 2>&1 | grep unrecognized`
|
|
if test -n "$msg"; then
|
|
echo "FOREIGN = " >> make_include
|
|
else
|
|
echo "FOREIGN = --foreign-user" >> make_include
|
|
fi
|
|
echo "HAVE_XGETTEXT=yes" >> make_include
|
|
else
|
|
echo "HAVE_XGETTEXT=no" >> make_include
|
|
fi
|
|
|
|
|
|
#
|
|
# 8. For err.c: do we have __progname?
|
|
# [make sure gcc -O does not optimize the access away]
|
|
#
|
|
echo "
|
|
#include <stdio.h>
|
|
extern char *__progname;
|
|
int main(){ printf(__progname); exit(0); }
|
|
" > conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "#define HAVE_progname" >> defines.h
|
|
echo "You have __progname"
|
|
else
|
|
echo "You don't have __progname"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# 9. For script.c: do we have <pty.h> and openpty()?
|
|
#
|
|
echo "
|
|
#include <pty.h>
|
|
int main(){ exit(0); openpty(0, 0, 0, 0, 0); }
|
|
" > conftest.c
|
|
LIBS=-lutil
|
|
eval $compile
|
|
LIBS=
|
|
if test -s conftest; then
|
|
echo "HAVE_OPENPTY=yes" >> make_include
|
|
echo "#define HAVE_openpty" >> defines.h
|
|
echo "You have <pty.h> and openpty()"
|
|
else
|
|
echo "You don't have <pty.h> and openpty()"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# 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?]
|
|
#
|
|
echo "
|
|
#include <wchar.h>
|
|
#include <wctype.h>
|
|
#include <stdio.h>
|
|
int main () {
|
|
wchar_t wc;
|
|
wint_t w;
|
|
w = fgetwc(stdin);
|
|
if (w == WEOF) exit(1);
|
|
wc = w;
|
|
fputwc(wc,stdout);
|
|
exit(0);
|
|
}
|
|
" > conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "#define ENABLE_WIDECHAR" >> defines.h
|
|
echo "You have wide character support"
|
|
else
|
|
echo "You don't have wide character support"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# 11. For pivot_root.c: does <sys/syscall.h> define SYS_pivot_root?
|
|
#
|
|
echo "
|
|
#include <sys/syscall.h>
|
|
#include <unistd.h>
|
|
int main(void)
|
|
{
|
|
return SYS_pivot_root;
|
|
}
|
|
" >conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "HAVE_PIVOT_ROOT=yes" >> make_include
|
|
echo "You have SYS_pivot_root"
|
|
else
|
|
echo "You don't have SYS_pivot_root"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# 12. For hwclock.c: does struct tm have a field tm_gmtoff?
|
|
#
|
|
echo "
|
|
#include <time.h>
|
|
#include <unistd.h>
|
|
int main(int a, char **v)
|
|
{
|
|
struct tm *tm = localtime(0);
|
|
if (a == -1) /* false */
|
|
sleep(tm->tm_gmtoff);
|
|
exit(0);
|
|
}
|
|
" >conftest.c
|
|
eval $compile
|
|
if test -s conftest; then
|
|
echo "#define HAVE_tm_gmtoff" >> defines.h
|
|
echo "You have a tm_gmtoff field in struct tm"
|
|
else
|
|
echo "You don't have a tm_gmtoff field in struct tm"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# 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() */
|
|
#endif
|
|
%#include <asm/types.h>
|
|
typedef opaque fhandle[1];
|
|
union fhstatus switch (unsigned fhs_status) {
|
|
case 0:
|
|
fhandle fhs_fhandle;
|
|
default:
|
|
void;
|
|
};
|
|
typedef string dirpath<1024>;
|
|
struct ppathcnf {
|
|
short pc_mask[2];
|
|
};
|
|
|
|
program MOUNTPROG {
|
|
version MOUNTVERS {
|
|
fhstatus
|
|
MOUNTPROC_MNT(dirpath) = 1;
|
|
} = 2;
|
|
} = 100005;
|
|
" > conftest.x
|
|
if rpcgen -h -o conftest.h conftest.x 2> conferrs > /dev/null && \
|
|
rpcgen -c -o conftestx.c conftest.x 2>> conferrs > /dev/null && \
|
|
rpcgen -l -o conftestl.c conftest.x 2>> conferrs > /dev/null && \
|
|
$CC $CFLAGS -c conftestx.c 2>> conferrs > /dev/null && \
|
|
$CC $CFLAGS -c conftestl.c 2>> conferrs > /dev/null && \
|
|
test ! -s conferrs
|
|
then
|
|
echo "HAVE_GOOD_RPC=yes" >> make_include
|
|
echo "Your rpcgen seems to work"
|
|
else
|
|
echo "Your rpcgen output does not compile - using pregenerated code"
|
|
fi
|
|
rm -f conftest conftestx.c conftestl.c conftest.h conftest.x conferrs
|
|
rm -f conftestx.o conftestl.o
|
|
|
|
#
|
|
# 14. For fsck.cramfs, mkfs.cramfs: do we have libz?
|
|
#
|
|
echo '
|
|
#include <zlib.h>
|
|
int main(){ exit(0); crc32(0, 0, 0); }
|
|
' > conftest.c
|
|
LIBS=-lz
|
|
eval $compile
|
|
LIBS=
|
|
if test -s conftest; then
|
|
echo "HAVE_ZLIB=yes" >> make_include
|
|
echo "You have zlib"
|
|
else
|
|
echo "HAVE_ZLIB=no" >> make_include
|
|
echo "You don't have zlib"
|
|
fi
|
|
rm -f conftest conftest.c
|
|
|
|
#
|
|
# 15. For mount, do we have blkid?
|
|
#
|
|
echo '
|
|
#include <blkid/blkid.h>
|
|
int main(){ exit(0); blkid_known_fstype("ext2"); }
|
|
' > conftest.c
|
|
LIBS="-lblkid -luuid"
|
|
eval $compile
|
|
LIBS=
|
|
if test -s conftest; then
|
|
echo "HAVE_BLKID=yes" >> make_include
|
|
echo "You have blkid"
|
|
else
|
|
echo "HAVE_BLKID=no" >> make_include
|
|
echo "You don't have blkid"
|
|
fi
|
|
rm -f conftest conftest.c
|