summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure1831
1 files changed, 1831 insertions, 0 deletions
diff --git a/configure b/configure
new file mode 100755
index 00000000..5a62b626
--- /dev/null
+++ b/configure
@@ -0,0 +1,1831 @@
+#!/bin/sh
+# $Header: /cvs/maptools/cvsroot/libtiff/configure,v 1.1 1999-07-27 21:50:26 mike Exp $
+#
+# Tag Image File Format (TIFF) Software
+#
+# Copyright (c) 1988-1997 Sam Leffler
+# Copyright (c) 1991-1997 Silicon Graphics, Inc.
+#
+# Permission to use, copy, modify, distribute, and sell this software and
+# its documentation for any purpose is hereby granted without fee, provided
+# that (i) the above copyright notices and this permission notice appear in
+# all copies of the software and related documentation, and (ii) the names of
+# Sam Leffler and Silicon Graphics may not be used in any advertising or
+# publicity relating to the software without the specific, prior written
+# permission of Sam Leffler and Silicon Graphics.
+#
+# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+#
+# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
+# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+# OF THIS SOFTWARE.
+#
+
+# Configuration script for the TIFF Software
+
+#
+# Shell script to setup machine-dependent files in
+# preparation for building TIFF source.
+#
+
+POSIXLY_CORRECT=1; export POSIXLY_CORRECT # disable GNU extensions
+
+QUIET=no # suppress messages to tty
+NONINTERACTIVE=no # control prompting of config params
+SITE= # dir where config.site is located
+TARGET= # target system identity
+SRCDIR= # dir where source is located
+
+#
+# Setup general configuration parameters.
+#
+DIR_BIN=/usr/local/bin # destination for applications
+DIR_LIB=/usr/local/lib # destination for library
+DIR_INC=/usr/local/include # destination for include files
+DIR_HTML=/var/httpd/htdocs/tiff # destination for HTML files
+DIRS_LIBINC= # dirs to search for ancillary includes
+DIR_JPEGLIB= # dir for IJG -ljpeg
+DIR_GZLIB= # dir for zlib -lgz
+DSO=auto # auto-enable DSO support
+LIBCOPTS= # library-specific C-compiler options
+JPEG=no # configure JPEG support
+ZIP=no # configure ZIP/Deflate support
+PORT=auto # enable portability emulations
+HTML=no # install HTML documentation
+LIBGL=auto # auto-enable build of SGI -lgl apps
+LIBIMAGE=auto # auto-enable build of SGI -limage apps
+MACHDEPLIBS=-lm # machine-dependent libraries for apps
+: ${CC=} # name of C compiler to use
+: ${CCOMPILER=} # full pathname of C compiler
+: ${ENVOPTS=} # CC opts for ANSI C compilation
+: ${MAKE=make} # make to use
+
+# screws up the test of `-f -'
+: ${MAKEFLAGS=} # unset MAKEFLAGS
+RM="rm -f"
+
+#
+# Error diagnostics that should go to the terminal are
+# done with this interface (or cat).
+#
+bitch()
+{
+ echo "configure: $@" 1>&2
+}
+
+#
+# This is the preferred interface for
+# configure to terminate abnormally.
+#
+boom()
+{
+ bitch ""
+ bitch "Unrecoverable error! Once you've corrected the problem rerun this script."
+ kill -1 $$ # use kill so trap handler is called
+}
+
+usage()
+{
+ cat<<'EOF'
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+ --help print this message
+ --quiet do not print `Using ...' messages
+ --verbose opposite of --quiet
+ --noninteractive don't ask any questions
+ --version print the version of autoconf that created configure
+ --target=TARGET configure for TARGET [TARGET=HOST]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --with-PARAM[=ARG] set configuration PARAM [ARG=yes]
+EOF
+}
+
+#
+# Crack command line arguments. We purposely
+# use syntax and options that are compatible
+# with GNU autoconf.
+#
+ac_prev=
+for ac_option
+do
+ if [ -n "$ac_prev" ]; then # assign the argument to previous option
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+ case "$ac_option" in # collect optional argument
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'`;;
+ *) ac_optarg=;;
+ esac
+ case "$ac_option" in
+ -with-*|--with-*)
+ ac_with=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if [ -n "`echo $ac_with| sed 's/[-_a-zA-Z0-9]//g'`" ]; then
+ bitch "configure: $ac_with: invalid parameter name."
+ kill -1 $$
+ fi
+ ac_with=`echo $ac_with| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes;;
+ esac
+ eval "${ac_with}='$ac_optarg'"
+ ;;
+ -quiet|--quiet) QUIET=yes;;
+ -verbose|--verbose) QUIET=no;;
+ -noninteractive|--noninteractive) NONINTERACTIVE=yes;;
+ -site|--site) ac_prev=SITE;;
+ -site=*|--site=*) SITE="$ac_optarg";;
+ -srcdir|--srcdir) ac_prev=SRCDIR;;
+ -srcdir=*|--srcdir=*) SRCDIR="$ac_optarg";;
+ -target|--target) ac_prev=TARGET;;
+ -target=*|--target=*) TARGET="$ac_optarg" ;;
+ -version|--version)
+ echo "This is TIFF configure $Revision: 1.1 $"
+ exit 0
+ ;;
+ -help|--help) usage; exit 0;;
+ -*)
+ bitch "configure: $ac_option: invalid option; use -help for usage."
+ kill -1 $$
+ ;;
+ *)
+ if [ x"$TARGET" != x ]; then
+ bitch "configure: Can only configure for one target at a time."
+ kill -1 $$
+ fi
+ TARGET="$ac_option"
+ ;;
+ esac
+done
+
+if [ -n "$ac_prev" ]; then
+ bitch "configure: missing argument to --`echo $ac_prev | sed 's/_/-/g'`"
+ kill -1 $$
+fi
+
+#
+# Locate source directory by looking for the VERSION file.
+# The directory must either be specified through the
+# environment or be located in the current directory or a
+# parent of the current directory.
+#
+test "$SRCDIR" || {
+ configure=$0
+ # NB: don't use dirname since it may not exist
+ SRCDIR=`echo $configure | sed 's;/[^/][^/]*$;;'`
+ if [ @"$SRCDIR" = @"$configure" ]; then
+ SRCDIR=.
+ fi
+ while [ ! -r $SRCDIR/VERSION ]; do
+ # strip last directory from pathname
+ newdir=`echo $SRCDIR | sed 's;/[^/]*$;;'`
+ if [ -z "$newdir" ] || [ "$newdir" = $SRCDIR ]; then
+ break;
+ fi
+ SRCDIR=$newdir
+ done
+}
+if [ ! -r $SRCDIR/VERSION ]; then
+ bitch "Cannot locate sources in $SRCDIR."
+ kill -1 $$
+fi
+SRCDIR=`echo "$SRCDIR" | sed 's;\([^/]\)/*$;\1;'`
+
+if [ -r ${SRCDIR}/tif_version.c ] ; then
+ SRCDIR_IS_LIBTIFF=yes
+ PORTDOTH=port.h
+else
+ SRCDIR_IS_LIBTIFF=no
+ PORTDOTH=libtiff/port.h
+fi
+
+#
+# Descriptor usage:
+# 1: ???
+# 2: errors that should be seen even if we're in the background.
+# 3: [stdout from test runs]
+# 4: verbose-style messages (Using ...)
+# 5: compiler stderr when running tests
+#
+if [ $QUIET = yes ]; then
+ exec 4>/dev/null # chuck messages
+else
+ exec 4>&1 # messages got to stdout
+fi
+exec 5>./config.log # compiler messages and the like
+
+capture()
+{
+ (eval "set -x; $*") >&5 2>&1
+ return
+}
+captureX()
+{
+ (eval "set -x; $*") 2>&5
+ return
+}
+
+date >&5
+echo Running "$0" with arguments: "$@" >&5
+
+cat 1>&5 <<'EOF'
+
+This file contains information that is captured from running the configure
+script. Lines that begin with a "+" are command lines echoed by the
+shell. Other lines are the output of commands; usually the contents of
+test case files or the output from compilers. If configure does the
+wrong thing, you can use the information captured here to aid in debugging.
+
+EOF
+
+if [ -r $SRCDIR/tiff.alpha ] ; then
+ VERSIONFILE=$SRCDIR/VERSION
+ ALPHAFILE=$SRCDIR/tiff.alpha
+else
+ VERSIONFILE=$SRCDIR/VERSION
+ ALPHAFILE=$SRCDIR/dist/tiff.alpha
+fi
+DATE=`date`
+
+eval `cat $VERSIONFILE | sed 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\(.*\)/DIST_MAJOR=\1; DIST_MINOR=\2; DIST_TYPE=\3/'`
+DIST_ALPHA=`awk '{print $3}' $ALPHAFILE`
+VERSION="v${DIST_MAJOR}.${DIST_MINOR}${DIST_TYPE}"
+if [ $DIST_TYPE = beta ]; then
+ VERSION="${VERSION}${DIST_ALPHA}"
+fi
+
+Note()
+{
+ echo "$@" 1>&4
+}
+
+Note ""
+if [ $SRCDIR_IS_LIBTIFF = yes ] ; then
+ Note "Configuring TIFF Software (library only) $VERSION."
+else
+ Note "Configuring TIFF Software $VERSION."
+fi
+
+Note ""
+Note "If configure does the wrong thing, check the file config.log for"
+Note "information that may help you understand what went wrong."
+Note ""
+
+#
+# Read site and local configuration parameters.
+#
+if [ -f $SITE/config.site ]; then
+ Note "Reading site-wide parameters from $SITE/config.site."
+ . $SITE/config.site
+ capture . $SITE/config.site
+elif [ -f $SRCDIR/config.site ]; then
+ Note "Reading site-wide parameters from $SRCDIR/config.site."
+ . $SRCDIR/config.site
+ capture . $SRCDIR/config.site
+fi
+if [ -f config.local ]; then
+ Note "Reading local parameters from config.local."
+ . ./config.local
+ capture . ./config.local
+elif [ -f $SRCDIR/config.local ]; then
+ Note "Reading local parameters from $SRCDIR/config.local."
+ . $SRCDIR/config.local
+ capture . $SRCDIR/config.local
+fi
+
+#
+# Emulate old-style settups...
+#
+test -z "${DIR_JPEG-}" || {
+ DIRS_LIBINC="${DIRS_LIBINC} ${DIR_JPEG}"
+ DIR_JPEGLIB="${DIR_JPEG}"
+}
+test -z "${DIR_LIBGZ-}" || {
+ DIRS_LIBINC="${DIRS_LIBINC} ${DIR_LIBGZ}"
+ DIR_GZLIB="${DIR_LIBGZ}"
+}
+
+identifyTarget()
+{
+ random=`date | awk '{print $4}' | sed -e 's/.*://'` 2>/dev/null
+ case "$random" in
+ *0) Note "Wow, you've got a $1 system!";;
+ *1) Note "Hmm, looks like a $1 system.";;
+ *2) Note "Oh no, not another $1 system...";;
+ *3) Note "Well I'll be, a $1 system.";;
+ *4) Note "Fee, fie, foe, this smells like a $1 system.";;
+ *5) Note "Gosh, aren't you lucky to have a $1 system!";;
+ *6) Note "YOW!! Did something bad happen or am I on a $1 system?";;
+ *7) Note "Do they really still make $1 systems?!";;
+ *8) Note "I'm always happy to encounter another $1 system.";;
+ *9) Note "Here we are again, this time on a $1 system.";;
+esac
+}
+
+#
+# If no target is specified, try to deduce the system.
+# We use the GNU scripts for guessing and canonicalizing
+# the system identification, if available.
+#
+if [ -z "$TARGET" ]; then
+ test -f $SRCDIR/config.guess && TARGET=`sh $SRCDIR/config.guess` 2>/dev/null
+ if [ -z "$TARGET" ]; then
+ bitch "Sorry, no target specified on the command line and I don't seem"
+ bitch "to have the GNU config.guess script that is used to deduce your"
+ bitch "system type."
+ kill -1 $$
+ fi
+ identifyTarget $TARGET
+elif [ -f $SRCDIR/config.sub ]; then
+ TARGET=`sh $SRCDIR/config.sub "$TARGET"`
+else
+ Note "Warning, I don't seem to have the GNU config.sub script to canonicalize"
+ Note "your target specification; this may cause problems later on..."
+fi
+if [ -z "${FILLORDER-}" ]; then
+ #
+ # Host bit order within a word.
+ #
+ case $TARGET in
+ mips-dec-*) FILLORDER=LSB2MSB;;
+ i[345]86-*) FILLORDER=LSB2MSB;;
+ *) FILLORDER=MSB2LSB;;
+ esac
+fi
+
+#
+# Find the full pathname of a file
+# using the specified test operation.
+#
+findThing()
+{
+ t="$1"; app="$2"; path="$3";
+ case "$app" in
+ /*) eval "$t" "$app" && { echo "$app"; return; };;
+ esac
+ (IFS=:
+ for i in $path; do
+ eval "$t" "$i/$app" && { echo "$i/$app"; return 0; }
+ done
+ return 1
+ )
+}
+
+#
+# Find the full pathname of a plain file.
+#
+findFile()
+{
+ findThing "test -f" "$1" "$2"
+}
+
+#
+# Find the full pathname of an executable.
+#
+findApp()
+{
+ findThing "test -x" $1 $2
+}
+
+#
+# Find the full pathname of an executable;
+# supply a default if nothing is found.
+#
+findAppDef()
+{
+ app=$1; path=$2; def=$3
+ case $app in
+ /*) test -x $app && { echo $app; return; };;
+ esac
+ IFS=:
+ for i in $path; do
+ test -x $i/$app && { echo $i/$app; return; }
+ done
+ echo $def
+}
+
+#
+# Find the full pathname of a header file; in search-path $DIRS_LIBINC
+#
+findHeader()
+{
+ case "$1" in
+ /*) echo "$1"; return ;;
+ esac
+ for i in ${DIRS_LIBINC} /usr/include; do
+ test -r $i/$1 && {
+ case "$i" in
+ /*) echo "$i/$1"; return ;;
+ esac
+ if [ $SRCDIR_IS_LIBTIFF = yes ]; then
+ echo "$i/$1";
+ else
+ echo "../$i/$1";
+ fi
+ return;
+ }
+ done
+}
+
+#
+# Locate a C compiler that satisfies our needs (using assorted heuristics).
+#
+JUNK="
+ a.out
+ confsed
+ conftestmmap
+ confx confy
+ confMakefile
+ core
+ dummy
+ dummy.a
+ dummy.c
+ dummy.o
+ foo
+ so_locations
+ t.c
+ t.o
+ t
+ xMakedepend
+ xdefs
+ xgnu.c
+ xmakeinc
+ xport.h
+"
+trap "$RM \$JUNK; exit 1" 1 2 15
+
+$RM $JUNK
+
+cat>xgnu.c<<EOF
+#ifdef __GNUC__
+yes;
+#endif
+EOF
+
+#
+# Check if the specified compiler is from GNU
+#
+isGNU()
+{
+ capture "cat xgnu.c; ($1 -E xgnu.c 2>&5 | egrep yes)"
+}
+
+#
+# NB: use ANSI C prototype to weed out non-ANSI compilers.
+#
+cat>dummy.c<<EOF
+main(int argc, char* argv) { exit(0); }
+EOF
+
+checkCompiler()
+{
+ compiler=$1
+ if isGNU $compiler; then
+ ISGCC=yes
+ else
+ ISGCC=no
+ fi
+ #
+ # Guess special options needed to get an
+ # ANSI C compiler and/or similar. Must
+ # be combined with above checks so we only
+ # select an ANSI C compiler.
+ #
+ if [ -z "${ENVOPTS-}" ]; then
+ case $ISGCC-$TARGET in
+ no-*-irix*) C_ANSI="-ansi";;
+ no-*-hp*) C_ANSI="-Aa -D_HPUX_SOURCE -Dhpux";;
+ no-*-apollo-*) C_ANSI="-A nansi";;
+ no-*-aix*) C_ANSI="-Dunix -qlanglvl=ansi -qsrcmsg";;
+ *-sco*) C_ANSI="-Dsco";;
+ esac
+ else
+ C_ANSI="$ENVOPTS"
+ fi
+ $RM dummy dummy.o
+ capture $compiler -o dummy ${C_ANSI} dummy.c && {
+ CC=$compiler;
+ test -z "${CCOMPILER-}" && CCOMPILER=`findApp $compiler $PATH`
+ test -z "${ENVOPTS-}" && ENVOPTS="${C_ANSI-}"
+ return 0
+ }
+ return 1
+}
+
+CCtested=
+capture cat dummy.c
+if [ -z "${CC-}" ]; then
+ CCOMPILER=
+ for i in gcc cc ncc dcc xlc c89 gcc2; do
+ CCtested="$CCtested $i"
+ checkCompiler $i && break
+ done
+else
+ CCtested="$CCtested $CC"
+ checkCompiler $CC
+fi
+if [ -z "$CCOMPILER" ]; then
+ cat<<EOF
+
+Cannot locate a working ANSI C compiler.
+
+We attempted to compile the following test program:
+
+----------------------------------------------------------
+EOF
+ cat dummy.c
+ cat<<EOF
+----------------------------------------------------------
+
+with these compilers:
+
+ $CCtested
+
+but none of them were successful.
+
+If your compiler is in a non-standard location, you can specify its
+location in several ways:
+
+ o set the environment variable CC
+ o create a config.local or config.site file that includes a
+ definition for CC
+ o supply it on the command line using -with-CC=<pathname>
+
+If command line options are required for ANSI C compilation, set the
+ENVOPTS parameter to these options in a similar way (either through
+an environment variable or config.local/config.site) and then rerun
+this script.
+EOF
+ boom
+fi
+Note "Using $CCOMPILER for a C compiler (use -with-CC=compilername to override)."
+
+test "$ENVOPTS" && {
+ Note "Using $ENVOPTS to get the appropriate compilation environment."
+}
+
+if [ ${ISGCC} = yes ] ; then
+ GCCversion="`${CCOMPILER} -v 2>&1 | \
+ sed -n -e '/version/s/.* \([0-9]*\)\.\([0-9]*\).\([0-9]*\)/\1.\2.\3/p'`"
+fi
+
+
+CheckForGandO()
+{
+ f=$1
+ if test -s $f; then
+ capture grep -i \(error\|warning\) $f || return 1
+ fi
+ return 0
+}
+
+if [ -z "${GCOPTS-}" ]; then
+ if capture $CCOMPILER $ENVOPTS -g -c dummy.c; then
+ Note "Looks like $CCOMPILER supports the -g option."
+ # NB: cannot use captureX here 'cuz we lose stderr
+ if $CCOMPILER $ENVOPTS -c -g -O dummy.c >t 2>&1 && CheckForGandO t; then
+ GCOPTS="-g"
+ else
+ Note "... but not together with the -O option, not using it."
+ GCOPTS=
+ fi
+ else
+ GCOPTS=
+ fi
+fi
+if [ ! -z "${GCOPTS}" ]; then
+ Note "Using \"$GCOPTS\" for C compiler options."
+fi
+
+#
+# Verify that $MAKE is accessible
+#
+PATHMAKE=`findApp ${MAKE} $PATH`
+if [ "$PATHMAKE" ]; then
+ Note "Using $PATHMAKE to configure the software."
+ (echo 'all:') | ${MAKE} -f - all >/dev/null 2>&5 || {
+ cat<<EOF
+
+Something is wrong with "$MAKE" or $MAKE does not accept Makefiles
+from stdin with "-f -". If you have MAKE set in your environment,
+verify it points to the right program you want to" use to build this
+software. Otherwise, verify that you have the make program installed
+somewhere on your system and set the MAKE environment variable to the
+pathname of the program.
+EOF
+ boom
+ }
+else
+ cat<<EOF
+No $MAKE located in the search path.
+
+There was no $MAKE program in the restricted search used by this script
+If $MAKE is in a non-standard location set the MAKE environment variable
+to the pathname of the appropriate program.
+EOF
+ boom
+fi
+
+#
+# Check whether or not $MAKE automatically sets MAKE
+# in the Makefiles. If not, we add an explicit define
+# for places where recursive calls are made.
+#
+if [ -z "${SETMAKE-}" ]; then
+ if (cat<<'EOF'
+SHELL=/bin/sh
+all:
+ @if [ -n "${MAKE}" ] ; then echo "make sets make" ; fi
+EOF
+) | $MAKE -f - | grep "make sets make" > /dev/null ; then
+ SETMAKE=
+ else
+ Note "Looks like $MAKE does not setup MAKE in Makefiles, will compensate."
+ SETMAKE="MAKE = ${MAKE}"
+ fi
+fi
+
+test -z "${AR-}" && AR=`findApp ar $PATH`
+if [ -z "$AR" ]; then
+ Note "*** Warning, could not locate a suitable ar command; using a default."
+ AR=ar
+fi
+test -z "${AROPTS-}" && AROPTS=rc
+test -z "${RANLIB-}" && RANLIB=`findApp ranlib $PATH`
+if [ -z "$RANLIB" ]; then
+ Note "Warning, no ranlib, assuming it's not needed."
+ RANLIB=":"
+ $RM dummy.a
+ if $AR rcs dummy.a >/dev/null 2>&1; then
+ AROPTS=crs
+ Note "Looks like ar has an s option to build symbol tables."
+ fi
+fi
+
+#
+# runMake target rules ...
+#
+runMakeX()
+{
+ target="$1"; shift
+ $RM $target
+ (echo SRCDIR=.
+ for i in "$@"; do
+ echo "$i";
+ done
+ )>confMakefile
+ captureX ${MAKE} -f confMakefile $target
+ return
+}
+runMake()
+{
+ runMakeX "$@" >&5
+ return
+}
+
+#
+# Look for a library using a known (unique) function.
+#
+CheckForLibrary()
+{
+ f=$1; shift
+ libs="$@";
+ cat>t.c<<EOF
+int t() { $f(); return 0; }
+int main(){ t(); return 0; }
+EOF
+ runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c $libs"
+}
+
+#
+# Look for an include file.
+#
+CheckForIncludeFile()
+{
+ (for i do
+ echo "#include \"$i\""
+ done)>t.c
+ runMake t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c"
+}
+
+#
+# Figure out if certain system-specific interfaces are
+# supported. We craft a port.h file that has external
+# declarations for missing routines that are required by
+# the system and modify defs to reflect which optional
+# interfaces are supported.
+#
+
+EmitCPlusPlusPrologue()
+{
+ echo '/*'
+ echo ' * Warning, this file was automatically created by the TIFF configure script'
+ echo ' * VERSION: ' $VERSION
+ echo ' * DATE: ' $DATE
+ echo ' * TARGET: ' $TARGET
+ if [ $ISGCC = yes ]; then
+ echo ' * CCOMPILER: ' ${CCOMPILER}-${GCCversion}
+ else
+ echo ' * CCOMPILER: ' $CCOMPILER
+ fi
+ echo ' */'
+ echo "#ifndef $1"
+ echo "#define $1 1"
+ echo '#ifdef __cplusplus'
+ echo 'extern "C" {'
+ echo '#endif'
+}
+
+EmitCPlusPlusEpilogue()
+{
+ echo '#ifdef __cplusplus'
+ echo '}'
+ echo '#endif'
+ echo '#endif'
+}
+
+#
+# Look for a function in one of the standard libraries
+# or one of the machine-dependent libraries selected above.
+#
+CheckForFunc()
+{
+ echo "extern int $1(); main(){$1();exit(0);}" >t.c
+ runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c ${MACHDEPLIBS}"
+}
+
+#
+# Look for a function declaration in system include files.
+#
+AddFuncDecl()
+{
+ echo "$2";
+ Note "... add function prototype for $1"
+}
+CheckForFuncDecl()
+{
+ f=$1; shift
+ (for i do
+ echo "#include \"$i\""
+ done)>t.c
+ capture cat t.c
+ runMakeX t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c" |\
+ awk '{while($0~/[,(][ \t]*$/){printf"%s",$0;getline}print}' |\
+ grep "$f[ ]*(.*)" >&5
+ return
+}
+CheckFuncDecl()
+{
+ f=$1; shift
+ decl=$1; shift
+ CheckForFuncDecl "$f" "$@" || AddFuncDecl "$f" "$decl"
+}
+
+#
+# Look for a variable declaration in system include files.
+#
+CheckForVarDecl()
+{
+ v="$1"; shift
+ (for i do
+ echo "#include \"$i\""
+ done)>t.c
+ capture cat t.c
+ runMakeX t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c" | grep "$v" >&5
+ return
+}
+CheckVarDecl()
+{
+ v="$1"; shift
+ decl="$1"; shift
+ CheckForVarDecl "$v" "$@" || \
+ (echo "$decl"; Note "... add declaration $decl")
+}
+
+#
+# Look for a #define in system include files.
+#
+AddDefine()
+{
+ echo '#ifndef' $1
+ echo '#define' "$2"
+ echo '#endif'
+ Note '... add #define for' "$1"
+}
+CheckForDefine()
+{
+ def=$1; shift
+ (for i do
+ echo "#include \"$i\""
+ done
+ echo "#ifdef $def"
+ echo "FOUND();"
+ echo "#endif"
+ )>t.c
+ capture cat t.c
+ runMakeX t "t:; ${CCOMPILER} ${ENVOPTS} -E t.c" | grep FOUND >&5
+}
+CheckDefine()
+{
+ def=$1; shift
+ decl=$1; shift
+ CheckForDefine "$def" "$@" || AddDefine "$def" "$decl"
+}
+
+CheckForMMAP()
+{
+ if CheckForFunc getpagesize; then
+ cat>t.c<<'EOF'
+/* this was lifted from GNU autoconf */
+/* Thanks to Mike Haertel and Jim Avera for this test. */
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+EOF
+ else
+ cat>t.c<<'EOF'
+/* this was lifted from GNU autoconf */
+/* Thanks to Mike Haertel and Jim Avera for this test. */
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+#ifdef BSD
+# ifndef BSD4_1
+# define HAVE_GETPAGESIZE
+# endif
+#endif
+
+#ifndef HAVE_GETPAGESIZE
+# include <sys/param.h>
+# ifdef EXEC_PAGESIZE
+# define getpagesize() EXEC_PAGESIZE
+# else
+# ifdef NBPG
+# define getpagesize() NBPG * CLSIZE
+# ifndef CLSIZE
+# define CLSIZE 1
+# endif
+# else
+# ifdef NBPC
+# define getpagesize() NBPC
+# else
+# define getpagesize() PAGESIZE /* SVR4 */
+# endif
+# endif
+# endif
+#endif
+EOF
+ fi
+cat>>t.c<<'EOF'
+#if defined(__osf__) || defined(_AIX)
+# define valloc malloc
+#endif
+char *valloc(), *malloc();
+
+int
+main()
+{
+ char *buf1, *buf2, *buf3;
+ int i = getpagesize(), j;
+ int i2 = getpagesize()*2;
+ int fd;
+
+ buf1 = (char *)valloc(i2);
+ buf2 = (char *)valloc(i);
+ buf3 = (char *)malloc(i2);
+ for (j = 0; j < i2; ++j)
+ *(buf1 + j) = rand();
+ fd = open("conftestmmap", O_CREAT | O_RDWR, 0666);
+ write(fd, buf1, i2);
+ mmap(buf2, i, PROT_READ | PROT_WRITE, MAP_FIXED | MAP_PRIVATE, fd, 0);
+ for (j = 0; j < i; ++j)
+ if (*(buf1 + j) != *(buf2 + j))
+ exit(1);
+ lseek(fd, (long)i, 0);
+ read(fd, buf2, i); /* read into mapped memory -- file should not change */
+ /* (it does in i386 SVR4.0 - Jim Avera, jima@netcom.com) */
+ lseek(fd, (long)0, 0);
+ read(fd, buf3, i2);
+ for (j = 0; j < i2; ++j)
+ if (*(buf1 + j) != *(buf3 + j))
+ exit(1);
+ exit(0);
+}
+EOF
+ capture cat t.c
+ runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c ${MACHDEPLIBS}" && ./a.out
+}
+
+CheckForBigEndian()
+{
+ echo 'main() { int one = 1; char* cp = (char*)&one; exit(*cp!=0); }'>t.c
+ capture cat t.c
+ runMake t "t:; ${CCOMPILER} ${ENVOPTS} t.c" && ./a.out
+}
+
+#
+# Check an existing port.h to see if it was created
+# for the target and compiler we are using.
+#
+CheckPortDotH()
+{
+ getConfigTag()
+ {
+ param=`grep "$1:" $2 | sed -e 's/.*:[ ]*\([^ ]*\).*/\1/'`
+ }
+ getConfigTag TARGET $PORTDOTH; target="$param"
+ getConfigTag CCOMPILER $PORTDOTH; ccompiler="$param"
+ CCOMP=$CCOMPILER
+ if [ $ISGCC = yes ]; then
+ CCOMP="${CCOMP}-${GCCversion}"
+ fi
+ test "$target" = "$TARGET" && test "$ccompiler" = "$CCOMP"
+}
+
+#
+# Built port.h based on the system and compiler setup.
+#
+BuildPortDotH()
+{
+ Note ""
+ Note "Creating $PORTDOTH with necessary definitions."
+
+ (EmitCPlusPlusPrologue _PORT_
+
+ CheckForIncludeFile sys/types.h && echo '#include <sys/types.h>'
+ CheckVarDecl off_t 'typedef long off_t;' sys/types.h stdlib.h
+ CheckVarDecl size_t 'typedef unsigned size_t;' sys/types.h stdlib.h
+ CheckVarDecl u_char 'typedef unsigned char u_char;' sys/types.h
+ CheckVarDecl u_short 'typedef unsigned short u_short;' sys/types.h
+ CheckVarDecl u_int 'typedef unsigned int u_int;' sys/types.h
+ CheckVarDecl u_long 'typedef unsigned long u_long;' sys/types.h
+
+ echo "#define HOST_FILLORDER FILLORDER_${FILLORDER}"
+ CPU=`echo $TARGET | sed 's/-.*//'`
+ Note "... using $FILLORDER bit order for your $CPU cpu"
+ if CheckForBigEndian; then
+ echo "#define HOST_BIGENDIAN 1"
+ Note "... using big-endian byte order for your $CPU cpu"
+ else
+ echo "#define HOST_BIGENDIAN 0"
+ Note "... using little-endian byte order for your $CPU cpu"
+ fi
+
+ CheckForMMAP && {
+ echo '#define HAVE_MMAP 1'
+ Note "... configure use of mmap for memory-mapped files"
+ CheckFuncDecl mmap \
+ 'extern void* mmap(void*, size_t, int, int, int, off_t);' sys/mman.h
+ }
+
+ CheckForIncludeFile stdio.h && echo '#include <stdio.h>'
+ CheckForIncludeFile unistd.h && echo '#include <unistd.h>'
+ CheckForIncludeFile string.h && echo '#include <string.h>'
+ CheckForIncludeFile stdlib.h && echo '#include <stdlib.h>'
+ if CheckForDefine O_RDONLY fcntl.h; then
+ echo '#include <fcntl.h>'
+ Note "... O_RDONLY is in <fcntl.h>"
+ elif CheckForDefine O_RDONLY sys/file.h; then
+ echo '#include <sys/file.h>'
+ Note "... O_RDONLY is in <sys/file.h>"
+ else
+ AddDefine O_RDONLY "O_RDONLY 0"
+ AddDefine O_WRONLY "O_WRONLY 1"
+ AddDefine O_RDWR "O_RDWR 2"
+ fi
+
+ echo 'typedef double dblparam_t;'
+ Note "... using double for promoted floating point parameters"
+
+ if [ -z "${INLINE-}" ]; then
+ if [ $ISGCC = yes ]; then
+ echo '#ifdef __STRICT_ANSI__'
+ echo '#define INLINE __inline__'
+ echo '#else'
+ echo '#define INLINE inline'
+ echo '#endif'
+ Note "... enabling use of inline functions"
+ else
+ echo '#define INLINE'
+ Note "... disabling use of inline functions"
+ fi
+ else
+ echo "#define INLINE $INLINE"
+ Note "... using \"$INLINE\" to control inline function usage"
+ fi
+
+ echo '#define GLOBALDATA(TYPE,NAME) extern TYPE NAME'
+
+ CheckFuncDecl memset 'extern void* memset(void*, int, size_t);' string.h
+ CheckFuncDecl floor 'extern double floor(double);' math.h
+ CheckFuncDecl ceil 'extern double ceil(double);' math.h
+ CheckFuncDecl exp 'extern double exp(double);' math.h
+ CheckFuncDecl pow 'extern double pow(double, double);' math.h
+ CheckFuncDecl read 'extern int read(int, const void*, unsigned int);' unistd.h
+ CheckFuncDecl malloc 'extern void* malloc(size_t);' stdlib.h
+ CheckFuncDecl realloc 'extern void* realloc(void*, size_t);' stdlib.h
+ CheckFuncDecl free 'extern void free(void*);' stdlib.h
+ EmitCPlusPlusEpilogue
+ )>xport.h
+ if [ $SRCDIR_IS_LIBTIFF = no -a ! -d libtiff ]; then
+ Note "Creating libtiff directory"
+ mkdir libtiff
+ fi
+ mv xport.h $PORTDOTH; chmod 444 $PORTDOTH
+ Note "Done creating $PORTDOTH."
+}
+
+if [ "$PORT" != no ] && test -f $PORTDOTH && CheckPortDotH; then
+ Note ""
+ Note "Using previously created $PORTDOTH."
+else
+ $RM xport.h t.c a.out $PORTDOTH
+ BuildPortDotH
+fi
+
+if [ "$PORT" = auto ]; then
+ Note ""
+ Note "Checking system libraries for functionality to emulate."
+
+ FUNCS="
+ strcasecmp
+ strtoul
+ getopt
+ "
+
+ for i in $FUNCS; do
+ CheckForFunc $i || {
+ Note "... emulate $i"
+ PORTFUNCS="${PORTFUNCS-} $i.c"
+ }
+ done
+ if [ "${PORTFUNCS-}" ]; then
+ LIBPORT='../port/libport.a'
+ PORT=yes
+ else
+ PORT=no
+ fi
+fi
+if [ $PORT != yes ] ; then
+ LIBPORT=
+ PORTFUNCS=
+fi
+Note "Done checking system libraries."
+
+Note ""
+Note "Checking for Dynamic Shared Object (DSO) support."
+if [ "$DSO" = auto ]; then
+ DSO=no
+ DSOSUF_VERSION=
+ DSOLD='${LD}'
+ TIFFLIBREF=
+ case $TARGET-$CC-$ISGCC in
+ *-irix5.2*)
+ if (findApp rld /lib:/usr/lib:$PATH) >/dev/null 2>&1; then
+ DSOSUF=so
+ DSOOPTS='-elf -shared -no_unresolved -all'
+ DSO=IRIX52
+ TIFFLIBREF='-L${DEPTH}/libtiff -rpath '${DIR_LIB}' -ltiff'
+ fi
+ ;;
+ *-irix*)
+ if (findApp rld /lib:/usr/lib:$PATH) >/dev/null 2>&1; then
+ DSOSUF=so
+ DSOLD="${CCOMPILER} ${ENVOPTS}"
+ DSOOPTS='-shared -rdata_shared -check_registry ${SRCDIR}/port/irix/so_locations -quickstart_info'
+ DSO=IRIX
+ TIFFLIBREF='-L${DEPTH}/libtiff -rpath '${DIR_LIB}' -ltiff'
+ fi
+ ;;
+ *-aix*)
+ DSOSUF=a
+ DSOOPTS='-r'
+ LIBCOPTS="-bM\:SRE"
+ DSO=AIX
+ ;;
+ *-hpux*yes)
+ DSOSUF=sl
+ DSOLD=gcc
+ DSOOPTS='-fpic -shared'
+ LIBCOPTS=-fpic
+ DSO=HPUX
+ TIFFLIBREF="-Wl,+s,+b${DIR_LIB}"' -L${DEPTH}/libtiff -ltiff'
+ ;;
+ *-hpux*)
+ DSOSUF=sl
+ DSOOPTS='-b'
+ LIBCOPTS="+Z"
+ DSO=HPUX
+ TIFFLIBREF="-Wl,+s,+b${DIR_LIB}"' -L${DEPTH}/libtiff -ltiff'
+ ;;
+ *-solaris*)
+ DSOSUF=so
+ DSOOPTS='-G'
+ if [ $ISGCC = yes ]; then
+ LIBCOPTS="-fpic"
+ else
+ LIBCOPTS="-K PIC"
+ fi
+ DSO=SOLARIS
+ TIFFLIBREF='-L${DEPTH}/libtiff -R'${DIR_LIB}' -ltiff'
+ ;;
+ *-netbsd*)
+ DSOSUF=so.${DIST_MAJOR}.0
+ LIBCOPTS='-fPIC'
+ DSO=NETBSD
+ TIFFLIBREF='-L${DEPTH}/libtiff -ltiff'
+ ;;
+ *-freebsd*)
+ DSOSUF=so.${DIST_MAJOR}.0
+ LIBCOPTS='-fpic -fPIC'
+ DSO=FREEBSD
+ TIFFLIBREF='-L${DEPTH}/libtiff -ltiff'
+ ;;
+ *-linux*)
+ if [ -r /lib/libc.so.5 ]; then
+ DSOSUF=so.${DIST_MAJOR}
+ DSOSUF_VERSION=${DSOSUF}.${DIST_MINOR}.${DIST_ALPHA}
+ LIBCOPTS='-fPIC'
+ DSOOPTS='-shared'
+ DSO=LINUX
+ fi
+ ;;
+ *-osf3*)
+ DSOSUF=so
+ DSOOPTS='-shared'
+ DSO=OSF
+ ;;
+ esac
+fi
+if [ "$DSO" != no ]; then
+ JUNK="$JUNK t.${DSOSUF}"
+ #
+ # Check to make sure the compilers process
+ # the DSO options in the expected way.
+ #
+ CheckCCDSO()
+ {
+ $RM t.c t.o t.${DSOSUF}
+ cat>t.c<<EOF
+int f() { return 0; }
+EOF
+ capture cat t.c
+ runMake t \
+ "t.o:; ${CCOMPILER} ${ENVOPTS} ${LIBCOPTS} -c t.c" \
+ "t: t.o; ${DSOLD} ${DSOOPTS} -o t.${DSOSUF} t.o"
+ }
+ if CheckCCDSO; then
+ Note "Looks like your system supports $DSO-style DSOs."
+ else
+ cat 1>&4 <<EOF
+Looks like your system supports $DSO-style DSOs...
+... sigh, but $CCOMPILER does not support DSOs in the expected way.
+EOF
+ DSO=no
+ fi
+fi
+if [ "$DSO" = no ]; then
+ DSOSUF=a DSOOPTS= LIBCOPTS=
+ DSOSUF_VERSION=$DSOSUF
+fi
+test -z "$TIFFLIBREF" && TIFFLIBREF="\${DEPTH}/libtiff/libtiff.${DSOSUF}"
+test -z "$DSOSUF_VERSION" && DSOSUF_VERSION=${DSOSUF}
+Note "Done checking for DSO support."
+
+Note ""
+if [ "$LIBIMAGE" = auto ]; then
+ if CheckForLibrary iopen -limage && CheckForIncludeFile gl/image.h; then
+ Note "Looks like there is support for SGI RGB images."
+ LIBIMAGE=yes
+ else
+ LIBIMAGE=no
+ fi
+fi
+if [ "$LIBGL" = auto ]; then
+ if CheckForLibrary winopen -lgl && CheckForIncludeFile gl.h; then
+ Note "Looks like there is support for IRIS GL."
+ LIBGL=yes
+ else
+ LIBGL=no
+ fi
+fi
+
+test $LIBGL = no -a $LIBIMAGE = no || Note ""
+Note "Selecting programs used during installation."
+
+
+#
+# Miscellaneous ``little'' programs.
+#
+test -z "${CHMOD-}" && CHMOD=`findAppDef chmod $PATH chmod`
+test -z "${LN-}" && LN=`findAppDef ln $PATH ln`
+test -z "${SCRIPT_SH-}" && SCRIPT_SH=`findAppDef sh $PATH sh`
+test -z "${SED-}" && SED=`findAppDef sed $PATH sed`
+test -z "${STRIP-}" && STRIP=`findAppDef strip $PATH strip`
+
+#
+# Check if mv -f is supported
+#
+if [ -z "${MV_F-}" ]; then
+ $RM t.c; echo "">t.c
+ if mv -f t.c t.o; then
+ Note "Looks like mv supports the -f option to force a move."
+ MV_F=-f
+ else
+ Note "Warning, looks like mv has no -f option to force move operations;"
+ Note "... this may cause problems during installation."
+ MV_F=
+ fi
+fi
+
+#
+# Check if ln -s creates a symbolic link.
+#
+if [ -z "${LN_S-}" ]; then
+ $RM t.c; $LN -s foo t.c && LN_S=-s
+fi
+if [ -n "$LN_S" ]; then
+ Note "Looks like $LN supports the -s option to create a symbolic link."
+else
+ Note "Warning, looks like $LN has no -s option to create symbolic links;"
+ Note "... this may cause problems during installation."
+fi
+
+#
+# Pick install mechanism.
+#
+if [ -z "${INSTALL-}" ]; then
+ case $TARGET in
+ *-irix*) INSTALL=`findApp install /sbin:$PATH`;;
+ *) INSTALL='${SHELL} ../port/install.sh';;
+ esac
+fi
+
+Note "Done selecting programs."
+
+#
+# User-changable configuration parameters section.
+# Anything selected here is presented to the user
+# and may be interactively changed.
+#
+
+Note ""
+Note "Selecting default TIFF configuration parameters."
+Note ""
+
+#
+# Fill in any other configuration parameters not
+# setup in the site and local files.
+#
+
+bitchExecutable()
+{
+ echo ""
+ echo "Warning, $1 does not seem to be an executable program;"
+ echo "you'll need to correct this before starting up the fax server."
+ echo ""
+}
+
+#
+# Setup manual page-related stuff.
+#
+# Manual pages are processed according to:
+# 1. Section organization (BSD or System V)
+# 2. Pre-formatted (w/ nroff) or source.
+# 3. Compressed (compress, gzip, pack) or uncompressed.
+# 4. Whether or not the FlexFAX ``F'' suffix must be
+# stripped for pages to be found (only for 4F pages).
+#
+if [ -z "${DIR_MAN-}" ]; then
+ MANPATH="
+ $MANPATH
+ /usr/local/man
+ /usr/contrib/man
+ /usr/catman/local
+ "
+ DIR_MAN=
+ for i in $MANPATH; do
+ test -d $i && { DIR_MAN=$i; break; }
+ done
+ test -z "$DIR_MAN" && DIR_MAN=/usr/local/man
+fi
+Note "Looks like manual pages go in $DIR_MAN."
+if [ -z "${MANSCHEME-}" ]; then
+ case $TARGET in
+ *-bsdi*|*-netbsd*) MANSCHEME=bsd-nroff-gzip-0.gz;;
+ *-freebsd*) MANSCHEME=bsd-source-cat;;
+ *-linux*) MANSCHEME=bsd-source-cat;;
+ *-ultrix*) MANSCHEME=bsd-source-cat;;
+ *-sunos*) MANSCHEME=bsd-source-cat-strip;;
+ *-sysv[234]*) MANSCHEME=sysv-source-cat-strip;;
+ *-hpux*) MANSCHEME=sysv-source-cat-strip;;
+ *-solaris*) MANSCHEME=sysv-source-cat-strip;;
+ *-aix*) MANSCHEME=sysv-source-strip;;
+ *-isc*|*-sco*) MANSCHEME=sysv-source-cat;;
+ *-irix*) MANSCHEME=sysv-nroff-compress-Z;;
+ *)
+ #
+ # Try to deduce the setup from existing manual pages.
+ # XXX needs more work XXX
+ #
+ MANSCHEME=sysv-source-cat
+ if [ -d /usr/share/man ]; then
+ if [ -d /usr/share/man/u_man ]; then
+ MANSCHEME=sysv-source-cat
+ elif [ -d /usr/share/man/man8 ]; then
+ MANSCHEME=bsd-source-cat
+ fi
+ elif [ -d /usr/share/catman ]; then
+ if [ -d /usr/share/catman/u_man ]; then
+ MANSCHEME=sysv-nroff-cat
+ elif [ -d /usr/share/catman/man8 ]; then
+ MANSCHEME=bsd-nroff-cat
+ fi
+ fi
+ ;;
+ esac
+fi
+Note "Looks like manual pages should be installed with $MANSCHEME."
+
+#
+# Figure out which brand of echo we have and define
+# prompt and print shell functions accordingly.
+#
+if [ `echo foo\\\c`@ = "foo@" ]; then
+ prompt()
+ {
+ echo "$* \\c"
+ }
+elif [ "`echo -n foo`@" = "foo@" ]; then
+ prompt()
+ {
+ echo -n "$* "
+ }
+else
+ prompt()
+ {
+ echo "$*"
+ }
+fi
+
+#
+# Prompt the user for a string that can not be null.
+#
+promptForNonNullStringParameter()
+{
+ x="" val="$1" desc="$2"
+ while [ -z "$x" ]; do
+ prompt "$desc [$val]?"; read x
+ if [ "$x" ]; then
+ # strip leading and trailing white space
+ x=`echo "$x" | sed -e 's/^[ ]*//' -e 's/[ ]*$//'`
+ else
+ x="$val"
+ fi
+ done
+ param="$x"
+}
+
+promptForManPageScheme()
+{
+ x=""
+ while [ -z "$x" ]; do
+ prompt "Manual page installation scheme [$MANSCHEME]?"; read x
+ if [ "$x" ]; then
+ # strip leading and trailing white space
+ x=`echo "$x" | sed -e 's/^[ ]*//' -e 's/[ ]*$//'`
+ # XXX do a better job of validating...
+ case "$x" in
+ bsd-nroff-cat*|sysv-nroff-cat*) ;;
+ bsd-nroff-gzip*|sysv-nroff-gzip*) ;;
+ bsd-nroff-comp*|sysv-nroff-comp*) ;;
+ bsd-nroff-pack*|sysv-nroff-pack*) ;;
+ bsd-source-cat*|sysv-source-cat*) ;;
+ bsd-source-gzip*|sysv-source-gzip*) ;;
+ bsd-source-comp*|sysv-source-comp*) ;;
+ bsd-source-pack*|sysv-source-pack*) ;;
+ *)
+cat <<EOF
+
+"$x" is not a valid manual page installation scheme. Schemes are
+constructed according to:
+
+ <organization>-<formatting>-<compression>[-<suffix>]
+
+where:
+
+<organization> is either "bsd" for BSD-style section organization (e.g.
+ file formats in section 5) or "sysv" for System V-style
+ organization (e.g. file formats in section 4).
+
+<formatting> is either "nroff" to force installation of formatted
+ materials (using nroff) or "source" to get the nroff
+ source installed.
+
+<compression> is either the name of a program to compress the manual
+ pages (gipz, compress, pack) or "cat" for uncompressed data.
+
+<suffix> is either the file suffix to convert installed pages to
+ (e.g. 0.gz for gzip-compressed pages under BSD) or "strip"
+ to force the normal ".4f" suffix to be converted to ".4"
+ (or ".5" if using the BSD organization). If no -<suffix>
+ is specified then filenames are not converted when they
+ are installed.
+
+Common schemes are:
+
+bsd-nroff-gzip-0.gz compressed formatted pages for BSD
+bsd-source-cat nroff source w/ BSD organization
+sysv-source-cat-strip nroff source for SysV w/o .4f suffix
+sysv-source-cat nroff source for SysV as-is
+
+EOF
+ x="";;
+ esac
+ else
+ x="$MANSCHEME"
+ fi
+ done
+ MANSCHEME="$x"
+}
+
+printConfig()
+{
+ cat<<EOF
+
+TIFF configuration parameters are:
+
+[ 1] Directory for tools: $DIR_BIN
+[ 2] Directory for libraries: $DIR_LIB
+[ 3] Directory for include files: $DIR_INC
+[ 4] Directory for manual pages: $DIR_MAN
+[ 5] Directory for HTML documents: $DIR_HTML
+[ 6] Manual page installation scheme: $MANSCHEME
+
+EOF
+}
+
+promptForParameter()
+{
+ case $1 in
+ 1) promptForNonNullStringParameter "$DIR_BIN" \
+ "Directory to install tools"; DIR_BIN="$param"
+ ;;
+ 2) promptForNonNullStringParameter "$DIR_LIB" \
+ "Directory to install libraries"; DIR_LIB="$param"
+ ;;
+ 3) promptForNonNullStringParameter "$DIR_INC" \
+ "Directory to install include files"; DIR_INC="$param"
+ ;;
+ 4) promptForNonNullStringParameter "$DIR_MAN" \
+ "Directory to install manual pages"; DIR_MAN="$param"
+ ;;
+ 5) promptForNonNullStringParameter "$DIR_HTML" \
+ "Directory to install HTML documents"; DIR_HTML="$param"
+ ;;
+ 6) promptForManPageScheme;;
+ esac
+}
+
+checkJPEG()
+{
+ if [ "${JPEG}" = yes ]; then
+ test "`findHeader jpeglib.h`" || {
+ cat<<EOF
+
+The set of libtiff include directories,
+
+ DIRS_LIBINC=${DIRS_LIBINC}
+
+does not seem to be setup correctly; "jpeglib.h" was not found.
+This must be corrected if the JPEG support is to be enabled.
+Either fix the pathname or disable the JPEG support.
+
+EOF
+ }
+ test $SRCDIR_IS_LIBTIFF = yes || \
+ test -d "${DIR_JPEGLIB:-/dev/null/no-such-file}" || {
+ cat<<EOF
+
+The JPEG library directory, "${DIR_JPEGLIB}", does not seem to exist.
+This must be corrected if the JPEG support is to be enabled.
+Either fix the pathname or disable the JPEG support.
+
+EOF
+ }
+ fi
+}
+
+checkZIP()
+{
+ if [ "${ZIP}" = yes ]; then
+ test "`findHeader zlib.h`" || {
+ cat<<EOF
+
+The set of libtiff include directories,
+
+ DIRS_LIBINC=${DIRS_LIBINC}
+
+does not seem to be setup correctly; "zlib.h" was not found.
+This must be corrected if the (G)ZIP support is to be enabled.
+Either fix the pathname or disable the (G)ZIP support.
+
+EOF
+ }
+ test $SRCDIR_IS_LIBTIFF = yes \
+ || test -d "${DIR_GZLIB:-/dev/null/no-such-file}" || {
+ cat<<EOF
+
+The libgz library directory, "${DIR_GZLIB}", does not seem to exist.
+This must be corrected if the ZIP support is to be enabled.
+Either fix the pathname or disable the ZIP support.
+
+EOF
+ }
+ fi
+}
+
+if [ $NONINTERACTIVE = no ] ; then
+ ok=skip
+ while [ "$ok" != y ] && [ "$ok" != yes ]; do
+ if [ "$ok" != skip ]; then
+ for i in 1 2 3 4 5 6; do
+ promptForParameter $i;
+ done
+ fi
+ printConfig; prompt "Are these ok [yes]?"; read ok
+ test -z "$ok" && ok=yes
+ case "$ok" in
+ [1-9]|1[0-7]) promptForParameter $ok;;
+ [yY]*|[nN]*) continue;;
+ ?*)
+ echo ""
+ echo "\"y\", \"yes\", or <RETURN> accepts the displayed parameters."
+ echo "A number lets you change the numbered parameter."
+ echo ""
+ ;;
+ esac
+ ok=skip
+ done
+ checkJPEG
+ checkZIP
+else
+ checkJPEG
+ checkZIP
+fi
+
+case $MANSCHEME in
+*-source-*) MANAPPS=man1 MANLIB=man3;;
+*-nroff-*) MANAPPS=cat1 MANLIB=cat3;;
+esac
+case $MANSCHEME in
+*-strip) MANSEDLOCAL="-e s/3T/3/g";;
+*) MANSEDLOCAL="";;
+esac
+case $MANSCHEME in
+*-source-*) MANCVT='${MANSED} $? >$@';;
+*-nroff-gzip-*) MANCVT='${MANSED} $? | nroff -man | gzip > $@';;
+*-nroff-pack-*) MANCVT='${MANSED} $? | nroff -man | pack > $@';;
+*-nroff-com*-*) MANCVT='${MANSED} $? | nroff -man | compress > $@';;
+*-nroff-cat-*) MANCVT='${MANSED} $? | nroff -man > $@';;
+esac
+case $MANSCHEME in
+*-0|*-0.gz|*-0.Z|*-gz|*-Z|*-z)
+ suf=`echo $MANSCHEME | sed 's/.*-/./'`
+ A='`echo $$i | sed' B='`' # workaround shell bugs
+ MANAPPNAME="$A s/\\\\.1\$\$/$suf/$B"
+ MANLIBNAME="$A s/\\\\.3t\$\$/$suf/$B"
+ ;;
+*-strip)
+ MANAPPNAME='$$i'
+ MANLIBNAME='`echo $$i | sed s/\\.3t$$/.3/`'
+ ;;
+*)
+ MANAPPNAME='$$i' MANLIBNAME='$$i'
+ ;;
+esac
+
+if [ "${JPEG}" = yes ]; then
+ test -z "${CONF_JPEG-}" && CONF_JPEG="-DJPEG_SUPPORT"
+ if test -z "${LIBJPEG-}" ; then
+ LIBJPEG="-ljpeg"
+ test -z "${DIR_JPEGLIB-}" || LIBJPEG="-L${DIR_JPEGLIB} ${LIBJPEG}"
+ fi
+else
+ CONF_JPEG=
+ LIBJPEG=
+fi
+if [ "${ZIP}" = yes ]; then
+ test -z "${CONF_ZIP-}" && CONF_ZIP="-DZIP_SUPPORT"
+ if test -z "${LIBGZ-}" ; then
+ LIBGZ="-lz"
+ test -z "${DIR_GZLIB-}" || LIBGZ="-L${DIR_GZLIB} ${LIBGZ}"
+ fi
+else
+ CONF_ZIP=
+ LIBGZ=
+fi
+
+Note ""
+
+#
+# Fixup a list of potentially relative pathnames so
+# that they work when used in a subdirectory. The
+# string sent to stdout has no extraneous spaces so
+# it can be used, for example, in building pathnames.
+#
+# NB: There's an extra echo done here so we get a
+# \n-terminated string passed to sed.
+#
+relativize()
+{
+ echo `if [ $SRCDIR_IS_LIBTIFF = no ]; then
+ (for i do
+ case "$i" in
+ /*|-l*) echo "$i" ;;
+ -[LR]) ;; # XXX???
+ -[LR]/*) echo "$i" ;;
+ -L*) echo "$i" | sed 's;^-L;-L../;' ;;
+ -R*) echo "$i" | sed 's;^-R;-R../;' ;;
+ *) echo "../$i" ;;
+ esac
+ done) | tr '\012' ' '
+ else
+ echo "$@"
+ fi` | sed -e 's;[ ][ ]*$;;' -e 's;/[.]$;;'
+}
+#
+# Generate a list of compiler include options,
+# prepending ``../'' to any relative pathnames.
+#
+makeIncArgs()
+{
+ (for i do
+ case "$i" in
+ /*) echo "-I$i" ;;
+ *)
+ if [ $SRCDIR_IS_LIBTIFF = yes ]; then
+ echo "-I$i"
+ else
+ echo "-I../$i"
+ fi ;;
+ esac
+ done) | tr '\012' ' '
+}
+
+#
+# Setup parameters needed below.
+#
+if [ $SRCDIR_IS_LIBTIFF = yes ]; then
+ CONFIGDIR="."
+ LIBSRCDIR="${SRCDIR}"
+else
+ CONFIGDIR=".."
+ LIBSRCDIR=`relativize ${SRCDIR}`/libtiff
+fi
+
+# NB: these should be sorted alphabetically
+cat>>confsed<<EOF
+/@AR@/s;;${AR};g
+/@ALPHAFILE@/s;;`relativize ${ALPHAFILE}`;g
+/@AROPTS@/s;;${AROPTS};g
+/@CONFIGDIR@/s;;${CONFIGDIR};g
+/@CCOMPILER@/s;;${CCOMPILER};g
+/@CHMOD@/s;;${CHMOD};g
+/@CONF_JPEG@/s;;${CONF_JPEG};g
+/@CONF_ZIP@/s;;${CONF_ZIP};g
+/@COPT_LIBINC@/s;;`makeIncArgs ${DIRS_LIBINC}`;g
+/@DATE@/s;;${DATE};g
+/@DEPEND_JPEGLIB@/s;;${CONF_JPEG:+`findHeader jpeglib.h` `findHeader jerror.h`};g
+/@DEPEND_ZLIB@/s;;${CONF_ZIP:+`findHeader zlib.h`};g
+/@DIR_BIN@/s;;${DIR_BIN};g
+/@DIR_JPEGLIB@/s;;`relativize ${DIR_JPEGLIB}`;g
+/@DIR_GZLIB@/s;;`relativize ${DIR_GZLIB}`;g
+/@DIR_HTML@/s;;${DIR_HTML};g
+/@DIR_INC@/s;;${DIR_INC};g
+/@DIR_LIB@/s;;${DIR_LIB};g
+/@DIR_MAN@/s;;${DIR_MAN};g
+/@DIRS_LIBINC@/s;;`relativize ${DIRS_LIBINC}`;g
+/@DIST_ALPHA@/s;;${DIST_ALPHA};g
+/@DIST_MAJOR@/s;;${DIST_MAJOR};g
+/@DIST_MINOR@/s;;${DIST_MINOR};g
+/@DIST_TYPE@/s;;${DIST_TYPE};g
+/@DSO@/s;;${DSO};g
+/@DSOSUF@/s;;${DSOSUF};g
+/@DSOSUF_VERSION@/s;;${DSOSUF_VERSION};g
+/@ENVOPTS@/s;;${ENVOPTS};g
+/@FILLORDER@/s;;${FILLORDER};g
+/@GCOPTS@/s;;${GCOPTS};g
+/@HTML@/s;;${HTML};g
+/@INSTALL@/s;;${INSTALL};g
+/@LIBJPEG@/s;;`relativize ${LIBJPEG}`;g
+/@LIBGL@/s;;${LIBGL};g
+/@LIBGZ@/s;;`relativize ${LIBGZ}`;g
+/@LIBSRCDIR@/s;;${LIBSRCDIR};g
+/@LIBIMAGE@/s;;${LIBIMAGE};g
+/@LIBCOPTS@/s;;${LIBCOPTS};g
+/@LIBPORT@/s;;${LIBPORT};g
+/@LN@/s;;${LN};g
+/@LN_S@/s;;${LN_S};g
+/@MACHDEPLIBS@/s;;${MACHDEPLIBS};g
+/@MANAPPS@/s;;${MANAPPS};g
+/@MANAPPNAME@/s;;${MANAPPNAME};g
+/@MANLIBNAME@/s;;${MANLIBNAME};g
+/@MANCVT@/s;;${MANCVT};g
+/@MANSEDLOCAL@/s;;${MANSEDLOCAL};g
+/@MANLIB@/s;;${MANLIB};g
+/@MV_F@/s;;${MV_F};g
+/@PORT@/s;;${PORT};g
+/@PORTFUNCS@/s;;${PORTFUNCS};g
+/@RANLIB@/s;;${RANLIB};g
+/@SCRIPT_SH@/s;;${SCRIPT_SH};g
+/@SED@/s;;${SED};g
+/@SETMAKE@/s;;${SETMAKE};g
+/@SRCDIR@/s;;${SRCDIR};g
+/@RELSRCDIR@/s;;`relativize ${SRCDIR}`;g
+/@STRIP@/s;;${STRIP};g
+/@TARGET@/s;;${TARGET};g
+/@TIFFLIBREF@/s;;${TIFFLIBREF};g
+/@VERSION@/s;;${VERSION};g
+/@VERSIONFILE@/s;;`relativize ${VERSIONFILE}`;g
+/@WARNING@/s;;Warning, this file was automatically created by the TIFF configure script;g
+EOF
+
+SedConfigFiles()
+{
+ for F do
+ test -f $SRCDIR/$F.in || {
+ bitch "$SRCDIR/$F.in is missing; this should be part of the distribution."
+ boom
+ }
+ dir=`echo $F | $SED 's;/[^/]*$;;'`
+ if [ $dir != $F ] && [ ! -d $dir ]; then
+ Note "Creating $dir directory"
+ mkdir $dir
+ fi
+ suffix=`echo $F | $SED 's/.*\.//'`
+ if [ "$suffix" = h ]; then
+ #
+ # Compare old and new versions so that include files
+ # are only updated when something has changed--this
+ # saves time for subsequent makes. Note we screen
+ # out use of @DATE@ 'cuz otherwise that'll mess up
+ # the comparison (this assumes dates are used in lines
+ # of the form DATE: @DATE@).
+ #
+ $RM $F.new; $SED -f confsed $SRCDIR/$F.in > $F.new
+ $RM confx; $SED '/DATE:/d' $F.new >confx
+ $RM confy; $SED '/DATE:/d' $F >confy 2>/dev/null
+ if cmp -s confx confy >/dev/null 2>&1; then
+ $RM $F.new
+ else
+ Note "Creating $F from $SRCDIR/$F.in"
+ $RM $F; mv $F.new $F; $CHMOD 444 $F
+ fi
+ else
+ Note "Creating $F from $SRCDIR/$F.in"
+ if $SED -f confsed $SRCDIR/$F.in >$F.new; then
+ $RM $F; mv $F.new $F; $CHMOD 444 $F
+ else
+ cat 1>&2 <<EOF
+Help, there was a problem crafting $F from $F.in.
+The command:
+
+ $SED -f confsed $SRCDIR/$F.in >$F.new
+
+failed. Aborting without cleaning up files so you can take a look...
+EOF
+ exit 1
+ fi
+ fi
+ done
+}
+
+#
+# port/install.sh is the SGI install program emulator script.
+#
+CONF_FILES="Makefile"
+if [ $SRCDIR_IS_LIBTIFF != yes ] ; then
+ CONF_FILES="$CONF_FILES
+ libtiff/Makefile
+ man/Makefile
+ tools/Makefile
+ port/install.sh
+ "
+ test $HTML = yes && CONF_FILES="$CONF_FILES html/Makefile"
+ test $PORT = yes && CONF_FILES="$CONF_FILES port/Makefile"
+fi
+SedConfigFiles $CONF_FILES
+
+Note "Done."
+
+$RM $JUNK
+exit 0