summaryrefslogtreecommitdiff
path: root/acprep
blob: 2a8cd1d93b542c17e5fac3713ff39b850b37b26c (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
99
100
101
102
103
#!/bin/sh

PYTHON_HOME="/Library/Frameworks/Python.framework/Versions/2.5"

# acprep, version 3.0
#
# This script configures my ledger source tree on my Mac OS/X machine.
# This is not necessary, however, since I keep all the files necessary
# for building checked in to the source tree.  Users can just type
# './configure && make'.  This script simply sets up the compiler and
# linker flags for all the various build permutations I use for
# testing and profiling.

if which glibtoolize > /dev/null 2>&1; then
    glibtoolize --automake -f -c
else
    libtoolize --automake -f -c
fi

aclocal
autoheader
automake -a -c -f
autoconf


INCDIRS="-I/usr/local/include"
INCDIRS="$INCDIRS -I/usr/local/include/boost"
INCDIRS="$INCDIRS -I/sw/include"
INCDIRS="$INCDIRS -I/usr/include/httpd/xml"

LIBDIRS="-L/usr/local/lib"
LIBDIRS="$LIBDIRS -L/sw/lib"

SYSTEM=`uname -s`

if [ $SYSTEM = Linux ]; then
    CXXFLAGS="-pthread"
elif [ $SYSTEM = Solaris ]; then
    CXXFLAGS="-pthreads"
elif [ $SYSTEM = Darwin ]; then
    #CXXFLAGS="-arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
    CXXFLAGS="$CXXFLAGS -Wno-long-double"
    #LIBDIRS="$LIBDIRS -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
else
    CXXFLAGS=""
fi

WARNFLAGS="-Wall -Wextra -Wfloat-equal -Wno-endif-labels -Wshadow"
WARNFLAGS="$WARNFLAGS -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion"
WARNFLAGS="$WARNFLAGS -Wconversion -Wshorten-64-to-32 -Wsign-compare"
WARNFLAGS="$WARNFLAGS -Wmissing-field-initializers -Wmissing-noreturn"
WARNFLAGS="$WARNFLAGS -pedantic-errors"

# Building the command-line tool as a shared library is a luxury,
# since there are no clients except a GUI tool which might use it (and
# that is built again anyway by Xcode).
SWITCHES="--disable-shared"


while [ -n "$1" ]; do
  case "$1" in
    --debug)
	SWITCHES="$SWITCHES --enable-debug"
	CXXFLAGS="$CXXFLAGS -ggdb3" ;;

    --prof | --perf)
        CXXFLAGS="$CXXFLAGS -g -pg" ;;

    --python)
	if [ -d "$PYTHON_HOME" ]; then
	    SWITCHES="$SWITCHES --enable-python"
	    INCDIRS="$INCDIRS -I$PYTHON_HOME/include/python2.5"
	    LIBDIRS="$LIBDIRS -L$PYTHON_HOME/lib/python2.5/config"
	fi ;;

    --opt)
	CXXFLAGS="$CXXFLAGS -fomit-frame-pointer -O3 -fPIC" ;;
    --flat-opt)
	CXXFLAGS="$CXXFLAGS -fomit-frame-pointer -O3" ;;
    --safe-opt)
	CXXFLAGS="$CXXFLAGS -fomit-frame-pointer -O3 -fPIC -DDEBUG_LEVEL=1" ;;

    *)
	break ;;
  esac
  shift 1
done


HERE="$PWD"

if [ -d "$HOME/Products" ]; then
    projdir="$HOME/Products/$(basename $HERE)"
    if [ ! -d "$projdir" ]; then
	mkdir -p "$projdir"
    fi
    cd "$projdir" || (echo "Cannot change to $projdir"; exit 1)
fi

"$HERE/configure" --srcdir="$HERE" \
    EMACS="$HOME/bin/emacs" EMACSLOADPATH="$EMACSLOADPATH" \
    CPPFLAGS="$INCDIRS" CXXFLAGS="$CXXFLAGS $local_cxxflags" \
    WARNFLAGS="$WARNFLAGS" LDFLAGS="$LIBDIRS" $SWITCHES "$@"