123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427 |
- #!/bin/sh
- # Copyright (C) 2008-2017 Cosmin Truta.
- #
- # This software is distributed under the zlib license.
- # Please see the accompanying LICENSE file.
- trap "rm -f conftest* core a.out; exit 1" 1 2 3 15
- LC_ALL=C
- export LC_ALL
- LANGUAGE=C
- export LANGUAGE
- prefix="${prefix-/usr/local}"
- exec_prefix="${exec_prefix-\$(prefix)}"
- bindir="${bindir-\$(exec_prefix)/bin}"
- mandir="${mandir-\$(prefix)/man}"
- man1dir="${man1dir-\$(mandir)/man1}"
- cc="${CC-gcc}"
- #cc="${CC-clang}"
- #cc="${CC-cc}"
- cflags="$CFLAGS"
- enable_debug=0
- with_system_libpng=0
- with_system_zlib=0
- with_preconfigured_libpng=1
- with_preconfigured_zlib=0
- unique_file=src/optipng/optipng.c
- for arg in "$@"
- do
- case "$arg" in
- -- )
- option="$arg"
- ;;
- --* )
- option=`expr "X$arg" : 'X-\(.*\)'`
- ;;
- * )
- option="$arg"
- ;;
- esac
- case "$arg" in
- *=* )
- optarg=`expr "X$arg" : 'X[^=]*=\(.*\)'`
- ;;
- * )
- optarg=""
- ;;
- esac
- case "$option" in
- -help | -hel | -he | -h )
- echo "Usage:"
- echo " $0 [options]"
- echo "Options:"
- echo " -h, -help Show this help"
- echo "Installation directories:"
- echo " -prefix=PREFIX Install architecture-independent files in PREFIX"
- echo " [default: $prefix]"
- echo " -exec-prefix=EPREFIX Install architecture-dependent files in EPREFIX"
- echo " [default: PREFIX]"
- echo " -bindir=DIR Install executable in DIR [default: EPREFIX/bin]"
- echo " -mandir=DIR Install manual in DIR [default: PREFIX/man]"
- echo "Optional features:"
- echo " -enable-debug Enable debug build flags and run-time checks"
- echo "Optional packages:"
- echo " -with-system-libs Use all system-supplied libraries (details below)"
- echo " -with-system-libpng Use the system-supplied libpng"
- echo " [default: false]"
- echo " -with-system-zlib Use the system-supplied zlib"
- echo " [default: with-system-libpng]"
- echo "Environment variables:"
- echo " CC C compiler command"
- echo " LD Linker command"
- echo " AR Library archiver command"
- echo " RANLIB Library indexer/randomizer command"
- echo " CFLAGS C compiler flags (e.g. -O3)"
- echo " CPPFLAGS C preprocessor flags (e.g. -I DIR)"
- echo " LDFLAGS Linker flags (e.g. -L DIR)"
- echo " ARFLAGS Library archiver flags (e.g. rcu)"
- echo " LIBS Additional libraries (e.g. -lfoo)"
- exit 0
- ;;
- -prefix | -prefi | -pref | -pre | -pr | -p )
- prefix="$2"
- shift
- ;;
- -prefix=* | -prefi=* | -pref=* | -pre=* | -pr=* | -p=* )
- prefix="$optarg"
- ;;
- -exec-prefix | -exec_prefix | -exec-prefi | -exec_prefi \
- | -exec-pref | -exec_pref | -exec-pre | -exec_pre \
- | -exec-pr | -exec_pr | -exec-p | -exec_p | exec- | -exec_ \
- | -exec | -exe | -ex | -e )
- exec_prefix="$2"
- shift
- ;;
- -exec-prefix=* | -exec_prefix=* | -exec-prefi=* | -exec_prefi=* \
- | -exec-pref=* | -exec_pref=* | -exec-pre=* | -exec_pre=* \
- | -exec-pr=* | -exec_pr=* | -exec-p=* | -exec_p=* | exec-=* | -exec_=* \
- | -exec=* | -exe=* | -ex=* | -e=* )
- exec_prefix="$optarg"
- ;;
- -bindir | -bindi | -bind | -bin | -bi | -b )
- bindir="$2"
- shift
- ;;
- -bindir=* | -bindi=* | -bind=* | -bin=* | -bi=* | -b=* )
- bindir="$optarg"
- ;;
- -mandir | -mandi | -mand | -man | -ma | -m )
- mandir="$2"
- shift
- ;;
- -mandir=* | -mandi=* | -mand=* | -man=* | -ma=* | -m=* )
- mandir="$optarg"
- ;;
- -enable-debug )
- enable_debug=1
- ;;
- -disable-debug )
- enable_debug=0
- ;;
- -with-system-libs )
- with_system_libpng=1
- with_system_zlib=1
- ;;
- -without-system-libs )
- with_system_zlib=0
- with_system_libpng=0
- ;;
- -with-system-libpng )
- with_system_libpng=1
- # Must use the system-supplied zlib with the system-supplied libpng.
- with_system_zlib=1
- ;;
- -without-system-libpng )
- with_system_libpng=0
- ;;
- -with-system-zlib )
- with_system_zlib=1
- ;;
- -without-system-zlib )
- with_system_zlib=0
- # Can't use the system-supplied libpng without the system-supplied zlib.
- with_system_libpng=0
- ;;
- * )
- echo "$0: error: unknown option: $arg"
- echo "Type \"$0 -help\" for help"
- exit 64 # EX_USAGE
- ;;
- esac
- done
- if test ! -f "$0"
- then
- echo "$0: error: cannot find myself; rerun with an absolute file name"
- exit 1
- fi
- if test ! -r "$unique_file"
- then
- echo "$0: error: cannot find: $unique_file"
- echo "$0: note: building outside the source directory tree is not supported"
- exit 1
- fi
- test=conftest$$
- cat > $test.c <<EOM
- int hello() { return 42; }
- EOM
- gccish=0
- case "$cc" in
- *gcc* | *clang* )
- echo "Checking for $cc..."
- if ($cc -c $cflags $test.c) 2>/dev/null
- then
- gccish=1
- fi
- ;;
- esac
- rm -f $test.c $test.o
- if test "$gccish" -ne 0
- then
- CC="${CC-$cc}"
- CFLAGS="${CFLAGS--O2 -Wall -Wextra}"
- else
- CC="${CC-cc}"
- CFLAGS="${CFLAGS--O}"
- fi
- if test "$enable_debug" -ne 0
- then
- CPPFLAGS="$CPPFLAGS -DDEBUG -D_DEBUG -DPNGX_DEBUG"
- CFLAGS="$CFLAGS -g"
- LDFLAGS="$LDFLAGS -g"
- fi
- if test "$with_system_libpng" -ne 0
- then
- USE_SYSTEM_LIBPNG_TRUE=""
- USE_SYSTEM_LIBPNG_FALSE="#"
- echo "Checking for system libpng..."
- test=conftest$$
- cat > $test.c <<EOM
- #include <png.h>
- #if PNG_LIBPNG_VER < 10209
- #error This program requires libpng version 1.2.9 or higher
- #endif
- int dummy;
- EOM
- ($CC -c $CPPFLAGS $CFLAGS $test.c) 2>/dev/null
- status=$?
- rm -f $test.c $test.o
- if test $status -ne 0
- then
- echo "$0: error: missing libpng or incorrect libpng version"
- echo "$0: note: libpng version 1.2.9 or higher is required"
- exit 1
- fi
- else
- USE_SYSTEM_LIBPNG_TRUE="#"
- USE_SYSTEM_LIBPNG_FALSE=""
- if test "$with_preconfigured_libpng" -ne 0
- then
- echo "Using pre-configured libpng..."
- libpng_preconfig_makefile=scripts/makefile.gcc
- if test ! -f "src/libpng/$libpng_preconfig_makefile"
- then
- echo "$0: warning: cannot find: src/libpng/$libpng_preconfig_makefile"
- with_preconfigured_libpng=0
- fi
- fi
- if test "$with_preconfigured_libpng" -ne 0
- then
- sed_preconfig_libpng=""
- if test "$CC"
- then
- sed_preconfig_libpng="
- $sed_preconfig_libpng
- s|^CC *=.*|CC = $CC|
- "
- fi
- if test "$CFLAGS"
- then
- sed_preconfig_libpng="
- $sed_preconfig_libpng
- s|^CFLAGS *=.*|CFLAGS = $CFLAGS|
- "
- fi
- if test "$CPPFLAGS"
- then
- sed_preconfig_libpng="
- $sed_preconfig_libpng
- s|^CPPFLAGS *=.*|CPPFLAGS = $CPPFLAGS|
- "
- fi
- if test "$LD"
- then
- sed_preconfig_libpng="
- $sed_preconfig_libpng
- s|^LD *=.*|LD = $LD|
- "
- fi
- if test "$LDFLAGS"
- then
- sed_preconfig_libpng="
- $sed_preconfig_libpng
- s|^LDFLAGS *=.*|LDFLAGS = $LDFLAGS|
- "
- fi
- if test "$AR$ARFLAGS"
- then
- AR="${AR-ar}"
- ARFLAGS="${ARFLAGS-cru}"
- sed_preconfig_libpng="
- $sed_preconfig_libpng
- s|^AR *=.*|AR = $AR|
- s|^ARFLAGS *=.*|ARFLAGS = $ARFLAGS|
- s|^AR_\([A-Z]*\) *=.*|AR_\1 = $AR $ARFLAGS|
- "
- fi
- if test "$RANLIB"
- then
- sed_preconfig_libpng="
- $sed_preconfig_libpng
- s|^RANLIB *=.*|RANLIB = $RANLIB|
- "
- fi
- sed "$sed_preconfig_libpng" \
- src/libpng/$libpng_preconfig_makefile > src/libpng/Makefile
- LIBPNG_MK=Makefile
- # The pre-configured makefiles in libpng don't do distclean.
- LIBPNG_DISTCLEAN="clean"
- LIBPNG_DISTCLEAN_XCMD="\$(RM_F) \$(LIBPNG_MK)"
- else
- echo "Configuring libpng..."
- (cd src/libpng && ./configure)
- if test $? -ne 0
- then
- echo "$0: error: could not configure: libpng"
- exit 1
- fi
- fi
- fi
- if test "$with_system_zlib" -ne 0
- then
- USE_SYSTEM_ZLIB_TRUE=""
- USE_SYSTEM_ZLIB_FALSE="#"
- echo "Checking for system zlib..."
- test=conftest$$
- cat > $test.c <<EOM
- #include <zlib.h>
- #if ZLIB_VERNUM < 0x1210
- #error This program requires zlib version 1.2.1 or higher.
- #endif
- int dummy;
- EOM
- ($CC -c $CPPFLAGS $CFLAGS $test.c) 2>/dev/null
- status=$?
- rm -f $test.c $test.o
- if test $status -ne 0
- then
- echo "$0: error: missing zlib or incorrect zlib version"
- echo "$0: note: zlib version 1.2.1 or higher is required"
- exit 1
- fi
- else
- USE_SYSTEM_ZLIB_TRUE="#"
- USE_SYSTEM_ZLIB_FALSE=""
- case `(uname -s) 2>/dev/null || echo unknown` in
- mingw* | MINGW* | windows* | WINDOWS* )
- with_preconfigured_zlib=1
- ZLIB_MK=win32/Makefile.gcc
- # This pre-configured makefile doesn't do distclean.
- ZLIB_DISTCLEAN=clean
- ;;
- *djgpp | *DJGPP | *dos | *DOS )
- with_preconfigured_zlib=1
- ZLIB_MK=msdos/Makefile.dj2
- # This pre-configured makefile doesn't do distclean.
- ZLIB_DISTCLEAN=clean
- ;;
- * )
- with_preconfigured_zlib=0
- ZLIB_MK=Makefile
- ZLIB_DISTCLEAN=distclean
- esac
- if test "$with_preconfigured_zlib" -ne 0
- then
- echo "Using pre-configured zlib..."
- if test ! -f "src/zlib/$ZLIB_MK"
- then
- echo "$0: error: cannot find: src/zlib/$ZLIB_MK"
- exit 1
- fi
- else
- echo "Configuring zlib..."
- (cd src/zlib && ./configure --static)
- if test $? -ne 0
- then
- echo "$0: error: could not configure: zlib"
- exit 1
- fi
- fi
- fi
- sed_config="
- s|@prefix@|$prefix|g
- s|@exec_prefix@|$exec_prefix|g
- s|@bindir@|$bindir|g
- s|@mandir@|$mandir|g
- s|@man1dir@|$man1dir|g
- s|@USE_SYSTEM_LIBPNG_FALSE@|$USE_SYSTEM_LIBPNG_FALSE|g
- s|@USE_SYSTEM_LIBPNG_TRUE@|$USE_SYSTEM_LIBPNG_TRUE|g
- s|@USE_SYSTEM_ZLIB_FALSE@|$USE_SYSTEM_ZLIB_FALSE|g
- s|@USE_SYSTEM_ZLIB_TRUE@|$USE_SYSTEM_ZLIB_TRUE|g
- s|@CC@|${CC-cc}|g
- s|@CFLAGS@|${CFLAGS--O}|g
- s|@CPP@|${CPP-\$(CC) -E}|g
- s|@CPPFLAGS@|${CPPFLAGS-}|g
- s|@LD@|${LD-\$(CC)}|g
- s|@LDFLAGS@|${LDFLAGS--s}|g
- s|@AR@|${AR-ar}|g
- s|@ARFLAGS@|${ARFLAGS-cru}|g
- s|@RANLIB@|${RANLIB-ranlib}|g
- s|@CP_FP@|${CP_FP-cp -f -p}|g
- s|@MKDIR_P@|${MKDIR_P-mkdir -p}|g
- s|@RM_F@|${RM_F-rm -f}|g
- s|@LIBM@|${LIBM--lm}|g
- s|@LIBPNG@|${LIBPNG--lpng}|g
- s|@LIBS@|${LIBS-}|g
- s|@LIBZ@|${LIBZ--lz}|g
- s|@LIBPNG_DISTCLEAN@|${LIBPNG_DISTCLEAN-distclean}|g
- s|@LIBPNG_DISTCLEAN_XCMD@|${LIBPNG_DISTCLEAN_XCMD-true}|g
- s|@LIBPNG_MK@|${LIBPNG_MK-Makefile}|g
- s|@LIBPNG_MK_DEF@|${LIBPNG_MK_DEF-PNGLIBCONF_H_PREBUILT=pnglibconf.h.optipng}|g
- s|@ZLIB_DISTCLEAN@|${ZLIB_DISTCLEAN-distclean}|g
- s|@ZLIB_MK@|${ZLIB_MK-Makefile}|g
- s|@[A-Z]*_MK@|Makefile|g
- s| *\$||
- "
- for makefile in \
- ./Makefile \
- src/Makefile \
- src/gifread/Makefile \
- src/minitiff/Makefile \
- src/opngreduc/Makefile \
- src/optipng/Makefile \
- src/optipng/man/Makefile \
- src/pngxtern/Makefile \
- src/pnmio/Makefile
- do
- sed "$sed_config" $makefile.in > $makefile
- done
|