summaryrefslogtreecommitdiffstats
path: root/configure
blob: ae0d0badb5084073770194e54ea6428a0acd702f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#! /bin/sh

CC="gcc"
CXX="g++"
CCFLAGS="$CCFLAGS -Wall -g"
OPTIM="$OPTIM -O3 -funroll-loops"
LINKLIBS="-lz"

# 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"
    ;;

  *)
    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

# 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 ;
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."