#! /bin/sh CC="gcc" CXX="g++" CCFLAGS="$CCFLAGS -Wall -g" OPTIM="$OPTIM -O3 -funroll-loops" LINKLIBS="-lz" 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" ;; 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 "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 [[ $1 = "--release" ]] || [[ $2 = "--release" ]] then SNAPSHOT=0 else SNAPSHOT=1 fi # We fought the law and the law won if [[ $1 = "--libdvdcss" ]] || [[ $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 "To build HandBrake, run:" echo " './jam' on a Mac (or 'make' to try the UB build method)," echo " 'jam' on Linux or Windows."