summaryrefslogtreecommitdiffstats
path: root/xorg
diff options
context:
space:
mode:
Diffstat (limited to 'xorg')
-rwxr-xr-xxorg400
1 files changed, 400 insertions, 0 deletions
diff --git a/xorg b/xorg
new file mode 100755
index 0000000..5559dde
--- /dev/null
+++ b/xorg
@@ -0,0 +1,400 @@
+#!/bin/bash
+#
+# Kamil Kaminski
+# revision 8
+#
+
+echo -e "X.Org utility script\n"
+
+# compiler flags
+export CFLAGS="-march=native -mtune=native -O2 -fomit-frame-pointer"
+export CXXFLAGS="-march=native -mtune=native -O2 -fomit-frame-pointer"
+
+#export CPATH="/usr/local/include"
+#export ACLOCAL="aclocal -I /usr/local/share/aclocal"
+#export PREFIX=/usr/local
+#export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig"
+
+#export CPATH="/opt/gfx-test/include"
+export ACLOCAL="aclocal -I /opt/gfx-test/share/aclocal"
+export PKG_CONFIG_PATH="/opt/gfx-test/lib/pkgconfig:/opt/gfx-test/share/pkgconfig"
+export PREFIX="/opt/gfx-test"
+MAKE="make -j2"
+
+# list of repositories
+REPOS="\
+git://anongit.freedesktop.org/git/mesa/cairo \
+git://anongit.freedesktop.org/git/mesa/drm \
+git://anongit.freedesktop.org/git/mesa/mesa \
+git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau \
+git://anongit.freedesktop.org/git/pixman \
+git://anongit.freedesktop.org/git/xcb/libxcb \
+git://anongit.freedesktop.org/git/xcb/proto \
+git://anongit.freedesktop.org/git/xcb/pthread-stubs \
+git://anongit.freedesktop.org/git/xkeyboard-config \
+git://anongit.freedesktop.org/git/xorg/app/xkbcomp \
+git://anongit.freedesktop.org/git/xorg/driver/xf86-input-evdev \
+git://anongit.freedesktop.org/git/xorg/driver/xf86-input-keyboard \
+git://anongit.freedesktop.org/git/xorg/driver/xf86-input-mouse \
+git://anongit.freedesktop.org/git/xorg/driver/xf86-video-fbdev \
+git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel \
+git://anongit.freedesktop.org/git/xorg/driver/xf86-video-nv \
+git://anongit.freedesktop.org/git/xorg/driver/xf86-video-vesa \
+git://anongit.freedesktop.org/git/xorg/font/misc-misc \
+git://anongit.freedesktop.org/git/xorg/lib/libX11 \
+git://anongit.freedesktop.org/git/xorg/lib/libXdamage \
+git://anongit.freedesktop.org/git/xorg/lib/libXext \
+git://anongit.freedesktop.org/git/xorg/lib/libXfixes \
+git://anongit.freedesktop.org/git/xorg/lib/libXfont \
+git://anongit.freedesktop.org/git/xorg/lib/libXinerama \
+git://anongit.freedesktop.org/git/xorg/lib/libXrandr \
+git://anongit.freedesktop.org/git/xorg/lib/libXv \
+git://anongit.freedesktop.org/git/xorg/lib/libXvMC \
+git://anongit.freedesktop.org/git/xorg/lib/libXxf86vm \
+git://anongit.freedesktop.org/git/xorg/lib/libfontenc \
+git://anongit.freedesktop.org/git/xorg/lib/libpciaccess \
+git://anongit.freedesktop.org/git/xorg/lib/libxkbfile \
+git://anongit.freedesktop.org/git/xorg/lib/libxtrans \
+git://anongit.freedesktop.org/git/xorg/proto/bigreqsproto \
+git://anongit.freedesktop.org/git/xorg/proto/compositeproto \
+git://anongit.freedesktop.org/git/xorg/proto/damageproto \
+git://anongit.freedesktop.org/git/xorg/proto/dri2proto \
+git://anongit.freedesktop.org/git/xorg/proto/evieproto \
+git://anongit.freedesktop.org/git/xorg/proto/fixesproto \
+git://anongit.freedesktop.org/git/xorg/proto/fontsproto \
+git://anongit.freedesktop.org/git/xorg/proto/glproto \
+git://anongit.freedesktop.org/git/xorg/proto/inputproto \
+git://anongit.freedesktop.org/git/xorg/proto/kbproto \
+git://anongit.freedesktop.org/git/xorg/proto/randrproto \
+git://anongit.freedesktop.org/git/xorg/proto/recordproto \
+git://anongit.freedesktop.org/git/xorg/proto/renderproto \
+git://anongit.freedesktop.org/git/xorg/proto/resourceproto \
+git://anongit.freedesktop.org/git/xorg/proto/scrnsaverproto \
+git://anongit.freedesktop.org/git/xorg/proto/videoproto \
+git://anongit.freedesktop.org/git/xorg/proto/x11proto \
+git://anongit.freedesktop.org/git/xorg/proto/xcmiscproto \
+git://anongit.freedesktop.org/git/xorg/proto/xextproto \
+git://anongit.freedesktop.org/git/xorg/proto/xf86dgaproto \
+git://anongit.freedesktop.org/git/xorg/proto/xf86driproto \
+git://anongit.freedesktop.org/git/xorg/proto/xf86vidmodeproto \
+git://anongit.freedesktop.org/git/xorg/proto/xineramaproto \
+git://anongit.freedesktop.org/git/xorg/util/macros \
+git://anongit.freedesktop.org/git/xorg/xserver \
+git://anongit.freedesktop.org/git/mesa/demos"
+
+# list of modules that will get compiled generically, without any extra flags
+modules="\
+bigreqsproto \
+compositeproto \
+damageproto \
+dri2proto \
+evieproto \
+fixesproto \
+fontsproto \
+glproto \
+inputproto \
+kbproto \
+macros \
+proto \
+pthread-stubs \
+randrproto \
+recordproto \
+renderproto \
+resourceproto \
+scrnsaverproto \
+videoproto \
+x11proto \
+xcmiscproto \
+xextproto \
+xf86dgaproto \
+xf86driproto \
+xf86vidmodeproto \
+xineramaproto \
+libXdamage \
+libXext \
+libXfixes \
+libfontenc \
+libxtrans \
+libXfont \
+libXinerama \
+libXrandr \
+libXv \
+libXvMC \
+libXxf86vm \
+libpciaccess \
+libxcb \
+libxkbfile \
+misc-misc \
+pixman \
+xkbcomp \
+xkeyboard-config \
+libX11"
+
+# list of modules that may get compiled with custom flags
+modules2="\
+cairo \
+drm \
+mesa \
+xf86-input-evdev \
+xf86-input-keyboard \
+xf86-input-mouse \
+xf86-video-fbdev \
+xf86-video-intel \
+xf86-video-nouveau \
+xf86-video-nv \
+xf86-video-vesa \
+xserver"
+
+init()
+{
+ for repo in $REPOS; do
+ REPONAME=`basename $repo`
+ if [ -d $REPONAME ]; then
+ echo -e "\e[00;32m$REPONAME\e[00m \e[00;33mis already initialized, skipping\e[00m"
+ else
+ git clone $repo
+ fi
+ done
+}
+
+update_modules()
+{
+ for module in $modules2; do
+ REPONAME=`basename $module`
+ if [ ! -d $REPONAME ]; then
+ echo -e "\e[00;31m$REPONAME\e[00m \e[00;33mdoes not exist, skipping\e[00m"
+ else
+ cd $module
+ echo -n "$module: "
+ git pull
+ #git rebase master
+ cd ..
+ fi
+ done
+
+ for module in $modules; do
+ REPONAME=`basename $module`
+ if [ ! -d $REPONAME ]; then
+ echo -e "\e[00;31m$REPONAME\e[00m \e[00;33mdoes not exist, skipping\e[00m"
+ else
+ cd $module
+ echo -n "$module: "
+ git pull
+ #git rebase master
+ cd ..
+ fi
+ done
+}
+
+build()
+{
+ exec 2> >(tee ../xorg.log)
+
+ echo -e "\e[00;32mbuilding X.Org\n\e[00m"
+
+ if [ -d $PREFIX ]; then
+ echo "$PREFIX exists, removing..."
+ rm -rf $PREFIX
+ mkdir -p $PREFIX/share/aclocal
+ mkdir -p $PREFIX/bin
+ else
+ mkdir -p $PREFIX/share/aclocal
+ mkdir -p $PREFIX/bin
+ fi
+
+ if [ -d pthread-stubs ]; then
+ cd pthread-stubs
+ echo "building pthread-stubs"
+ ./autogen.sh --prefix=$PREFIX
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;31mpthread-stubs has not been cloned\e[00m"
+ fi
+
+ if [ -d macros ]; then
+ cd macros
+ echo "building macros"
+ ./autogen.sh --prefix=$PREFIX
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;31mmacros has not been cloned\e[00m"
+ fi
+
+ for i in $modules; do
+ if [ -d $i ]; then
+ cd $i
+ echo ======================
+ echo configuring $i
+ echo ======================
+ ./autogen.sh --prefix=$PREFIX
+ echo ======================
+ echo building $i
+ echo ======================
+ if [ $? -ne 0 ]; then
+ echo "failed to configure $i."
+ exit
+ fi
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33m$i has not been cloned\e[00m"
+ fi
+ done
+
+ if [ -d drm ]; then
+ cd drm
+ ./autogen.sh --prefix=$PREFIX --enable-nouveau-experimental-api
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33mdrm has not been cloned\e[00m"
+ fi
+
+ if [ -d mesa ]; then
+ cd mesa
+ ./autogen.sh --prefix=$PREFIX --with-dri-driverdir=$PREFIX/lib/dri \
+ --enable-glx-tls --enable-xcb --enable-gles2 \
+ --with-dri-drivers=swrast,nouveau --enable-gallium-nouveau \
+ --disable-gallium-intel --disable-gallium-radeon \
+ --disable-gallium-svga #--disable-asm --enable-debug
+ if [ $? -ne 0 ]; then
+ echo "failed to configure Mesa."
+ exit
+ fi
+ ($MAKE)
+ make install
+ mkdir -p $PREFIX/bin
+ install -m755 progs/xdemos/{glxinfo,glxgears} $PREFIX/bin
+ cd ..
+ else
+ echo -e "\e[00;33mmesa has not been cloned\e[00m"
+ fi
+
+ if [ -d xserver ]; then
+ cd xserver
+ ./autogen.sh --prefix=$PREFIX --enable-glx-tls
+ if [ $? -ne 0 ]; then
+ echo "failed to configure X server."
+ exit
+ fi
+ ($MAKE)
+ make install
+ chown root $PREFIX/bin/Xorg
+ chmod +s $PREFIX/bin/Xorg
+ cd ..
+ else
+ echo -e "\e[00;33mxserver has not been cloned\e[00m"
+ fi
+
+ if [ -d cairo ]; then
+ cd cairo
+ ./autogen.sh --prefix=$PREFIX --enable-gl
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33mcairo has not been cloned\e[00m"
+ fi
+
+ if [ -d xf86-input-mouse ]; then
+ cd xf86-input-mouse
+ ./autogen.sh --prefix=$PREFIX
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33mxf86-input-mouse has not been cloned\e[00m"
+ fi
+
+ if [ -d xf86-input-keyboard ]; then
+ cd xf86-input-keyboard
+ ./autogen.sh --prefix=$PREFIX
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33mxf86-input-keyboard has not been cloned\e[00m"
+ fi
+
+ if [ -d xf86-video-nouveau ]; then
+ cd xf86-video-nouveau
+ ./autogen.sh --prefix=$PREFIX
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33mxf86-video-nouveau has not been cloned\e[00m"
+ fi
+
+ if [ -d xf86-video-nv ]; then
+ cd xf86-video-nv
+ ./autogen.sh --prefix=$PREFIX
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33mxf86-video-nv has not been cloned\e[00m"
+ fi
+
+ if [ -d xf86-video-vesa ]; then
+ cd xf86-video-vesa
+ ./autogen.sh --prefix=$PREFIX
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33mxf86-video-vesa has not been cloned\e[00m"
+ fi
+
+ if [ -d xf86-video-fbdev ]; then
+ cd xf86-video-fbdev
+ ./autogen.sh --prefix=$PREFIX
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33mxf86-video-fbdev has not been cloned\e[00m"
+ fi
+
+ if [ -d xf86-input-evdev ]; then
+ cd xf86-input-evdev
+ ./autogen.sh --prefix=$PREFIX
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33mxf86-input-evdev has not been cloned\e[00m"
+ fi
+
+ if [ -d xf86-video-intel ]; then
+ cd xf86-video-intel
+ ./autogen.sh --prefix=$PREFIX
+ ($MAKE)
+ make install
+ cd ..
+ else
+ echo -e "\e[00;33mxf86-video-intel has not been cloned\e[00m"
+ fi
+}
+
+case "$1" in
+ init)
+ init
+ ;;
+ build)
+ build
+ ;;
+ update)
+ update_modules
+ ;;
+ *)
+ echo "usage: $0 init | build | update"
+ exit 3
+esac
+