blob: 3460f8e5d43bc3127baa47524366933726eec4eb [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
DRC95a96db2009-04-01 07:51:01 +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"
DRCf4b50a72009-03-18 20:54:17 +000015CFGFLAGS=
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 \
58 xkbcomp \
59 pixman"
60
61
62init()
63{
64 mkdir -p xorg
65 update_modules
Peter Åstrand6a47dcc2009-03-19 07:53:23 +000066
67 pushd xorg
DRCa4385e02010-01-08 09:53:21 +000068 tar jxf ~/.tigervnc-build/util-macros.tar.bz2
Peter Åstrand6a47dcc2009-03-19 07:53:23 +000069 pushd util-macros-*
70 echo "Building macros"
DRC3c186e92009-04-04 15:27:57 +000071 ./configure ${1+"$@"} --prefix=${PREFIX}
Peter Åstrand6a47dcc2009-03-19 07:53:23 +000072 ($MAKE);
73 make install
74 popd
75 popd
76
Peter Åstrandf0459172009-03-18 14:45:46 +000077 pushd xserver
78 patch -p1 < ../xserver15.patch
DRCce8088b2009-03-20 02:12:44 +000079 popd
80
DRC428507d2010-01-06 23:07:35 +000081 cd ..
DRCce8088b2009-03-20 02:12:44 +000082 autoreconf -fiv
DRC428507d2010-01-06 23:07:35 +000083 cd unix
Peter Åstrandf0459172009-03-18 14:45:46 +000084}
85
86
87update_modules()
88{
89 pushd xorg
90 ../download-xorg
91 for module in ${modules}; do
DRCa4385e02010-01-08 09:53:21 +000092 tar jxf ~/.tigervnc-build/${module}.tar.bz2
Peter Åstrandf0459172009-03-18 14:45:46 +000093 done
DRCa4385e02010-01-08 09:53:21 +000094 tar jxf ~/.tigervnc-build/Mesa.tar.bz2
95 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{
103
104 # Build VNC
DRCf4b50a72009-03-18 20:54:17 +0000105 echo "*** Building VNC ***"
DRC428507d2010-01-06 23:07:35 +0000106 cd ..
Peter Åstrandf0459172009-03-18 14:45:46 +0000107 make distclean || true
DRC3c186e92009-04-04 15:27:57 +0000108 ./configure ${1+"$@"} --prefix=${PREFIX}
Peter Åstrandf0459172009-03-18 14:45:46 +0000109 make
DRC428507d2010-01-06 23:07:35 +0000110 cd unix
Peter Åstrandf0459172009-03-18 14:45:46 +0000111
112 # Build Xorg
DRCf4b50a72009-03-18 20:54:17 +0000113 echo "*** Building Xorg ***"
Peter Åstrandf0459172009-03-18 14:45:46 +0000114 pushd xorg
115 for module in ${modules}; do
116 extraoptions=""
117 cd ${module}-*
118 echo ======================
119 echo configuring ${module}
120 echo ======================
121 if [ "${module}" = "libX11" ]; then
122 extraoptions="${extraoptions} --without-xcb"
123 fi
DRC3c186e92009-04-04 15:27:57 +0000124 if [ "${module}" = "libSM" ]; then
DRCcfdec412009-04-10 20:06:54 +0000125 extraoptions="${extraoptions} --without-libuuid"
DRC3c186e92009-04-04 15:27:57 +0000126 fi
127 ./configure ${1+"$@"} --prefix="${PREFIX}" ${extraoptions}
Peter Åstrandf0459172009-03-18 14:45:46 +0000128 echo ======================
129 echo building ${module}
130 echo ======================
131 if [ $? -ne 0 ]; then
132 echo "Failed to configure ${module}."
133 exit
134 fi
135 ($MAKE);
136 make install
137 cd ..
138 done
139
140 # build mesa
DRCf4b50a72009-03-18 20:54:17 +0000141 echo "*** Building Mesa ***"
Peter Åstrandf0459172009-03-18 14:45:46 +0000142 pushd Mesa-*
DRC3c186e92009-04-04 15:27:57 +0000143 ./configure ${1+"$@"} --prefix=${PREFIX} --with-driver=dri --disable-glut --without-demos
Peter Åstrandf0459172009-03-18 14:45:46 +0000144 if [ $? -ne 0 ]; then
145 echo "Failed to configure Mesa."
146 exit
147 fi
148 ($MAKE)
149 make install
150 popd
151
152 popd
153
154 # build xserver
DRCf4b50a72009-03-18 20:54:17 +0000155 echo "*** Building xserver ***"
Peter Åstrandf0459172009-03-18 14:45:46 +0000156 cd xserver
DRC0286f902009-04-11 06:28:24 +0000157 autoreconf -fiv
DRC3c186e92009-04-04 15:27:57 +0000158 ./configure ${1+"$@"} --prefix=${PREFIX} --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg
Peter Åstrandf0459172009-03-18 14:45:46 +0000159 if [ $? -ne 0 ]; then
160 echo "Failed to configure X server."
161 exit
162 fi
163 ($MAKE)
164 make install
165 cd ..
166}
167
Peter Åstrandf0459172009-03-18 14:45:46 +0000168case "$1" in
169 init)
DRC3c186e92009-04-04 15:27:57 +0000170 shift
171 init ${1+"$@"}
Peter Åstrandf0459172009-03-18 14:45:46 +0000172 ;;
173 build)
DRC3c186e92009-04-04 15:27:57 +0000174 shift
175 build ${1+"$@"}
Peter Åstrandf0459172009-03-18 14:45:46 +0000176 ;;
177 update)
178 update_modules
179 ;;
180 *)
DRCf4b50a72009-03-18 20:54:17 +0000181 echo "Usage: $0 init | build | update [additional configure flags]"
Peter Åstrandf0459172009-03-18 14:45:46 +0000182 exit 3
183esac