darling-libkqueue/configure
mheily 20bcd7a849 * Install libkqueue.la and libkqueue.a in LIBDIR
* New test target "test-libtool" builds the test program using libtool.



git-svn-id: svn://svn.code.sf.net/p/libkqueue/code/trunk@100 fb4e3144-bc1c-4b72-a658-5bcd248dd7f7
2009-11-18 01:22:29 +00:00

205 lines
4.3 KiB
Bash
Executable File

#!/bin/sh
c_exports="program version target cflags"
make_exports="program version target \
prefix libdir includedir mandir \
cflags ldflags ldadd libdepends \
sources mans headers extra_dist subdirs \
install"
required_headers=
optional_headers=
pre_configure_hook() {
return
}
post_configure_hook() {
return
}
. ./config.inc
export_to_make() {
for id in $*
do
uc_id=`echo $id | tr 'a-z' 'A-Z'`;
eval "echo \"$uc_id=\"\$$id\"\" >> config.mk"
done
}
export_to_c() {
for id in $*
do
uc_id=`echo $id | tr 'a-z' 'A-Z'`;
eval "echo \"#define $uc_id \\\"\$$id\\\"\" >> config.h"
done
}
finalize() {
eval "if [ \"\$$1\" = \"\" ] ; then $1=\"$2\" ; fi"
}
process_argv() {
for arg in $*
do
id=`echo "$arg" | sed 's/=.*//; s/^--//;'`
val=`echo "$arg" | sed 's/^.*=//'`
if [ "$val" = "" ] ; then val=1 ; fi
eval "$id=\"$val\""
done
}
check_header() {
sym=`echo "have_$1" | sed 's,[./],_,g'`
uc_sym=`echo "$sym" | tr a-z A-Z`
path=$1
printf "checking for $path.. "
if [ -f "/usr/include/$path" ] ; then
echo "yes"
echo "#define $uc_sym" >> config.h
eval "$sym=yes"
return 0
else
echo "no"
echo "#undef $uc_sym" >> config.h
eval "$sym=no"
return 1
fi
}
check_headers() {
for header in $*
do
check_header "$header"
done
}
check_symbol() {
header=$1
symbol=$2
uc_symbol=`echo "HAVE_$symbol" | tr a-z A-Z | sed 's,[./],_,g'`
lc_symbol=`echo "have_$symbol" | tr A-Z a-z | sed 's,[./],_,g'`
if [ -f "$header" ] ; then
path="$header"
elif [ -f "/usr/include/$header" ] ; then
path="/usr/include/$header"
else
echo "*** ERROR: Cannot find <$header>"
exit 1
fi
printf "checking $header for $symbol.. "
if [ "`grep $symbol $path`" != "" ] ; then
eval "$lc_symbol=yes"
echo "#define $uc_symbol 1" >> config.h
echo "yes"
return 0
else
eval "$lc_symbol=no"
echo "no"
echo "#undef $uc_symbol" >> config.h
return 1
fi
}
check_install() {
printf "checking for a BSD-compatible install.. "
if [ "`uname -s`" = "SunOS" ] ; then
default_install=/usr/ucb/install
else
default_install=/usr/bin/install
fi
finalize install "$default_install"
echo "$install"
}
err() {
echo "*** ERROR *** $*"
exit 1
}
subst_vars() {
outfile=$1
if [ ! -f "${outfile}.in" ] ; then
return
fi
echo "Creating $outfile"
rm -f $outfile
sed -e "
s,@@PROGRAM@@,$program,g;
s,@@VERSION@@,$version,g;
s,@@PREFIX@@,$prefix,g;
s,@@LIBDIR@@,$libdir,g;
s,@@INCLUDEDIR@@,$includedir,g;
s,@@MANDIR@@,$mandir,g;
s,@@LIBDEPENDS@@,$libdepends,g;
s,@@PKG_SUMMARY@@,$pkg_summary,g;
s,@@PKG_DESCRIPTION@@,$pkg_description,g;
s,@@LICENSE@@,$license,g;
s,@@AUTHOR@@,$author,g;
" < ${outfile}.in > $outfile
chmod 400 $outfile
}
#######################################################################
#
# MAIN()
#
#######################################################################
# Initialize the output files
#
for output_file in config.mk $program.pc
do
rm -f $output_file
echo "# AUTOMATICALLY GENERATED -- DO NOT EDIT" > $output_file
done
rm -f config.h
echo "/* AUTOMATICALLY GENERATED -- DO NOT EDIT */" > config.h
process_argv "$*"
finalize program "$program"
finalize version "$version"
finalize target `uname -s | tr A-Z a-z`
finalize prefix "/usr/local"
finalize libdir "${prefix}/lib"
finalize includedir "${prefix}/include"
finalize mandir "${prefix}/share/man"
finalize cflags "$cflags"
finalize libdepends "$libdepends"
finalize ldadd ""
finalize ldflags ""
finalize cc "/usr/bin/cc"
echo "checking operating system type.. $target"
check_install
pre_configure_hook
for header in $required_headers
do
check_header "$header" || err "$header is required, but cannot be found."
done
check_headers $optional_headers
post_configure_hook
subst_vars "$program.pc"
subst_vars "$program.la"
subst_vars "rpm.spec"
echo "Creating config.h"
export_to_c $c_exports
echo "Creating config.mk"
export_to_make "$make_exports"