compile revision 9ace9065
1#!/bin/bash
2
3#CONFOPT="--disable-xquartz --disable-glx --disable-dri --disable-launchd --enable-kdrive --disable-xsdl --enable-xnest --enable-xvfb"
4
5CONFOPT="--enable-standalone-xpbproxy"
6#CONFOPT="--disable-shave --without-dtrace"
7
8CONFOPT="${CONFOPT} --with-dtrace"
9
10# Parallel Make.  Change $MAKE if you don't have gmake installed
11MAKE="gnumake"
12MAKE_OPTS="-j10"
13
14. ~/src/strip.sh
15
16PREFIX=/usr/X11
17ARCHFLAGS="-arch i386 -arch x86_64"
18
19#PREFIX=/opt/X11
20#CONFOPT="$CONFOPT --with-apple-application-name=XQuartz --with-launchd-id-prefix=org.macosforge.xquartz"
21#ARCHFLAGS="-arch i386 -arch x86_64"
22
23ACLOCAL="aclocal -I ${PREFIX}/share/aclocal -I /usr/local/share/aclocal"
24
25CPPFLAGS="-DNO_ALLOCA"
26
27CFLAGS="$CFLAGS -Os -ggdb3 -pipe"
28CFLAGS="$CFLAGS $ARCHFLAGS"
29CFLAGS="$CFLAGS -Wall -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-missing-field-initializers"
30
31    TB_CFLAGS="-fdiagnostics-show-category=name"
32
33# Stage 1:
34    TB_CFLAGS="${TB_CFLAGS} -Werror=implicit"
35    TB_CFLAGS="${TB_CFLAGS} -Werror=nonnull"
36    TB_CFLAGS="${TB_CFLAGS} -Wformat-security"         # <rdar://problem/9418512> clang is overzealous about -Werror=format-*
37    TB_CFLAGS="${TB_CFLAGS} -Wformat-extra-args"
38    TB_CFLAGS="${TB_CFLAGS} -Wformat-y2k"
39    TB_CFLAGS="${TB_CFLAGS} -Werror=init-self"
40    TB_CFLAGS="${TB_CFLAGS} -Werror=main"
41    TB_CFLAGS="${TB_CFLAGS} -Werror=missing-braces"
42    TB_CFLAGS="${TB_CFLAGS} -Wparentheses"             # libX11 XKBBind.c:169
43    TB_CFLAGS="${TB_CFLAGS} -Werror=sequence-point"
44    TB_CFLAGS="${TB_CFLAGS} -Werror=return-type"
45    TB_CFLAGS="${TB_CFLAGS} -Werror=trigraphs"
46    TB_CFLAGS="${TB_CFLAGS} -Werror=array-bounds"
47#    TB_CFLAGS="${TB_CFLAGS} -Wcast-align"             # Noisy
48    TB_CFLAGS="${TB_CFLAGS} -Werror=write-strings"
49#    TB_CFLAGS="${TB_CFLAGS} -Werror=clobbered"
50    TB_CFLAGS="${TB_CFLAGS} -Werror=address"
51    TB_CFLAGS="${TB_CFLAGS} -Werror=int-to-pointer-cast"
52    TB_CFLAGS="${TB_CFLAGS} -Werror=pointer-to-int-cast"
53
54# Stage 2:
55#    TB_CFLAGS="${TB_CFLAGS} -Wlogical-op"
56    TB_CFLAGS="${TB_CFLAGS} -Wunused"
57    TB_CFLAGS="${TB_CFLAGS} -Wuninitialized"
58    TB_CFLAGS="${TB_CFLAGS} -Wshadow"
59#    TB_CFLAGS="${TB_CFLAGS} -Wunsafe-loop-optimizations"
60    TB_CFLAGS="${TB_CFLAGS} -Wcast-qual"
61    TB_CFLAGS="${TB_CFLAGS} -Wmissing-noreturn"
62    TB_CFLAGS="${TB_CFLAGS} -Wmissing-format-attribute"
63    TB_CFLAGS="${TB_CFLAGS} -Wredundant-decls"
64    TB_CFLAGS="${TB_CFLAGS} -Wnested-externs"
65    TB_CFLAGS="${TB_CFLAGS} -Winline"
66
67OBJCFLAGS="$CFLAGS"
68LDFLAGS="$CFLAGS"
69
70#CC="llvm-gcc"
71#CXX="llvm-g++"
72CC="clang"
73CXX="clang++"
74
75OBJC="$CC"
76
77#SCAN_BUILD="scan-build -v -V -o clang.d --use-cc=${CC} --use-c++=${CXX}"
78 
79#CPPFLAGS="$CPPFLAGS -F/Applications/Utilities/XQuartz.app/Contents/Frameworks"
80#LDFLAGS="$LDFLAGS -F/Applications/Utilities/XQuartz.app/Contents/Frameworks"
81#CPPFLAGS="$CPPFLAGS -F/Applications/Utilities/X11.app/Contents/Frameworks"
82#LDFLAGS="$LDFLAGS -F/Applications/Utilities/X11.app/Contents/Frameworks"
83#CONFOPT="${CONFOPT} --enable-sparkle"
84
85# This section is for building release tarballs
86if false ; then
87	CONFOPT="${CONFOPT} --enable-docs --enable-devel-docs --enable-builddocs --with-doxygen --with-xmlto --with-fop"
88	export XMLTO=/opt/local/bin/xmlto
89	export ASCIIDOC=/opt/local/bin/asciidoc
90	export DOXYGEN=/opt/local/bin/doxygen
91	export FOP=/opt/local/bin/fop
92	export FOP_OPTS="-Xmx2048m -Djava.awt.headless=true"
93	export GROFF=/opt/local/bin/groff
94	export PS2PDF=/opt/local/bin/ps2pdf
95fi
96
97export ACLOCAL CPPFLAGS CFLAGS OBJCFLAGS LDFLAGS CC OBJC
98
99PKG_CONFIG_PATH=${PREFIX}/share/pkgconfig:${PREFIX}/lib/pkgconfig:$PKG_CONFIG_PATH
100PATH=${PREFIX}/bin:$PATH
101
102die() {
103	echo "${@}" >&2
104	exit 1
105}
106
107docomp() {
108	autoreconf -fvi || die
109	${SCAN_BUILD} ./configure --prefix=${PREFIX} ${CONFOPT} --disable-dependency-tracking --enable-maintainer-mode --enable-xcsecurity --enable-record --disable-xevie "${@}" || die "Could not configure xserver"
110	${MAKE} clean || die "Unable to make clean"
111	${SCAN_BUILD} ${MAKE} ${MAKE_OPTS} || die "Could not make xserver"
112}
113
114doinst() {
115	${MAKE} install DESTDIR="$(pwd)/../dist" || die "Could not install xserver"
116}
117
118dosign() {
119	/opt/local/bin/gmd5sum $1 > $1.md5sum
120	/opt/local/bin/gsha1sum $1 > $1.sha1sum
121	DISPLAY="" /opt/local/bin/gpg2 -b $1
122}
123
124dodist() {
125	${MAKE} dist
126	dosign xorg-server-$1.tar.bz2
127
128	cp hw/xquartz/mach-startup/X11.bin X11.bin-$1
129	bzip2 X11.bin-$1
130	dosign X11.bin-$1.bz2 
131}
132
133docomp `[ -f conf_flags ] && cat conf_flags`
134#doinst
135[[ -n $1 ]] && dodist $1
136
137exit 0
138