blob: da33d5d07110d715ac265365d4c43837ff09033e [file] [log] [blame]
Peter Åstrandf0459172009-03-18 14:45:46 +00001#!/bin/bash
2# -*- mode: shell-script; coding: UTF-8 -*-
3#
4# Build Xvnc with Xorg 7.4
5#
6
7set -e
8
DRC97d8c012009-03-19 23:13:50 +00009if [ "$PREFIX" = "" ]; then
DRC5819a7b2010-01-08 11:05:34 +000010 PREFIX=`pwd`/xorg.build
DRC97d8c012009-03-19 23:13:50 +000011fi
Peter Åstrandf0459172009-03-18 14:45:46 +000012export ACLOCAL="aclocal -I ${PREFIX}/share/aclocal"
13export PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
14MAKE="make"
DRC5819a7b2010-01-08 11:05:34 +000015STATIC=0
Peter Åstrandf0459172009-03-18 14:45:46 +000016
17modules="dri2proto \
18 libpthread-stubs \
19 glproto \
20 xf86vidmodeproto \
21 xextproto \
22 xproto \
23 kbproto \
24 inputproto \
25 xcmiscproto \
26 bigreqsproto \
27 fixesproto \
28 damageproto \
29 xf86driproto \
30 randrproto \
31 renderproto \
32 scrnsaverproto \
33 resourceproto \
34 fontsproto \
35 videoproto \
36 compositeproto \
37 xineramaproto \
38 fontcacheproto \
39 libdrm \
Peter Åstrandf0459172009-03-18 14:45:46 +000040 libXau \
41 xtrans \
42 libXdmcp \
43 libX11 \
44 libXext \
45 libXxf86vm \
46 libICE \
47 libSM \
48 libXt \
49 libXmu \
50 libXfixes \
51 libXdamage \
52 libXi \
53 evieext \
54 libxkbfile \
55 libfontenc \
56 libXfont \
57 libpciaccess \
Peter Åstrandf0459172009-03-18 14:45:46 +000058 pixman"
59
60
61init()
62{
63 mkdir -p xorg
64 update_modules
Peter Åstrand6a47dcc2009-03-19 07:53:23 +000065
66 pushd xorg
DRCa4385e02010-01-08 09:53:21 +000067 tar jxf ~/.tigervnc-build/util-macros.tar.bz2
Peter Åstrand6a47dcc2009-03-19 07:53:23 +000068 pushd util-macros-*
69 echo "Building macros"
DRC3c186e92009-04-04 15:27:57 +000070 ./configure ${1+"$@"} --prefix=${PREFIX}
Peter Åstrand6a47dcc2009-03-19 07:53:23 +000071 ($MAKE);
72 make install
73 popd
74 popd
75
Peter Åstrandf0459172009-03-18 14:45:46 +000076 pushd xserver
77 patch -p1 < ../xserver15.patch
DRCce8088b2009-03-20 02:12:44 +000078 popd
79
DRC428507d2010-01-06 23:07:35 +000080 cd ..
DRCce8088b2009-03-20 02:12:44 +000081 autoreconf -fiv
DRC428507d2010-01-06 23:07:35 +000082 cd unix
Peter Åstrandf0459172009-03-18 14:45:46 +000083}
84
85
86update_modules()
87{
88 pushd xorg
89 ../download-xorg
90 for module in ${modules}; do
DRCa4385e02010-01-08 09:53:21 +000091 tar jxf ~/.tigervnc-build/${module}.tar.bz2
Peter Åstrandf0459172009-03-18 14:45:46 +000092 done
DRCa4385e02010-01-08 09:53:21 +000093 tar jxf ~/.tigervnc-build/Mesa.tar.bz2
DRC5819a7b2010-01-08 11:05:34 +000094 tar jxf ~/.tigervnc-build/freetype.tar.bz2
DRCa4385e02010-01-08 09:53:21 +000095 tar jxf ~/.tigervnc-build/xorg-server.tar.bz2
Peter Åstrandf0459172009-03-18 14:45:46 +000096 cp -r xorg-server-1.*/* ../xserver
97 popd
98}
99
100
101build ()
102{
Peter Åstrandf0459172009-03-18 14:45:46 +0000103 # Build VNC
DRCf4b50a72009-03-18 20:54:17 +0000104 echo "*** Building VNC ***"
DRC428507d2010-01-06 23:07:35 +0000105 cd ..
DRC5819a7b2010-01-08 11:05:34 +0000106 VNCCFGFLAGS=
107 if [ $STATIC = 1 ]; then
108 VNCCFGFLAGS=--with-included-zlib
109 fi
Peter Åstrandf0459172009-03-18 14:45:46 +0000110 make distclean || true
DRC5819a7b2010-01-08 11:05:34 +0000111 ./configure ${1+"$@"} ${VNCCFGFLAGS} --prefix=${PREFIX}
Peter Åstrandf0459172009-03-18 14:45:46 +0000112 make
DRC428507d2010-01-06 23:07:35 +0000113 cd unix
Peter Åstrandf0459172009-03-18 14:45:46 +0000114
115 # Build Xorg
DRCf4b50a72009-03-18 20:54:17 +0000116 echo "*** Building Xorg ***"
Peter Åstrandf0459172009-03-18 14:45:46 +0000117 pushd xorg
118 for module in ${modules}; do
119 extraoptions=""
120 cd ${module}-*
121 echo ======================
122 echo configuring ${module}
123 echo ======================
124 if [ "${module}" = "libX11" ]; then
125 extraoptions="${extraoptions} --without-xcb"
126 fi
DRC3c186e92009-04-04 15:27:57 +0000127 if [ "${module}" = "libSM" ]; then
DRCcfdec412009-04-10 20:06:54 +0000128 extraoptions="${extraoptions} --without-libuuid"
DRC3c186e92009-04-04 15:27:57 +0000129 fi
DRC5819a7b2010-01-08 11:05:34 +0000130 if [ $STATIC = 1 ]; then
131 extraoptions="${extraoptions} --enable-static --disable-shared"
DRCc48abf12010-01-11 01:31:21 +0000132 OLD_CFLAGS=${CFLAGS}
133 OLD_CXXFLAGS=${CXXFLAGS}
134 CFLAGS=${CFLAGS}' -fPIC'
135 CXXFLAGS=${CXXFLAGS}' -fPIC'
136 export CFLAGS CXXFLAGS
DRC5819a7b2010-01-08 11:05:34 +0000137 fi
DRC3c186e92009-04-04 15:27:57 +0000138 ./configure ${1+"$@"} --prefix="${PREFIX}" ${extraoptions}
DRCc48abf12010-01-11 01:31:21 +0000139 if [ $STATIC = 1 ]; then
140 CFLAGS=${OLD_CFLAGS}
141 CXXFLAGS=${OLD_CXXFLAGS}
142 export CFLAGS CXXFLAGS
143 fi
Peter Åstrandf0459172009-03-18 14:45:46 +0000144 echo ======================
145 echo building ${module}
146 echo ======================
147 if [ $? -ne 0 ]; then
148 echo "Failed to configure ${module}."
149 exit
150 fi
151 ($MAKE);
152 make install
153 cd ..
154 done
155
156 # build mesa
DRCf4b50a72009-03-18 20:54:17 +0000157 echo "*** Building Mesa ***"
Peter Åstrandf0459172009-03-18 14:45:46 +0000158 pushd Mesa-*
DRCc48abf12010-01-11 01:31:21 +0000159 ./configure ${1+"$@"} --prefix=${PREFIX} --with-driver=dri --disable-glut --without-demos
Peter Åstrandf0459172009-03-18 14:45:46 +0000160 if [ $? -ne 0 ]; then
161 echo "Failed to configure Mesa."
162 exit
163 fi
164 ($MAKE)
165 make install
166 popd
167
DRC5819a7b2010-01-08 11:05:34 +0000168 # build freetype
169 if [ $STATIC = 1 ]; then
170 echo "*** Building freetype ***"
171 pushd freetype-*
172 ./configure ${1+"$@"} --prefix=${PREFIX} --enable-static --disable-shared
173 if [ $? -ne 0 ]; then
174 echo "Failed to configure freetype."
175 exit
176 fi
177 ($MAKE)
178 make install
179 popd
180 fi
181
Peter Åstrandf0459172009-03-18 14:45:46 +0000182 popd
183
184 # build xserver
DRCf4b50a72009-03-18 20:54:17 +0000185 echo "*** Building xserver ***"
Peter Åstrandf0459172009-03-18 14:45:46 +0000186 cd xserver
DRC0286f902009-04-11 06:28:24 +0000187 autoreconf -fiv
DRC5819a7b2010-01-08 11:05:34 +0000188 XORGCFGFLAGS='--disable-xinerama --disable-xvfb --disable-xnest --disable-xorg'
189 if [ $STATIC = 1 ]; then
190 XORGCFGFLAGS="${XORGCFGFLAGS} --disable-shared --enable-static"
191 fi
192 ./configure ${1+"$@"} --prefix=${PREFIX} ${XORGCFGFLAGS}
Peter Åstrandf0459172009-03-18 14:45:46 +0000193 if [ $? -ne 0 ]; then
194 echo "Failed to configure X server."
195 exit
196 fi
197 ($MAKE)
198 make install
199 cd ..
200}
201
Peter Åstrandf0459172009-03-18 14:45:46 +0000202case "$1" in
203 init)
DRC3c186e92009-04-04 15:27:57 +0000204 shift
DRC5819a7b2010-01-08 11:05:34 +0000205 if [ "$1" = "-static" ]; then
206 STATIC=1
207 shift
208 fi
DRC3c186e92009-04-04 15:27:57 +0000209 init ${1+"$@"}
Peter Åstrandf0459172009-03-18 14:45:46 +0000210 ;;
211 build)
DRC3c186e92009-04-04 15:27:57 +0000212 shift
DRC5819a7b2010-01-08 11:05:34 +0000213 if [ "$1" = "-static" ]; then
214 STATIC=1
215 shift
216 fi
DRC3c186e92009-04-04 15:27:57 +0000217 build ${1+"$@"}
Peter Åstrandf0459172009-03-18 14:45:46 +0000218 ;;
219 update)
DRC5819a7b2010-01-08 11:05:34 +0000220 shift
221 if [ "$1" = "-static" ]; then
222 STATIC=1
223 shift
224 fi
Peter Åstrandf0459172009-03-18 14:45:46 +0000225 update_modules
226 ;;
227 *)
DRC5819a7b2010-01-08 11:05:34 +0000228 echo "Usage: $0 init | build | update [-static] [additional configure flags]"
Peter Åstrandf0459172009-03-18 14:45:46 +0000229 exit 3
230esac