#! /bin/sh CC="gcc" CXX="g++" CCFLAGS="$CCFLAGS -Wall -g" OPTIM="$OPTIM -O3 -funroll-loops" LINKLIBS="-lz -lbz2" MAKE=make # System-specific flags SYSTEM=`uname -s` case $SYSTEM in BeOS) CCFLAGS="$CCFLAGS -Wno-multichar" DEFINES="$DEFINES SYS_BEOS" LINKLIBS="$LINKLIBS -lbe -ltracker" RELEASE=`uname -r` case $RELEASE in 6.0|5.0.4) # Zeta or R5 / BONE beta 7 SYSTEM="$SYSTEM / BONE" LINKLIBS="$LINKLIBS -lbind -lsocket" ;; 5.0*) # R5 / net_server SYSTEM="$SYSTEM / net_server" DEFINES="$DEFINES BEOS_NETSERVER" LINKLIBS="$LINKLIBS -lnet" ;; *) echo "Unsupported BeOS version" exit 1 ;; esac ;; Darwin) DEFINES="$DEFINES SYS_DARWIN USE_PTHREAD" LINKLIBS="$LINKLIBS -lpthread" ;; FreeBSD) DEFINES="$DEFINES SYS_FREEBSD USE_PTHREAD" LINKLIBS="$LINKLIBS -pthread" ;; NetBSD) DEFINES="$DEFINES SYS_NETBSD USE_PTHREAD" LINKLIBS="$LINKLIBS -lpthread" ;; Linux) DEFINES="$DEFINES SYS_LINUX USE_PTHREAD _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64" LINKLIBS="$LINKLIBS -lpthread -ldl" ;; CYGWIN*) DEFINES="$DEFINES SYS_CYGWIN USE_PTHREAD" LINKLIBS="$LINKLIBS -lpthread" ;; SunOS) DEFINES="$DEFINES SYS_SunOS USE_PTHREAD _LARGEFILE_SOURCE _FILE_OFFSET_BITS=64" LINKLIBS="$LINKLIBS -lpthread -lsocket -lnsl" ;; *) echo "Unsupported operating system" exit 1 ;; esac echo echo "System: $SYSTEM" # Check for endianness (we need to define WORDS_BIGENDIAN for libdvdread) cat > testconf.c << EOF int main() { int i = 1; return *( (char *) &i ); } EOF if ( $CC -o testconf testconf.c && ./testconf ) > /dev/null 2>&1 then echo "Endian: big" DEFINES="$DEFINES WORDS_BIGENDIAN" else echo "Endian: little" fi rm -f testconf.c testconf # # Use Gnu make when available over the built in make # if ( make --version | grep GNU ) > /dev/null 2>&1 then MAKE=make elif ( gmake --version | grep GNU ) > /dev/null 2>&1 then MAKE=gmake else MAKE=make fi # Unless the user wants a release build, configure for SVN snapshots if test "$1" = "--release" || test "$2" = "--release"; then SNAPSHOT=0 else SNAPSHOT=1 fi # We fought the law and the law won if test "$1" = "--libdvdcss" || test "$2" = "--libdvdcss"; then CSS=1 else CSS=0 fi # Generating the HB_BUILD and HB_VERSION for snapshots requires # the build date, working path, and current SVN revision. BUILD_DATE=`date +%Y%m%d` FULL_PATH=`pwd` SVN_REV=`svnversion` # Generate config.jam rm -f config.jam cat << EOF > config.jam CC = $CC ; C++ = $CXX ; LINK = $CXX ; CCFLAGS = $CCFLAGS ; C++FLAGS = $CCFLAGS ; OPTIM = $OPTIM ; DEFINES = $DEFINES ; LINKLIBS = $LINKLIBS ; MAKE = $MAKE ; SNAPSHOT = $SNAPSHOT ; BUILD_DATE = $BUILD_DATE ; FULL_PATH = $FULL_PATH ; SVN_REV = $SVN_REV ; CSS = $CSS ; EOF echo echo "Don't run configure by hand, make runs it automatically." echo echo "No, really. That's it. Just type 'make' and hit return." echo echo "You're supposed to be building with make, not jam." echo "If you were going to use jam--which you shouldn't--you'd run:" echo " './jam' on a Mac, or" echo " 'jam' on Linux or Windows" echo echo "To make jam, boil fruit with sugar and an acid until pectins are released." echo