#! /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 "* Mac and Linux:" 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" echo echo "* Windows:" echo echo " Be sure to always run configure (this script) before building." echo " Then, run:" echo " 'jam'" echo echo "To make jam, boil fruit with sugar and an acid until pectins are released." echo