232 lines
7.4 KiB
Bash
232 lines
7.4 KiB
Bash
#! /bin/sh
|
|
# configure script for Lzip - LZMA lossless data compressor
|
|
# Copyright (C) 2008-2024 Antonio Diaz Diaz.
|
|
#
|
|
# This configure script is free software: you have unlimited permission
|
|
# to copy, distribute, and modify it.
|
|
|
|
pkgname=lzip
|
|
pkgversion=1.24
|
|
progname=lzip
|
|
srctrigger=doc/${pkgname}.texi
|
|
|
|
# clear some things potentially inherited from environment.
|
|
LC_ALL=C
|
|
export LC_ALL
|
|
srcdir=
|
|
prefix=/usr/local
|
|
exec_prefix='$(prefix)'
|
|
bindir='$(exec_prefix)/bin'
|
|
datarootdir='$(prefix)/share'
|
|
infodir='$(datarootdir)/info'
|
|
mandir='$(datarootdir)/man'
|
|
build=no
|
|
check=no
|
|
installdir=
|
|
CXX=g++
|
|
CPPFLAGS=
|
|
CXXFLAGS='-Wall -W -O2'
|
|
LDFLAGS=
|
|
MAKEINFO=makeinfo
|
|
|
|
# checking whether we are using GNU C++.
|
|
/bin/sh -c "${CXX} --version" > /dev/null 2>&1 || { CXX=c++ ; CXXFLAGS=-O2 ; }
|
|
|
|
# Loop over all args
|
|
args=
|
|
no_create=
|
|
while [ $# != 0 ] ; do
|
|
|
|
# Get the first arg, and shuffle
|
|
option=$1 ; arg2=no
|
|
shift
|
|
|
|
# Add the argument quoted to args
|
|
if [ -z "${args}" ] ; then args="\"${option}\""
|
|
else args="${args} \"${option}\"" ; fi
|
|
|
|
# Split out the argument for options that take them
|
|
case ${option} in
|
|
*=*) optarg=`echo "${option}" | sed -e 's,^[^=]*=,,;s,/$,,'` ;;
|
|
esac
|
|
|
|
# Process the options
|
|
case ${option} in
|
|
--help | -h)
|
|
echo "Usage: $0 [OPTION]... [VAR=VALUE]..."
|
|
echo
|
|
echo "To assign makefile variables (e.g., CXX, CXXFLAGS...), specify them as"
|
|
echo "arguments to configure in the form VAR=VALUE."
|
|
echo
|
|
echo "Options and variables: [defaults in brackets]"
|
|
echo " -h, --help display this help and exit"
|
|
echo " -V, --version output version information and exit"
|
|
echo " --srcdir=DIR find the source code in DIR [. or ..]"
|
|
echo " --prefix=DIR install into DIR [${prefix}]"
|
|
echo " --exec-prefix=DIR base directory for arch-dependent files [${exec_prefix}]"
|
|
echo " --bindir=DIR user executables directory [${bindir}]"
|
|
echo " --datarootdir=DIR base directory for doc and data [${datarootdir}]"
|
|
echo " --infodir=DIR info files directory [${infodir}]"
|
|
echo " --mandir=DIR man pages directory [${mandir}]"
|
|
echo " --build build in one step without using 'make'"
|
|
echo " --check check without using 'make', implies --build"
|
|
echo " --installdir=BINDIR install without using 'make', implies --build"
|
|
echo " CXX=COMPILER C++ compiler to use [${CXX}]"
|
|
echo " CPPFLAGS=OPTIONS command-line options for the preprocessor [${CPPFLAGS}]"
|
|
echo " CXXFLAGS=OPTIONS command-line options for the C++ compiler [${CXXFLAGS}]"
|
|
echo " CXXFLAGS+=OPTIONS append options to the current value of CXXFLAGS"
|
|
echo " LDFLAGS=OPTIONS command-line options for the linker [${LDFLAGS}]"
|
|
echo " MAKEINFO=NAME makeinfo program to use [${MAKEINFO}]"
|
|
echo
|
|
exit 0 ;;
|
|
--version | -V)
|
|
echo "Configure script for ${pkgname} version ${pkgversion}"
|
|
exit 0 ;;
|
|
--srcdir) srcdir=$1 ; arg2=yes ;;
|
|
--prefix) prefix=$1 ; arg2=yes ;;
|
|
--exec-prefix) exec_prefix=$1 ; arg2=yes ;;
|
|
--bindir) bindir=$1 ; arg2=yes ;;
|
|
--datarootdir) datarootdir=$1 ; arg2=yes ;;
|
|
--infodir) infodir=$1 ; arg2=yes ;;
|
|
--mandir) mandir=$1 ; arg2=yes ;;
|
|
--installdir) installdir=$1 ; arg2=yes ;;
|
|
|
|
--srcdir=*) srcdir=${optarg} ;;
|
|
--prefix=*) prefix=${optarg} ;;
|
|
--exec-prefix=*) exec_prefix=${optarg} ;;
|
|
--bindir=*) bindir=${optarg} ;;
|
|
--datarootdir=*) datarootdir=${optarg} ;;
|
|
--infodir=*) infodir=${optarg} ;;
|
|
--mandir=*) mandir=${optarg} ;;
|
|
--build) build=yes ;;
|
|
--check) check=yes ; build=yes ;;
|
|
--installdir=*) installdir=${optarg} ; build=yes ;;
|
|
--no-create) no_create=yes ;;
|
|
|
|
CXX=*) CXX=${optarg} ;;
|
|
CPPFLAGS=*) CPPFLAGS=${optarg} ;;
|
|
CXXFLAGS=*) CXXFLAGS=${optarg} ;;
|
|
CXXFLAGS+=*) CXXFLAGS="${CXXFLAGS} ${optarg}" ;;
|
|
LDFLAGS=*) LDFLAGS=${optarg} ;;
|
|
MAKEINFO=*) MAKEINFO=${optarg} ;;
|
|
|
|
--*)
|
|
echo "configure: WARNING: unrecognized option: '${option}'" 1>&2 ;;
|
|
*=* | *-*-*) ;;
|
|
*)
|
|
echo "configure: unrecognized option: '${option}'" 1>&2
|
|
echo "Try 'configure --help' for more information." 1>&2
|
|
exit 1 ;;
|
|
esac
|
|
|
|
# Check if the option took a separate argument
|
|
if [ "${arg2}" = yes ] ; then
|
|
if [ $# != 0 ] ; then args="${args} \"$1\"" ; shift
|
|
else echo "configure: Missing argument to '${option}'" 1>&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Find the source code, if location was not specified.
|
|
srcdirtext=
|
|
if [ -z "${srcdir}" ] ; then
|
|
srcdirtext="or . or .." ; srcdir=.
|
|
if [ ! -r "${srcdir}/${srctrigger}" ] ; then srcdir=.. ; fi
|
|
if [ ! -r "${srcdir}/${srctrigger}" ] ; then
|
|
## the sed command below emulates the dirname command
|
|
srcdir=`echo "$0" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
|
fi
|
|
fi
|
|
|
|
if [ ! -r "${srcdir}/${srctrigger}" ] ; then
|
|
echo "configure: Can't find source code in ${srcdir} ${srcdirtext}" 1>&2
|
|
echo "configure: (At least ${srctrigger} is missing)." 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# Set srcdir to . if that's what it is.
|
|
if [ "`pwd`" = "`cd "${srcdir}" ; pwd`" ] ; then srcdir=. ; fi
|
|
|
|
if [ "${build}" = yes ] ; then
|
|
objs=$(sed -e :a -e '/\\$/N; s/\\\n//; ta' "${srcdir}/Makefile.in" | \
|
|
sed -n -e 's/^ *objs *= *//p' | sed -e 's/ \{2,\}/ /g')
|
|
for ofile in ${objs} ; do
|
|
file="${ofile%.o}.cc" ; pver=
|
|
[ "${ofile}" = main.o ] && pver=" -DPROGVERSION=\"${pkgversion}\""
|
|
compile_command="${CXX} ${CPPFLAGS} ${CXXFLAGS}${pver} -c -o ${ofile}"
|
|
echo "${compile_command} ${srcdir}/${file}"
|
|
${compile_command} "${srcdir}/${file}" || exit 1
|
|
done
|
|
link_command="${CXX} ${LDFLAGS} ${CXXFLAGS} -o ${progname} ${objs}"
|
|
echo "${link_command}" ; ${link_command} || exit 1
|
|
if [ "${check}" = yes ] ; then
|
|
"${srcdir}/testsuite/check.sh" "${srcdir}/testsuite" ${pkgversion} || exit 1
|
|
fi
|
|
if [ -n "${installdir}" ] ; then
|
|
echo "installing ${progname} in ${installdir}"
|
|
[ -d "${installdir}" ] || mkdir -p "${installdir}" || exit 1
|
|
cp -fp ${progname} "${installdir}/${progname}" || exit 1
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
echo
|
|
if [ -z "${no_create}" ] ; then
|
|
echo "creating config.status"
|
|
rm -f config.status
|
|
cat > config.status << EOF
|
|
#! /bin/sh
|
|
# This file was generated automatically by configure. Don't edit.
|
|
# Run this file to recreate the current configuration.
|
|
#
|
|
# This script is free software: you have unlimited permission
|
|
# to copy, distribute, and modify it.
|
|
|
|
exec /bin/sh "$0" ${args} --no-create
|
|
EOF
|
|
chmod +x config.status
|
|
fi
|
|
|
|
echo "creating Makefile"
|
|
echo "VPATH = ${srcdir}"
|
|
echo "prefix = ${prefix}"
|
|
echo "exec_prefix = ${exec_prefix}"
|
|
echo "bindir = ${bindir}"
|
|
echo "datarootdir = ${datarootdir}"
|
|
echo "infodir = ${infodir}"
|
|
echo "mandir = ${mandir}"
|
|
echo "CXX = ${CXX}"
|
|
echo "CPPFLAGS = ${CPPFLAGS}"
|
|
echo "CXXFLAGS = ${CXXFLAGS}"
|
|
echo "LDFLAGS = ${LDFLAGS}"
|
|
echo "MAKEINFO = ${MAKEINFO}"
|
|
rm -f Makefile
|
|
cat > Makefile << EOF
|
|
# Makefile for Lzip - LZMA lossless data compressor
|
|
# Copyright (C) 2008-2024 Antonio Diaz Diaz.
|
|
# This file was generated automatically by configure. Don't edit.
|
|
#
|
|
# This Makefile is free software: you have unlimited permission
|
|
# to copy, distribute, and modify it.
|
|
|
|
pkgname = ${pkgname}
|
|
pkgversion = ${pkgversion}
|
|
progname = ${progname}
|
|
VPATH = ${srcdir}
|
|
prefix = ${prefix}
|
|
exec_prefix = ${exec_prefix}
|
|
bindir = ${bindir}
|
|
datarootdir = ${datarootdir}
|
|
infodir = ${infodir}
|
|
mandir = ${mandir}
|
|
CXX = ${CXX}
|
|
CPPFLAGS = ${CPPFLAGS}
|
|
CXXFLAGS = ${CXXFLAGS}
|
|
LDFLAGS = ${LDFLAGS}
|
|
MAKEINFO = ${MAKEINFO}
|
|
EOF
|
|
cat "${srcdir}/Makefile.in" >> Makefile
|
|
|
|
echo "OK. Now you can run make."
|