1999-07-27 17:50:26 -04:00
|
|
|
#!/bin/sh
|
2001-06-22 17:20:08 -04:00
|
|
|
# $Header: /cvs/maptools/cvsroot/libtiff/configure,v 1.18 2001-06-22 21:20:08 warmerda Exp $
|
1999-07-27 17:50:26 -04:00
|
|
|
#
|
|
|
|
# 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.
|
|
|
|
#
|
2000-11-22 09:41:35 -05:00
|
|
|
PREFIX=/usr/local # root of installation
|
|
|
|
EPREFIX=${PREFIX}
|
1999-07-27 17:50:26 -04:00
|
|
|
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
|
|
|
|
: ${CC=} # name of C compiler to use
|
|
|
|
: ${CCOMPILER=} # full pathname of C compiler
|
2001-03-29 20:55:32 -05:00
|
|
|
: ${OPTIMIZER=-O} # Optimization flag
|
1999-07-27 17:50:26 -04:00
|
|
|
: ${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
|
2000-11-22 09:41:35 -05:00
|
|
|
--prefix=PREFIX root of installation [PREFIX=/usr/local]
|
|
|
|
--exec-prefix=EPREFIX root of installation [EPREFIX=PREFIX]
|
1999-07-27 17:50:26 -04:00
|
|
|
--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";;
|
2000-11-22 09:41:35 -05:00
|
|
|
--exec-prefix) ac_prev=EPREFIX;;
|
|
|
|
--exec-prefix=*) EPREFIX="$ac_optarg" ;;
|
|
|
|
--prefix) ac_prev=PREFIX;;
|
|
|
|
--prefix=*) PREFIX="$ac_optarg";
|
|
|
|
EPREFIX=${PREFIX} ;;
|
1999-07-27 17:50:26 -04:00
|
|
|
-target|--target) ac_prev=TARGET;;
|
|
|
|
-target=*|--target=*) TARGET="$ac_optarg" ;;
|
|
|
|
-version|--version)
|
2001-06-22 17:20:08 -04:00
|
|
|
echo "This is TIFF configure $Revision: 1.18 $"
|
1999-07-27 17:50:26 -04:00
|
|
|
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
|
|
|
|
|
2000-11-22 09:41:35 -05:00
|
|
|
DIR_BIN=${EPREFIX}/bin # destination for applications
|
|
|
|
DIR_LIB=${EPREFIX}/lib # destination for library
|
|
|
|
DIR_INC=${PREFIX}/include # destination for include files
|
|
|
|
DIR_HTML=${PREFIX}/doc/libtiff # destination for HTML files
|
|
|
|
|
1999-07-27 17:50:26 -04:00
|
|
|
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
|
|
|
|
|
2000-11-24 01:28:10 -05:00
|
|
|
VERSIONFILE=$SRCDIR/VERSION
|
1999-07-27 17:50:26 -04:00
|
|
|
DATE=`date`
|
|
|
|
|
2000-12-22 17:33:41 -05:00
|
|
|
eval `cat $VERSIONFILE | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\(.*\)/DIST_MAJOR=\1; DIST_MINOR=\2; DIST_POINT=\3/'`
|
2000-11-24 01:28:10 -05:00
|
|
|
VERSION="v${DIST_MAJOR}.${DIST_MINOR}.${DIST_POINT}"
|
1999-07-27 17:50:26 -04:00
|
|
|
|
2000-12-22 17:33:41 -05:00
|
|
|
RELEASE=`cat $VERSIONFILE | sed -e 's/[0-9 \.]//g'`
|
1999-07-27 17:50:26 -04:00
|
|
|
Note()
|
|
|
|
{
|
|
|
|
echo "$@" 1>&4
|
|
|
|
}
|
|
|
|
|
|
|
|
Note ""
|
|
|
|
if [ $SRCDIR_IS_LIBTIFF = yes ] ; then
|
2000-12-22 17:33:41 -05:00
|
|
|
Note "Configuring TIFF Software (library only) $VERSION"
|
1999-07-27 17:50:26 -04:00
|
|
|
else
|
2000-12-22 17:33:41 -05:00
|
|
|
Note "Configuring TIFF Software $VERSION"
|
1999-07-27 17:50:26 -04:00
|
|
|
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";;
|
2001-04-03 01:17:02 -04:00
|
|
|
no-*-hp*) C_ANSI="-D_HPUX_SOURCE";;
|
1999-07-27 17:50:26 -04:00
|
|
|
no-*-apollo-*) C_ANSI="-A nansi";;
|
2001-06-22 17:20:08 -04:00
|
|
|
no-*-aix*) C_ANSI="-Dunix -qlanglvl=ansi -qsrcmsg -qmaxmem=8192";;
|
1999-07-27 17:50:26 -04:00
|
|
|
*-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
|
2001-04-02 23:51:57 -04:00
|
|
|
if $CCOMPILER $ENVOPTS -c -g $OPTIMIZER dummy.c >t 2>&1 && CheckForGandO t; then
|
1999-07-27 17:50:26 -04:00
|
|
|
GCOPTS="-g"
|
|
|
|
else
|
2001-04-02 23:51:57 -04:00
|
|
|
Note "... but not together with the $OPTIMIZER option, not using it."
|
1999-07-27 17:50:26 -04:00
|
|
|
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
|
|
|
|
|
2001-04-05 22:53:24 -04:00
|
|
|
# Find sh (likely /bin/sh or /usr/bin/sh), and put in SCRIPT_SH
|
|
|
|
|
|
|
|
test -z "${SCRIPT_SH-}" && SCRIPT_SH=`findAppDef sh $PATH sh`
|
|
|
|
|
1999-07-27 17:50:26 -04:00
|
|
|
#
|
|
|
|
# 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
|
2001-04-05 22:53:24 -04:00
|
|
|
if (sed "s;@SHELL@;$SCRIPT_SH;" <<'EOF'
|
|
|
|
SHELL=@SHELL@
|
1999-07-27 17:50:26 -04:00
|
|
|
all:
|
|
|
|
@if [ -n "${MAKE}" ] ; then echo "make sets make" ; fi
|
|
|
|
EOF
|
2001-05-11 23:11:59 -04:00
|
|
|
) | $MAKE -f - | grep "make sets make" > /dev/null ; then
|
1999-07-27 17:50:26 -04:00
|
|
|
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
|
2000-12-22 17:33:41 -05:00
|
|
|
echo ' * RELEASE: ' $RELEASE
|
1999-07-27 17:50:26 -04:00
|
|
|
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}"
|
|
|
|
}
|
|
|
|
|
2001-04-02 23:51:57 -04:00
|
|
|
#
|
|
|
|
# Verify that we have -lm. Darwin (for instance) does not. Add to
|
|
|
|
# MACHDEPLIBS if required.
|
|
|
|
#
|
|
|
|
|
|
|
|
if [ -z "${MACHDEPLIBS-}" ]; then
|
|
|
|
MACHDEPLIBS=""
|
|
|
|
if ! CheckForFunc cos ; then
|
|
|
|
MACHDEPLIBS="-lm"
|
|
|
|
echo "Defaulting MACHDEPLIBS to -lm."
|
|
|
|
else
|
|
|
|
echo "Leaving MACHDEPLIBS empty, apparently you don't need -lm."
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
1999-07-27 17:50:26 -04:00
|
|
|
#
|
|
|
|
# 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);
|
|
|
|
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);
|
2001-05-09 22:14:16 -04:00
|
|
|
buf2 = mmap(0, i, PROT_READ|PROT_WRITE, MAP_VARIABLE|MAP_PRIVATE, fd, 0);
|
1999-07-27 17:50:26 -04:00
|
|
|
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}"
|
1999-09-08 08:32:18 -04:00
|
|
|
if [ $ISGCC = yes ]; then
|
|
|
|
LIBCOPTS="-fpic"
|
|
|
|
DSOOPTS='-shared -rdata_shared'
|
|
|
|
else
|
|
|
|
LIBCOPTS="-KPIC"
|
|
|
|
DSOOPTS='-shared -rdata_shared -check_registry ${SRCDIR}/port/irix/so_locations -quickstart_info'
|
|
|
|
fi
|
1999-07-27 17:50:26 -04:00
|
|
|
DSO=IRIX
|
|
|
|
TIFFLIBREF='-L${DEPTH}/libtiff -rpath '${DIR_LIB}' -ltiff'
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
*-aix*)
|
|
|
|
DSOSUF=a
|
|
|
|
DSOOPTS='-r'
|
|
|
|
LIBCOPTS="-bM\:SRE"
|
|
|
|
DSO=AIX
|
2001-06-22 17:20:08 -04:00
|
|
|
TIFFLIBREF='-L${DEPTH}/libtiff -ltiff'
|
1999-07-27 17:50:26 -04:00
|
|
|
;;
|
|
|
|
*-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
|
2001-04-03 01:17:02 -04:00
|
|
|
DSOSUF_VERSION=${DIST_MAJOR}.${DIST_MINOR}${DIST_POINT}
|
1999-07-27 17:50:26 -04:00
|
|
|
DSOOPTS='-b'
|
2001-04-03 01:17:02 -04:00
|
|
|
LIBCOPTS="+z"
|
1999-07-27 17:50:26 -04:00
|
|
|
DSO=HPUX
|
2001-04-03 01:17:02 -04:00
|
|
|
TIFFLIBREF='-L$(DEPTH)/libtiff -ltiff'
|
1999-07-27 17:50:26 -04:00
|
|
|
;;
|
|
|
|
*-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*)
|
2000-09-27 12:20:40 -04:00
|
|
|
DSOSUF=so.${DIST_MAJOR}
|
2000-11-24 01:28:10 -05:00
|
|
|
DSOSUF_VERSION=${DSOSUF}.${DIST_MINOR}.${DIST_POINT}
|
2000-09-27 12:20:40 -04:00
|
|
|
LIBCOPTS='-fPIC'
|
|
|
|
DSOOPTS='-shared'
|
|
|
|
DSO=GNULD
|
1999-07-27 17:50:26 -04:00
|
|
|
;;
|
2001-06-22 08:49:23 -04:00
|
|
|
*-darwin*)
|
|
|
|
DSOSUF=${DIST_MAJOR}.dylib
|
|
|
|
DSOSUF_VERSION=${DIST_MAJOR}.${DIST_MINOR}.${DIST_POINT}.dylib
|
|
|
|
LIBCOPTS='-fno-common'
|
|
|
|
DSOLD=gcc
|
|
|
|
DSOOPTS='-dynamiclib -undefined suppress'
|
|
|
|
DSO=DARWIN
|
|
|
|
;;
|
1999-07-27 17:50:26 -04:00
|
|
|
*-linux*)
|
2000-11-24 01:28:10 -05:00
|
|
|
DSOSUF=so.${DIST_MAJOR}
|
|
|
|
DSOSUF_VERSION=${DSOSUF}.${DIST_MINOR}.${DIST_POINT}
|
|
|
|
LIBCOPTS='-fPIC'
|
|
|
|
DSOOPTS='-shared'
|
|
|
|
DSO=GNULD
|
1999-07-27 17:50:26 -04:00
|
|
|
;;
|
1999-09-08 08:32:18 -04:00
|
|
|
*-osf3*|*-osf4*)
|
1999-07-27 17:50:26 -04:00
|
|
|
DSOSUF=so
|
|
|
|
DSOOPTS='-shared'
|
|
|
|
DSO=OSF
|
|
|
|
;;
|
2001-06-22 08:49:23 -04:00
|
|
|
|
1999-07-27 17:50:26 -04:00
|
|
|
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 "${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`;;
|
2001-04-05 22:53:24 -04:00
|
|
|
*) INSTALL='${SCRIPT_SH} ../port/install.sh';;
|
1999-07-27 17:50:26 -04:00
|
|
|
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
|
2000-11-22 09:41:35 -05:00
|
|
|
test -z "$DIR_MAN" && DIR_MAN=${PREFIX}/man
|
1999-07-27 17:50:26 -04:00
|
|
|
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;;
|
2001-04-03 01:17:02 -04:00
|
|
|
*-hpux*) MANSCHEME=sysv-source-cat;;
|
1999-07-27 17:50:26 -04:00
|
|
|
*-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
|
2000-03-20 13:20:42 -05:00
|
|
|
s;@AR@;${AR};g
|
|
|
|
s;@AROPTS@;${AROPTS};g
|
|
|
|
s;@CONFIGDIR@;${CONFIGDIR};g
|
|
|
|
s;@CCOMPILER@;${CCOMPILER};g
|
|
|
|
s;@CHMOD@;${CHMOD};g
|
|
|
|
s;@CONF_JPEG@;${CONF_JPEG};g
|
|
|
|
s;@CONF_ZIP@;${CONF_ZIP};g
|
|
|
|
s;@COPT_LIBINC@;`makeIncArgs ${DIRS_LIBINC}`;g
|
|
|
|
s;@DATE@;${DATE};g
|
|
|
|
s;@DEPEND_JPEGLIB@;${CONF_JPEG:+`findHeader jpeglib.h` `findHeader jerror.h`};g
|
|
|
|
s;@DEPEND_ZLIB@;${CONF_ZIP:+`findHeader zlib.h`};g
|
|
|
|
s;@DIR_BIN@;${DIR_BIN};g
|
|
|
|
s;@DIR_JPEGLIB@;`relativize ${DIR_JPEGLIB}`;g
|
|
|
|
s;@DIR_GZLIB@;`relativize ${DIR_GZLIB}`;g
|
|
|
|
s;@DIR_HTML@;${DIR_HTML};g
|
|
|
|
s;@DIR_INC@;${DIR_INC};g
|
|
|
|
s;@DIR_LIB@;${DIR_LIB};g
|
|
|
|
s;@DIR_MAN@;${DIR_MAN};g
|
|
|
|
s;@DIRS_LIBINC@;`relativize ${DIRS_LIBINC}`;g
|
2000-11-24 01:28:10 -05:00
|
|
|
s;@DIST_POINT@;${DIST_POINT};g
|
2000-03-20 13:20:42 -05:00
|
|
|
s;@DIST_MAJOR@;${DIST_MAJOR};g
|
|
|
|
s;@DIST_MINOR@;${DIST_MINOR};g
|
|
|
|
s;@DSO@;${DSO};g
|
|
|
|
s;@DSOSUF@;${DSOSUF};g
|
|
|
|
s;@DSOSUF_VERSION@;${DSOSUF_VERSION};g
|
|
|
|
s;@ENVOPTS@;${ENVOPTS};g
|
|
|
|
s;@FILLORDER@;${FILLORDER};g
|
|
|
|
s;@GCOPTS@;${GCOPTS};g
|
|
|
|
s;@HTML@;${HTML};g
|
|
|
|
s;@INSTALL@;${INSTALL};g
|
|
|
|
s;@LIBJPEG@;`relativize ${LIBJPEG}`;g
|
|
|
|
s;@LIBGL@;${LIBGL};g
|
|
|
|
s;@LIBGZ@;`relativize ${LIBGZ}`;g
|
|
|
|
s;@LIBSRCDIR@;${LIBSRCDIR};g
|
|
|
|
s;@LIBIMAGE@;${LIBIMAGE};g
|
|
|
|
s;@LIBCOPTS@;${LIBCOPTS};g
|
|
|
|
s;@LIBPORT@;${LIBPORT};g
|
|
|
|
s;@LN@;${LN};g
|
|
|
|
s;@LN_S@;${LN_S};g
|
|
|
|
s;@MACHDEPLIBS@;${MACHDEPLIBS};g
|
|
|
|
s;@MANAPPS@;${MANAPPS};g
|
|
|
|
s;@MANAPPNAME@;${MANAPPNAME};g
|
|
|
|
s;@MANLIBNAME@;${MANLIBNAME};g
|
|
|
|
s;@MANCVT@;${MANCVT};g
|
|
|
|
s;@MANSEDLOCAL@;${MANSEDLOCAL};g
|
|
|
|
s;@MANLIB@;${MANLIB};g
|
|
|
|
s;@MV_F@;${MV_F};g
|
2001-03-29 20:55:32 -05:00
|
|
|
s;@OPTIMIZER@;${OPTIMIZER};g
|
2000-03-20 13:20:42 -05:00
|
|
|
s;@PORT@;${PORT};g
|
|
|
|
s;@PORTFUNCS@;${PORTFUNCS};g
|
|
|
|
s;@RANLIB@;${RANLIB};g
|
|
|
|
s;@SCRIPT_SH@;${SCRIPT_SH};g
|
|
|
|
s;@SED@;${SED};g
|
|
|
|
s;@SETMAKE@;${SETMAKE};g
|
|
|
|
s;@SRCDIR@;${SRCDIR};g
|
|
|
|
s;@RELSRCDIR@;`relativize ${SRCDIR}`;g
|
|
|
|
s;@STRIP@;${STRIP};g
|
|
|
|
s;@TARGET@;${TARGET};g
|
|
|
|
s;@TIFFLIBREF@;${TIFFLIBREF};g
|
|
|
|
s;@VERSION@;${VERSION};g
|
2000-12-22 17:33:41 -05:00
|
|
|
s;@RELEASE@;${RELEASE};g
|
2000-03-20 13:20:42 -05:00
|
|
|
s;@VERSIONFILE@;`relativize ${VERSIONFILE}`;g
|
|
|
|
s;@WARNING@;Warning, this file was automatically created by the TIFF configure script;g
|
1999-07-27 17:50:26 -04:00
|
|
|
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
|