summaryrefslogtreecommitdiff
path: root/src/configure
diff options
context:
space:
mode:
authorXavier Roche <xroche@users.noreply.github.com>2012-03-19 12:36:11 +0000
committerXavier Roche <xroche@users.noreply.github.com>2012-03-19 12:36:11 +0000
commitad5b7acc19290ff91e0f42a0de448a26760fcf99 (patch)
tree2d1867758835fd0c4e443ff3cc7e5c774af85874 /src/configure
Imported httrack 3.20.2
Diffstat (limited to 'src/configure')
-rwxr-xr-xsrc/configure603
1 files changed, 603 insertions, 0 deletions
diff --git a/src/configure b/src/configure
new file mode 100755
index 0000000..7c2d472
--- /dev/null
+++ b/src/configure
@@ -0,0 +1,603 @@
+#!/bin/sh
+# No, this isn't generated by autoconf
+# Some parts are inspired by autoconf (Free Software Foundation), however
+# And the idea is slightly the same
+
+# Usage:
+# './configure' and then 'make' and 'make install', or
+# './configure --make --install'
+
+SHELL=/bin/sh
+
+ac_prev=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ case "$ac_option" in
+
+ --pthread | --thread) THREADS=1 ;;
+ --nopthread | --nothread) THREADS=0 ;;
+
+ --zlib | --gzip) ZLIB=1 ;;
+ --nozlib | --nogzip) ZLIB=0 ;;
+
+ --static | --noso) DYNAMIC=0
+ ;;
+ --dynamic | --so) DYNAMIC=1
+ ;;
+
+ --longlong) LONGLONG=1 ;;
+ --nolonglong) LONGLONG=0 ;;
+
+ --inaddrt) NODECLINADDRT=0 ;;
+ --noinaddrt) NODECLINADDRT=1 ;;
+
+ --ipv6) IPV6=1 ;;
+ --noipv6) IPV6=0 ;;
+
+ --ssl) SSL=1 ;;
+ --https) SSL=1 ;;
+ --nossl) SSL=0 ;;
+ --nohttps) SSL=0 ;;
+
+ --useuid) NOUID=0 ;;
+ --nouseuid) NOUID=1 ;;
+
+ --useftime) NOFTIME=0 ;;
+ --nouseftime) NOFTIME=1 ;;
+
+ --system=*) SYSTEMTYPE="$ac_optarg" ;;
+ --system) ac_prev=SYSTEMTYPE ;;
+
+ --debug) OTYPE="-O0 -g3"
+ MKTYPE="firstinfo htssystem htssystem_auto build_auto strip clean lastinfo" ;;
+
+ --make) DOMAKE=1 ;;
+ --install) DOINSTALL=1 ;;
+ --bininstall) DOINSTALL=1
+ NODOCINSTALL=1
+ ;;
+ --docinstall) DOINSTALL=1
+ DOCINSTALL=1
+ ;;
+ --cls)
+ cd ..
+ chmod 'u=rw,go=r' `find ./ -type f`
+ chmod 'u=rwx,go=rx' `find ./ -type d`
+ chmod 'u=rwx,go=rx' ./src/configure
+ chmod 'u=rwx,go=rx' ./src/strip_cr.in
+ chmod 'u=rwx,go=rx' ./src/postinst-config.in
+ cd src
+ strip_cr *.c *.h
+ rm -f ./httrack 2>/dev/null
+ exit
+ ;;
+ -prefix | --prefix | --prefi | --pref | --pre | --pr)
+ ac_prev=PREFIX ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=*)
+ PREFIX="$ac_optarg" ;;
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=BINPATH ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ BINPATH="$ac_optarg" ;;
+ -etcdir | --etcdir | --etcdi | --etcd | --etc | --et)
+ ac_prev=ETCPATH ;;
+ -etcdir=* | --etcdir=* | --etcdi=* | --etcd=* | --etc=* | --et=*)
+ ETCPATH="$ac_optarg" ;;
+ -libdir | --libdir | --libdi | --libd | --lib | --li)
+ ac_prev=LIBPATH ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=* | --lib=* | --li=*)
+ LIBPATH="$ac_optarg" ;;
+
+ --help)
+ cat <<EOF
+--prefix=.. : prefix (/usr)
+--bindir=.. : binary dir (/usr/bin)
+--etcdir=.. : config dir (/usr/etc or /etc)
+--libdir=.. : library dir (/usr/lib)
+--dynamic : do use dynamic (.so) mode
+--static : do use static mode
+--nopthread : do not use threads (pthread.h)
+--pthread : do use threads (pthread.h)
+--noipv6 : do not use ipv6 extensions
+--ipv6 : do use ipv6 extensions
+--nohttps : do not use SSL extensions
+--https : do use SSL extensions
+--nozlib : do not use compression (zlib)
+--zlib : do use compression (zlib)
+--nolonglong : do not use 64-bit int
+--longlong : do use 64-bit int
+--noinaddrt : do not redeclare in_addr_t
+--inaddrt : do redeclare in_addr_t
+--nouseuid : do not use setuid()/setgid()
+--useuid : do use setuid()/setgid()
+--nouseftime : do not use ftime()
+--useftime : do use ftime()
+--system=<type> : override system type (uname) - NOT RECOMMENDED! (types: 'Default','Linux','SunOS','AIX')
+--make : 'make' after configure
+--install : 'make install' after configure
+--bininstall : 'make bininstall' after configure
+--docinstall : 'make docinstall' after configure
+--debug : add debug information (for gdb)
+EOF
+ exit
+ ;;
+
+ *) echo "Unrecognized option: $ac_option"
+ exit
+ ;;
+
+ esac
+
+done
+
+echo "Welcome to HTTrack Website Copier!"
+echo "Type in ./configure --help for more details"
+echo "If this script fails, you can enter supplemental options through '--option=value'"
+echo "or enter in manual make, through 'make help'"
+echo ""
+
+if cp -f Makefile.in Makefile; then
+
+SEDEXEC=
+
+# System (OS) type?
+printf "Checking for OS type.. "
+if test -z "$SYSTEMTYPE"; then
+ SYSTEMTYPE="`uname`"
+fi
+case "$SYSTEMTYPE" in
+ SunOS) printf "SunOS/Solaris\n";
+ PLATFORM=0
+ SOLSOCK=1
+ ;;
+ AIX) printf "AIX\n"; PLATFORM=2 ;;
+ *) printf "Linux type\n"; PLATFORM=3 ;;
+esac
+
+WTYPE="-Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wnested-externs"
+
+if test -z "$OTYPE"; then
+ OTYPE="-O3"
+fi
+if test -z "$MKTYPE"; then
+ MKTYPE="firstinfo htssystem htssystem_auto build_auto strip clean lastinfo"
+fi
+
+# Root group
+if test -z "$ROOTGROUP"; then
+ printf "Checking for 'root' group.."
+ if egrep "^root:" /etc/group >/dev/null; then
+ ROOTGROUP="root"
+ elif egrep "^wheel:" /etc/group >/dev/null; then
+ ROOTGROUP="wheel"
+ fi
+ printf "$ROOTGROUP\n"
+else
+ echo "Overriding ROOTGROUP=$ROOTGROUP"
+fi
+
+
+# Binaries location
+if test -z "$BINPATH"; then
+printf "Checking for bin directory.. "
+if test -n "$PREFIX"; then
+ BINPATH="$PREFIX/bin"
+elif test -d "/usr/bin"; then
+ BINPATH="/usr/bin"
+else
+ BINPATH="/bin"
+fi
+printf "$BINPATH\n"
+else
+ echo "Overriding BINPATH=$BINPATH"
+fi
+
+# shlib?
+if test -d "/usr/shlib"; then
+SYSLIB=/usr/shlib
+else
+SYSLIB=/usr/lib
+fi
+
+# /etc location
+if test -z "$ETCPATH"; then
+printf "Checking for etc directory.. "
+if test -n "$PREFIX"; then
+ ETCPATH="$PREFIX/etc"
+elif test -d "/usr/etc"; then
+ ETCPATH="/usr/etc"
+else
+ ETCPATH="/etc"
+fi
+printf "$ETCPATH\n"
+else
+ echo "Overriding ETCPATH=$ETCPATH"
+fi
+
+# /usr/lib location
+if test -z "$LIBPATH"; then
+printf "Checking for lib directory.. "
+if test -n "$PREFIX"; then
+ LIBPATH="$PREFIX/lib"
+elif test -d "/usr/lib"; then
+ LIBPATH="/usr/lib"
+elif test -d "/usr/local/lib"; then
+ LIBPATH="/usr/local/lib"
+else
+ LIBPATH="/lib"
+fi
+printf "$LIBPATH\n"
+else
+ echo "Overriding LIBPATH=$LIBPATH"
+fi
+
+# Prefix location
+if test -z "$PREFIX"; then
+ printf "Checking for prefix directory.. "
+ PREFIX="/usr"
+ printf "$PREFIX\n"
+else
+ echo "Overriding PREFIX=$PREFIX"
+fi
+
+
+# 64-bit (long long) cause some troubles to some processors
+# because some alignements aren't properly defined
+# we only accept 64-bit on tested processors here
+if test -z "$LONGLONG"; then
+printf "Checking for long long.. "
+LONGLONG=
+if grep "long long" /usr/include/sys/types.h >/dev/null; then
+if uname -a|egrep ' i[3-9]86 ' >/dev/null; then
+ LONGLONG=1
+fi
+fi
+if test -n "$LONGLONG"; then
+ printf "supported\n"
+else
+ printf "not tested/supported. Use --LONGLONG=1 to override\n"
+fi
+else
+ echo "Overriding LONGLONG=$LONGLONG"
+fi
+
+# IPV6?
+# NOT TESTED FOR OTHER PLATFORMS.. FIXME!
+if test -z "$IPV6"; then
+printf "Checking for ipv6 support.. "
+if test -f "/usr/include/linux/in6.h" -o -f "/usr/local/include/linux/in6.h"; then
+IPV6=1
+else
+IPV6=0
+fi
+if test "$IPV6" -eq 1; then
+printf "supported\n"
+else
+printf "not supported\n"
+fi
+else
+ echo "Overriding IPV6=$IPV6"
+fi
+if test "$IPV6" -eq 1; then
+IPTYPE="-DINET6"
+LIPTYPE=""
+else
+IPTYPE=
+LIPTYPE=
+fi
+
+# HTTPS?
+# NOT TESTED FOR OTHER PLATFORMS.. FIXME!
+if test -z "$SSL"; then
+printf "Checking for SSL support.. "
+if test -f "/usr/include/openssl/ssl.h" -o -f "/usr/local/include/openssl/ssl.h"; then
+SSL=1
+else
+SSL=0
+fi
+if test "$SSL" -eq 1; then
+printf "supported\n"
+else
+printf "not supported\n"
+fi
+else
+ echo "Overriding SSL=$SSL"
+fi
+if test "$SSL" -eq 1; then
+SSTYPE="-lssl -lcrypto"
+else
+SSTYPE=
+fi
+
+# Alignement
+if test -z "$PTRALIGN"; then
+printf "Checking for pointer alignements.. "
+PTRALIGN=
+if test `uname -p` = "alpha" -o `uname -p` = "sparc"; then
+PTRALIGN=8
+else
+PTRALIGN=4
+fi
+fi
+printf "$PTRALIGN\n"
+
+
+# Dynamic (.so) module?
+if test -z "$DYNAMIC"; then
+ DYNAMIC=1
+fi
+printf "Checking for compilation mode: "
+if test "$DYNAMIC" -eq "1"; then
+ echo "dynamic"
+ SOTYPE=-fPIC
+else
+ echo "static"
+ SOTYPE=
+fi
+
+# Do we not have to redeclare in_addr_t ?
+# Sometimes this type is defined, or not..
+if test -z "$NODECLINADDRT"; then
+printf "Checking for in_addr_t declaration in in.h.. "
+if grep -E "typedef .* in_addr_t" /usr/include/netinet/in.h >/dev/null || grep -E "typedef .* in_addr_t" /usr/include/sys/types.h; then
+ printf "found, do not redeclare\n"
+ NODECLINADDRT=1
+else
+ printf "not found, declaring\n"
+ NODECLINADDRT=
+fi
+else
+ echo "Overriding NODECLINADDRT=$NODECLINADDRT"
+fi
+
+# Test if we can use zlib (/usr/lib/libz.so)
+# This allow to speed up transfers using HTTP compression
+if test -z "$ZLIB"; then
+printf "Checking for ${SYSLIB}/libz.so.. "
+if test -f "${SYSLIB}/libz.so"; then
+ printf "found\n"
+ ZLIB=1
+else
+ printf "library not found (too bad), no http compression will be available\n"
+ ZLIB=0
+fi
+else
+ echo "Overriding ZLIB=$ZLIB"
+fi
+
+# Sometimes, pthread.h doesn't exists on some systems
+# This is sad, because it speeds up some useful things, like DNS or ftp
+if test -z "$THREADS"; then
+printf "Checking for /usr/include/pthread.h.. "
+if test -f "/usr/include/pthread.h" -o -f "/usr/local/include/pthread.h"; then
+if test -f "${SYSLIB}/libpthread.so"; then
+ printf "found\n"
+ THREADS=1
+else
+ printf "library not found (too bad), no threads will be available\n"
+ THREADS=
+fi
+else
+ printf "not found, no threads will be available\n"
+ THREADS=
+fi
+else
+ echo "Overriding THREADS=$THREADS"
+fi
+
+# Sometimes, setuid and setgid can't be used (missing pwd.h and unistd.h ?!)
+if test -z "$NOUID"; then
+NOUID=1
+printf "Checking for /usr/include/pwd.h and /usr/include/unistd.h.. "
+if test -f "/usr/include/pwd.h" -o "/usr/local/include/pwd.h"; then
+if test -f "/usr/include/unistd.h" -o -f "/usr/local/include/unistd.h" ; then
+ NOUID=
+fi
+fi
+if test -z "$NOUID"; then
+ printf "found\n"
+else
+ printf "not found, not using setuid() and setgid()\n"
+fi
+else
+ echo "Overriding NOUID=$NOUID"
+fi
+
+# Sometimes, ftime can't be used (missing declaration...)
+if test -z "$NOFTIME"; then
+NOFTIME=1
+printf "Checking for ftime in /usr/include/sys/timeb.h.. "
+if grep "int ftime" /usr/include/sys/timeb.h >/dev/null; then
+ NOFTIME=
+fi
+if test -z "$NOFTIME"; then
+ printf "found\n"
+else
+ printf "not found (too bad), not using ftime()\n"
+fi
+else
+ echo "Overriding NOFTIME=$NOFTIME"
+fi
+
+# Test variables
+if test "$NOUID" = 1; then
+ SEDEXEC="$SEDEXEC | sed -e 's/__DEFINEUID__/HTS_DO_NOT_USE_UID/'"
+fi
+if test "$NOFTIME" = 1; then
+ SEDEXEC="$SEDEXEC | sed -e 's/__DEFINEFTI__/HTS_DO_NOT_USE_FTIME/'"
+fi
+if test "$NODECLINADDRT" = 1; then
+ SEDEXEC="$SEDEXEC | sed -e 's/__DEFINEINA__/HTS_DO_NOT_REDEFINE_in_addr_t/'"
+fi
+if test "$THREADS" = 1; then
+THTYPE="-D_REENTRANT"
+LPTHTYPE="-lpthread"
+else
+THTYPE=
+LPTHTYPE=
+fi
+SEDEXEC="$SEDEXEC | sed -e \"s/__CFLAGS__/$SOTYPE $OTYPE $WTYPE $IPTYPE $THTYPE/g\""
+SEDEXEC="$SEDEXEC | sed -e \"s/__LFLAGS__/$LPTHTYPE $SSTYPE $LIPTYPE/g\""
+if test ! "$THREADS" = 1; then
+ SEDEXEC="$SEDEXEC | sed -e 's/__DEFINEPTH__/HTS_DO_NOT_USE_PTHREAD/'"
+fi
+if test "$ZLIB" = 1; then
+ SEDEXEC="$SEDEXEC | sed -e 's/__LFLAGS3__/-lz/g'"
+else
+ SEDEXEC="$SEDEXEC | sed -e 's/__LFLAGS3__//g'"
+fi
+SEDEXEC="$SEDEXEC | sed -e \"s/__ZLIB__/$ZLIB/\""
+if test "$SOLSOCK" = 1; then
+ SEDEXEC="$SEDEXEC | sed -e 's/__LFLAGS2__/-lnsl -lsocket/g'"
+else
+ SEDEXEC="$SEDEXEC | sed -e 's/__LFLAGS2__//g'"
+fi
+if test ! "$LONGLONG" = 1; then
+ SEDEXEC="$SEDEXEC | sed -e 's/__DEFINE64B__/HTS_NO_64_BIT/'"
+fi
+if test -n "$PTRALIGN"; then
+ SEDEXEC="$SEDEXEC | sed -e \"s/__PTRALIGN__/$PTRALIGN/g\""
+fi
+if test -n "$IPV6"; then
+ SEDEXEC="$SEDEXEC | sed -e \"s/__INET6__/$IPV6/g\""
+fi
+if test -n "$SSL"; then
+ SEDEXEC="$SEDEXEC | sed -e \"s/__SSL__/$SSL/g\""
+fi
+if test "$DYNAMIC" = 1; then
+ SEDEXEC="$SEDEXEC | sed -e 's/__DYNAMIC__/so/'"
+ SEDEXEC="$SEDEXEC | sed -e 's/__INSTALL__/bininstall libinstall docinstall/'"
+ SEDEXEC="$SEDEXEC | sed -e 's/__UNINSTALL__/binremove libremove docremove/'"
+ SEDEXEC="$SEDEXEC | sed -e 's/__STRIPLIB__/strip --strip-unneeded \\\$(BOUTPUTSO)/'"
+else
+ SEDEXEC="$SEDEXEC | sed -e 's/__DYNAMIC__//'"
+ SEDEXEC="$SEDEXEC | sed -e 's/__INSTALL__/bininstall docinstall/'"
+ SEDEXEC="$SEDEXEC | sed -e 's/__UNINSTALL__/binremove docremove/'"
+ SEDEXEC="$SEDEXEC | sed -e 's/__STRIPLIB__//'"
+fi
+
+SEDEXEC="$SEDEXEC | sed -e \"s/__PLATFORM__/$PLATFORM/g\""
+SEDEXEC="$SEDEXEC | sed -e 's/#__AUTONAME__/AUTONAME = auto/'"
+SEDEXEC="$SEDEXEC | sed -e 's/#define __DEFINE.*__//g'"
+
+# Paths
+TMP=`echo $BINPATH | sed -e 's/\\//\\\\\\//g'`
+SEDEXEC="$SEDEXEC | sed -e \"s/__BINPATH__/$TMP/g\""
+TMP=`echo $ETCPATH | sed -e 's/\\//\\\\\\//g'`
+SEDEXEC="$SEDEXEC | sed -e \"s/__ETCPATH__/$TMP/g\""
+TMP=`echo $LIBPATH | sed -e 's/\\//\\\\\\//g'`
+SEDEXEC="$SEDEXEC | sed -e \"s/__LIBPATH__/$TMP/g\""
+TMP=`echo $PREFIX | sed -e 's/\\//\\\\\\//g'`
+SEDEXEC="$SEDEXEC | sed -e \"s/__PREFIX__/$TMP/g\""
+TMP=`echo $ROOTGROUP | sed -e 's/\\//\\\\\\//g'`
+SEDEXEC="$SEDEXEC | sed -e \"s/__ROOTGROUP__/$TMP/g\""
+
+TMP=`echo $PREFIX | sed -e 's/\\//\\\\\\//g'`
+SEDEXEC="$SEDEXEC | sed -e \"s/__DEFINEPRE__/$TMP/g\""
+SEDEXEC="$SEDEXEC | sed -e 's/__MAKEAUTO__/$MKTYPE/'"
+
+# Search for gmake
+printf "Checking for make.. "
+MAKEPATH=
+if test -f "/usr/bin/gmake"; then
+MAKEPATH=/usr/bin/gmake
+else
+if test -f "/bin/gmake"; then
+MAKEPATH=/bin/gmake
+else
+if test -f "/usr/local/bin/gmake"; then
+MAKEPATH=/usr/local/bin/gmake
+fi
+fi
+fi
+if test -n "$MAKEPATH"; then
+printf "found $MAKEPATH\n"
+else
+MAKEPATH=make
+printf "not found, assume make will work\n"
+fi
+
+# Sed strip_cr
+EXCL='#!'
+printf "Checking for perl.. "
+PERLPATH=
+cp -f strip_cr.in strip_cr
+if test -f "/usr/bin/perl"; then
+PERLPATH=/usr/bin/perl
+else
+if test -f "/bin/perl"; then
+PERLPATH=/bin/perl
+else
+if test -f "/usr/local/bin/perl"; then
+PERLPATH=/usr/local/bin/perl
+fi
+fi
+fi
+if test -n "$PERLPATH"; then
+printf "found $PERLPATH\nEnsuring that *.c/*.h source files don't contains CR (^M).. "
+TMP=`echo $PERLPATH | sed -e 's/\\//\\\\\\//g'`
+cat strip_cr | sed -e "s/__PERL__/${EXCL}${TMP}/" > __tmp; mv __tmp strip_cr
+chmod 755 strip_cr
+./strip_cr *.c *.h
+printf "done\n"
+fi
+
+# Sed postinst-config
+cp -f postinst-config.in postinst-config
+CMD="cat postinst-config $SEDEXEC > __tmp; mv __tmp postinst-config"
+if eval $CMD; then
+chmod 755 postinst-config
+else
+echo "Error while seding postinst-config"
+exit 1
+fi
+
+# Sed all __VARS__
+CMD="cat Makefile $SEDEXEC > __tmp; mv __tmp Makefile"
+echo "Command: $CMD"
+if eval $CMD; then
+
+echo ""
+echo "Makefile created!"
+echo "Type in '$MAKEPATH' to build and '$MAKEPATH install' to install"
+
+if test -n "$DOMAKE"; then
+ echo "Making.."
+ eval $MAKEPATH clean
+ eval $MAKEPATH
+fi
+if test -n "$DOINSTALL"; then
+ if test -n "$NODOCINSTALL"; then
+ echo "Installing binary.."
+ eval $MAKEPATH bininstall
+ elif test -n "$DOCINSTALL"; then
+ echo "Installing docs.."
+ eval $MAKEPATH docinstall
+ else
+ echo "Installing.."
+ eval $MAKEPATH install
+ fi
+fi
+
+else
+ echo "Error while seding Makefile.."
+ exit 1
+fi
+
+else
+ echo "Error copying Makefile.in -> Makefile.. giving up"
+ exit 1
+fi
+