#!/bin/sh # # set temporary file name if test ! -z "$TMPDIR" ; then TMPDIR1="${TMPDIR}" elif test ! -z "$TEMPDIR" ; then TMPDIR1="${TEMPDIR}" else TMPDIR1="/tmp" fi cc=gcc for opt do optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)') case "$opt" in --help|-h) show_help=yes ;; --prefix=*) prefix="$optarg" ;; --includedir=*) includedir="$optarg" ;; --libdir=*) libdir="$optarg" ;; --mandir=*) mandir="$optarg" ;; *) echo "ERROR: unkown option $opt" echo "Try '$0 --help' for more information" exit 1 ;; esac done if test -z "$prefix"; then prefix=/usr fi if test -z "$includedir"; then includedir="$prefix/include" fi if test -z "$libdir"; then libdir="$prefix/lib" fi if test -z "$mandir"; then mandir="$prefix/man" fi if test "$show_help" = "yes"; then cat < trap "rm -f $TMPC $TMPC2 $TMPO $TMPE" EXIT INT QUIT TERM rm -rf config.log config_host_mak="config-host.mak" config_host_h="config-host.h" rm -rf $config_host_mak rm -rf $config_host_h fatal() { echo $@ echo "Configure failed, check config.log and/or the above output" rm -rf $config_host_mak rm -rf $config_host_h exit 1 } # Print result for each configuration test print_config() { printf "%-30s%s\n" "$1" "$2" } # Default CFLAGS CFLAGS="-D_GNU_SOURCE -include config-host.h" BUILD_CFLAGS="" # Print configure header at the top of $config_host_h echo "/*" > $config_host_h echo " * Automatically generated by configure - do not modify" >> $config_host_h printf " * Configured with:" >> $config_host_h printf " * '%s'" "$0" "$@" >> $config_host_h echo "" >> $config_host_h echo " */" >> $config_host_h echo "# Automatically generated by configure - do not modify" > $config_host_mak printf "# Configured with:" >> $config_host_mak printf " '%s'" "$0" "$@" >> $config_host_mak echo >> $config_host_mak do_cc() { # Run the compiler, capturing its output to the log. echo $cc "$@" >> config.log $cc "$@" >> config.log 2>&1 || return $? # Test passed. If this is an --enable-werror build, rerun # the test with -Werror and bail out if it fails. This # makes warning-generating-errors in configure test code # obvious to developers. if test "$werror" != "yes"; then return 0 fi # Don't bother rerunning the compile if we were already using -Werror case "$*" in *-Werror*) return 0 ;; esac echo $cc -Werror "$@" >> config.log $cc -Werror "$@" >> config.log 2>&1 && return $? echo "ERROR: configure test passed without -Werror but failed with -Werror." echo "This is probably a bug in the configure script. The failing command" echo "will be at the bottom of config.log." fatal "You can run configure with --disable-werror to bypass this check." } compile_object() { do_cc $CFLAGS -c -o $TMPO $TMPC } compile_prog() { local_cflags="$1" local_ldflags="$2 $LIBS" echo "Compiling test case $3" >> config.log do_cc $CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags } has() { type "$1" >/dev/null 2>&1 } output_mak() { echo "$1=$2" >> $config_host_mak } output_sym() { output_mak "$1" "y" echo "#define $1" >> $config_host_h } print_and_output_mak() { print_config "$1" "$2" output_mak "$1" "$2" } print_and_output_mak "prefix" "$prefix" print_and_output_mak "includedir" "$includedir" print_and_output_mak "libdir" "$libdir" print_and_output_mak "mandir" "$mandir" ########################################## # check for __kernel_rwf_t __kernel_rwf_t="no" cat > $TMPC << EOF #include int main(int argc, char **argv) { __kernel_rwf_t x; x = 0; return x; } EOF if compile_prog "" "" "__kernel_rwf_t"; then __kernel_rwf_t="yes" fi print_config "__kernel_rwf_t" "$__kernel_rwf_t" ########################################## # check for __kernel_timespec __kernel_timespec="no" cat > $TMPC << EOF #include int main(int argc, char **argv) { struct __kernel_timespec ts; ts.tv_sec = 0; ts.tv_nsec = 1; return 0; } EOF if compile_prog "" "" "__kernel_timespec"; then __kernel_timespec="yes" fi print_config "__kernel_timespec" "$__kernel_timespec" ############################################################################# if test "$__kernel_rwf_t" = "yes"; then output_sym "CONFIG_HAVE_KERNEL_RWF_T" fi if test "$__kernel_timespec" = "yes"; then output_sym "CONFIG_HAVE_KERNEL_TIMESPEC" fi