#!/bin/sh # # The shell script for bc to automatically create the config.h file. # # Syntax: configure [ include-dir [ lib-file [ c-compiler ]]] # # Set some standard things. # INCLUDE=${1-/usr/include} LIBFILE=${2-libmath.b} CC=${3-cc} # # Initialize the exit status # EXIT=0 # # Remove the current copy and make sure there is at least an empty file # rm -f config.h echo "/* config.h */" > config.h # # Check for the argument passing mechanism. # if test -r $INCLUDE/varargs.h then echo "Using varargs.h for variable arguments (non ansi compilers). " echo "#ifndef __STDC__" >> config.h echo "#define VARARGS" >> config.h echo "#endif" >> config.h else if test -r $INCLUDE/stdarg.h then echo "Using stdarg.h for variable arguments. " else echo "Unknown variable argument mechanism. " EXIT=1 fi fi # # Limits file? # if test -r $INCLUDE/limits.h then echo "You have a limits.h file." else echo "You need to check the limits in const.h." echo "#define NO_LIMITS" >> config.h fi # # unistd? # if test -r $INCLUDE/unistd.h then echo "You have a unistd.h file." else echo "#define NO_UNISTD" >> config.h fi # # Stdlib? # if test -r $INCLUDE/stdlib.h then echo "You have a stdlib.h file." else echo "#define NO_STDLIB" >> config.h fi # # Strinog? # if test -r $INCLUDE/string.h then echo "You have a string.h file." else echo "#define STRINGS_H" >> config.h fi # # At least one BSD system did not define "extern int errno;" in errno.h # if grep -s extern $INCLUDE/errno.h then true else echo "extern int errno;" >> config.h fi # # On MINIX pc systems we want to define some extra files. # if test -r $INCLUDE/minix then # We must be on a minix system. Check for the machine type. if test `machine` = IBM_PC then echo "#define SMALL_BUF" >> config.h echo "#define BC_MATH_FILE \"$LIBFILE\"" >> config.h echo "#define SHORTNAMES" >> config.h else echo "Your Minix is not on a PC. The bc library will be loaded in the" echo "executable file. You will not have to install a library file." fi else # Test to see if the compiler will compile long strings... echo "char libmath[] =" > JUNK.c echo "#include \"math.h\"" >> JUNK.c echo ";" >> JUNK.c if $CC -c JUNK.c >/dev/null 2>&1 then echo "The bc library will be loaded in the executable file. You will" echo "not have to install a library file." else echo "Your C compiler does not like long strings. You will have to" echo "load the math library from a file." echo "#define BC_MATH_FILE \"$LIBFILE\"" >> config.h fi rm -f JUNK.c JUNK.o fi # # exit # exit $EXIT