Split DBUS_SESSION_BUS_DEFAULT_ADDRESS into listen, connect addresses and set better...
[platform/upstream/dbus.git] / cmake / cross-compile.sh
1 #!/bin/sh
2 #
3 #  cross compile script for cmake
4
5 # initial written by Fridrich Strba
6 # refactored to debian/lenny by Ralf Habacker
7 #
8 #  reported to work at least on debian/lenny 
9
10
11 if test -f /usr/bin/i686-pc-mingw32-gcc; then
12     cross_cc=i686-pc-mingw32
13 elif test -f /usr/bin/i586-mingw32msvc-gcc; then
14     cross_cc=i586-mingw32msvc
15 else
16     echo "could not determine mingw cross compiler"
17     exit 1
18 fi
19
20 if test -d ~/$cross_cc; then
21     cross_root=~/$cross_cc
22 elif test -d /usr/$cross_cc/sys-root/mingw; then
23     cross_root=/usr/$cross_cc/sys-root/mingw
24 elif test -d /usr/$cross_cc/lib; then
25     cross_root=/usr/$cross_cc
26 else
27     echo "could not determine mingw cross compiler sdk"
28     exit 1
29 fi
30
31 if ! TEMP=`mktemp --tmpdir -d dbus-cross-compile.XXXXXX`; then
32     echo "mktemp failed, try with coreutils 6.10 or later?" >&2
33     exit 1
34 fi
35
36 # make cmake happy 
37 export TEMP
38
39 HOST_CC=gcc; export HOST_CC;
40
41 if test -d $cross_root/lib/pkgconfig; then 
42     PKG_CONFIG_PATH="$cross_root/lib/pkgconfig:$cross_root/share/pkgconfig"; export PKG_CONFIG_PATH;
43 fi 
44
45 if test -d "$MINGW32_CLASSPATH" ||  test -f "$cross_root/share/java/libgcj.jar";  then 
46     CLASSPATH="$CLASSPATH:${MINGW32_CLASSPATH:-$cross_root/share/java/libgcj.jar:$cross_root/share/java/libgcj-tools.jar}"; export CLASSPATH;
47 fi
48
49 _PREFIX="/usr/bin/$cross_cc-";
50 for i in `ls -1 ${_PREFIX}* | grep -v 'gcc-'`; do
51     x=`echo $i|sed "s,${_PREFIX},,"|sed "s,\.awk*,,"|tr "a-z+-" "A-ZX_"`;
52     declare -x $x="$i" ; export $x;
53 done;
54 unset _PREFIX;
55
56 CC="${MINGW32_CC:-$cross_cc-gcc}"; export CC;
57 CFLAGS="${MINGW32_CFLAGS:--O2 -g -pipe -Wall -fexceptions -fno-omit-frame-pointer -fno-optimize-sibling-calls --param=ssp-buffer-size=4 -mms-bitfields}"; export CFLAGS;
58 LDFLAGS="${MINGW32_LDFLAGS:--Wl,--exclude-libs=libintl.a -Wl,--exclude-libs=libiconv.a}"; export LDFLAGS;
59
60 if [ -x "/usr/bin/$cross_cc-g++" ]; then
61     CXX="${MINGW32_CXX:-$cross_cc-g++}"; export CXX;
62     CXXFLAGS="${MINGW32_CXXFLAGS:--O2 -g -pipe -Wall -fexceptions -fno-omit-frame-pointer -fno-optimize-sibling-calls --param=ssp-buffer-size=4 -mms-bitfields}"; export CXXFLAGS;
63 else
64     CXX=; export CXX;
65     ac_cv_prog_CXX=no; export ac_cv_prog_CXX;
66     CXXFLAGS=; export CXXFLAGS;
67 fi;
68 for i in `ls $cross_root/bin/*|grep -- "-config$"` ; do
69     x=`basename $i|tr "a-z+-" "A-ZX_"|sed "s,\.,,"`;
70     declare -x $x="$i" ; export $x;
71 done;
72 unset x i ;
73
74 if ! test -f "$cross_root/lib/libexpat.dll.a"; then
75     (cd $TEMP && wget http://www.winkde.org/pub/kde/ports/win32/repository/win32libs/expat-2.0.1-bin.zip)
76     (cd $TEMP && wget http://www.winkde.org/pub/kde/ports/win32/repository/win32libs/expat-2.0.1-lib.zip)
77     (cd $cross_root && unzip -x $TMP/expat-2.0.1-bin.zip)
78     (cd $cross_root && unzip -x $TMP/expat-2.0.1-lib.zip)
79 fi 
80
81 if test -f "$cross_root/lib/libexpat.dll.a"; then
82     xml_library=-DDBUS_USE_EXPAT=On -DLIBEXPAT_INCLUDE_DIR:PATH=$cross_root/include -DLIBEXPAT_LIBRARIES:PATH=$cross_root/lib/libexpat.dll.a 
83 else
84     echo "could not find a cross compile xml libraray"
85     exit 1
86 fi
87
88 cmake \
89     -DCMAKE_SYSTEM_NAME="Windows" \
90     -DCMAKE_VERBOSE_MAKEFILE=ON \
91     -DCMAKE_INSTALL_PREFIX:PATH=$cross_root \
92     -DCMAKE_INSTALL_LIBDIR:PATH=$cross_root/lib \
93     -DINCLUDE_INSTALL_DIR:PATH=$cross_root/include \
94     -DLIB_INSTALL_DIR:PATH=$cross_root/lib \
95     -DSYSCONF_INSTALL_DIR:PATH=$cross_root/etc \
96     -DSHARE_INSTALL_PREFIX:PATH=$cross_root/share \
97     -DBUILD_SHARED_LIBS:BOOL=ON \
98     -DCMAKE_C_COMPILER="/usr/bin/$cross_cc-gcc" \
99     -DCMAKE_CXX_COMPILER="/usr/bin/$cross_cc-g++" \
100     -DCMAKE_FIND_ROOT_PATH="$cross_root" \
101     -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
102     -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
103     -DCMAKE_CXX_COMPILER="/usr/bin/$cross_cc-g++" \
104     -DCMAKE_FIND_ROOT_PATH="$cross_root" \
105     -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
106     -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
107     $xml_library \
108     -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
109     $*
110