lynx:use untrusted gcc machine code generator (moved to opt)
[nyanlinux.git] / builders / libxkbcommon-7caf57f0131bc963a100dd1d6a5aa738fb334c3c / builder.sh
blob379b41f5784f4175f20e188e4bb8491e2495058f
1 src_name=libxkbcommon
2 git_commit=${pkg_name##*-}
3 slot=$git_commit
4 # version is at the top of the root meson.build file
5 version=1.6.0
6 git_url0=git://github.com/xkbcommon/libxkbcommon
8 pkg_dir=$pkgs_dir_root/$pkg_name
9 src_dir=$src_dir_root/$src_name
10 rm -Rf $pkg_dir
11 mkdir -p $pkgs_dir_root
12 cp -L -r $src_dir $pkg_dir
14 cd $pkg_dir
16 if test x$git_commit != x; then
17 git checkout --force $git_commit
18 git reset --hard
21 build_dir=$builds_dir_root/$pkg_name
22 rm -Rf $build_dir
23 mkdir -p $build_dir
24 cd $build_dir
26 # X11 locale is the "compose" mini input method
27 cat >config.h <<EOF
28 #define DFLT_XKB_CONFIG_ROOT "/nyan/xkeyboard-config/current/share/X11/xkb"
29 #define DFLT_XKB_CONFIG_EXTRA_PATH ""
30 #define XLOCALEDIR "/usr/share/X11/locale"
31 #define LIBXKBCOMMON_VERSION "$version"
32 #define DEFAULT_XKB_RULES "evdev"
33 #define DEFAULT_XKB_MODEL "pc105"
34 #define DEFAULT_XKB_LAYOUT "us"
35 #define DEFAULT_XKB_VARIANT ""
36 #define DEFAULT_XKB_OPTIONS ""
37 /* glibc */
38 #define _GNU_SOURCE 1
39 #define HAVE__BUILTIN_EXPECT 1
40 #define HAVE_EUIDACCESS 1
41 #define HAVE_MMAP 1
42 #define HAVE_MKOSTEMP 1
43 #define HAVE_POSIX_FALLOCATE 1
44 #define HAVE_STRNDUP 1
45 #define HAVE_UNISTD_H 1
46 /* no */
47 #undef HAVE_ASPRINTF
48 #undef HAVE_VASPRINTF
50 #define HAVE_SECURE_GETENV 1
51 #undef HAVE___SECURE_GETENV
52 EOF
54 # DON'T USE BISON EXTENSIONS!
55 # DON'T USE A YACC PROGRAM, THOSE ARE _BAD_ PARSERS AND IT CREATES NASTY BUILD
56 # DEPS.
57 # ALWAYS MANUALLY WRITE YOUR PARSERS!
58 # JEZUS! FOR GOD SAKE! YOU ANIMALS! PYTHON IS NOT ENOUGH ALREADY!
59 # TOXIC HUMAN BEINGS!
60 /nyan/bison/current/bin/bison --defines=parser.h -o $build_dir/parser.c -p _xkbcommon_ \
61 $pkg_dir/src/xkbcomp/parser.y
62 srcs="\
63 $pkg_dir/src/compose/parser.c \
64 $pkg_dir/src/compose/paths.c \
65 $pkg_dir/src/compose/state.c \
66 $pkg_dir/src/compose/table.c \
67 $pkg_dir/src/xkbcomp/action.c \
68 $pkg_dir/src/xkbcomp/ast-build.c \
69 $pkg_dir/src/xkbcomp/compat.c \
70 $pkg_dir/src/xkbcomp/expr.c \
71 $pkg_dir/src/xkbcomp/include.c \
72 $pkg_dir/src/xkbcomp/keycodes.c \
73 $pkg_dir/src/xkbcomp/keymap.c \
74 $pkg_dir/src/xkbcomp/keymap-dump.c \
75 $pkg_dir/src/xkbcomp/keywords.c \
76 $build_dir/parser.c \
77 $pkg_dir/src/xkbcomp/rules.c \
78 $pkg_dir/src/xkbcomp/scanner.c \
79 $pkg_dir/src/xkbcomp/symbols.c \
80 $pkg_dir/src/xkbcomp/types.c \
81 $pkg_dir/src/xkbcomp/vmod.c \
82 $pkg_dir/src/xkbcomp/xkbcomp.c \
83 $pkg_dir/src/atom.c \
84 $pkg_dir/src/context.c \
85 $pkg_dir/src/context-priv.c \
86 $pkg_dir/src/keysym.c \
87 $pkg_dir/src/keysym-utf.c \
88 $pkg_dir/src/keymap.c \
89 $pkg_dir/src/keymap-priv.c \
90 $pkg_dir/src/state.c \
91 $pkg_dir/src/text.c \
92 $pkg_dir/src/utf8.c \
93 $pkg_dir/src/utils.c \
95 objs=
96 for f in $srcs
98 obj=$build_dir/$(dirname $f)/$(basename $f .c).o
99 mkdir -p $build_dir/$(dirname $f)
100 /nyan/toolchains/binutils-2.36.1-gcc-4.7.4/current/bin/x86_64-nyan2-linux-gnu-gcc \
101 -static-libgcc \
102 -std=gnu99 \
103 -fvisibility=hidden -fPIC -O2 -pipe -ftls-model=global-dynamic -fpic -c \
104 -D_GNU_SOURCE \
105 -isystem /nyan/glibc/current/include \
106 -isystem /nyan/linux-headers/current/include \
107 -I$build_dir \
108 -I$pkg_dir/src \
109 -I$pkg_dir/include \
110 -I$pkg_dir \
111 $f -o $obj &
112 objs="$obj $objs"
113 done
114 wait
115 /nyan/toolchains/binutils-2.36.1-gcc-4.7.4/current/bin/x86_64-nyan2-linux-gnu-gcc \
116 -B/nyan/glibc/current/lib -shared \
117 -Wl,--version-script=$pkg_dir/xkbcommon.map \
118 -Wl,-soname=libxkbcommon.so.0 \
119 -Wl,-s \
120 -static-libgcc \
121 $objs \
122 -o $build_dir/libxkbcommon.so.0.0.0
123 ln -sTf libxkbcommon.so.0.0.0 $build_dir/libxkbcommon.so.0
124 ln -sTf libxkbcommon.so.0 $build_dir/libxkbcommon.so
126 cat >$build_dir/xkbcommon.pc <<EOF
127 prefix=/nyan/libxkbcommon/current
128 exec_prefix=/nyan/libxkbcommon/current
129 libdir=/nyan/libxkbcommon/current/lib
130 includedir=/nyan/libxkbcommon/current/include
132 Name: xkbcommon
133 Description: XKB API common to servers and clients
134 Version: $version
135 Cflags: -I\${includedir}
136 Libs: -L\${libdir} -lxkbcommon
138 #-------------------------------------------------------------------------------
139 # x11 helper lib
140 srcs="\
141 $pkg_dir/src/x11/keymap.c \
142 $pkg_dir/src/x11/state.c \
143 $pkg_dir/src/x11/util.c \
144 $pkg_dir/src/context-priv.c \
145 $pkg_dir/src/keymap-priv.c \
146 $pkg_dir/src/atom.c \
148 objs=
149 for f in $srcs
151 obj=$build_dir/$(dirname $f)/$(basename $f .c).o
152 mkdir -p $build_dir/$(dirname $f)
153 /nyan/toolchains/binutils-2.36.1-gcc-4.7.4/current/bin/x86_64-nyan2-linux-gnu-gcc \
154 -std=gnu99 \
155 -fvisibility=hidden -fPIC -O2 -pipe -ftls-model=global-dynamic -fpic -c \
156 -static-libgcc \
157 -isystem /nyan/glibc/current/include \
158 -isystem /nyan/linux-headers/current/include \
159 -I$build_dir \
160 -I$pkg_dir/src \
161 -I$pkg_dir/include \
162 -I$pkg_dir \
163 -I/nyan/libxcb/current/include \
164 $f -o $obj &
165 objs="$obj $objs"
166 done
167 wait
168 /nyan/toolchains/binutils-2.36.1-gcc-4.7.4/current/bin/x86_64-nyan2-linux-gnu-gcc \
169 -static-libgcc \
170 -B/nyan/glibc/current/lib -shared \
171 -Wl,--version-script=$pkg_dir/xkbcommon-x11.map \
172 -Wl,-soname=libxkbcommon-x11.so.0 \
173 -Wl,-s \
174 $objs \
175 -L$build_dir -lxkbcommon \
176 -L/nyan/libxcb/current/lib -lxcb-xkb \
177 -o $build_dir/libxkbcommon-x11.so.0.0.0
178 ln -sTf libxkbcommon-x11.so.0.0.0 $build_dir/libxkbcommon-x11.so.0
179 ln -sTf libxkbcommon-x11.so.0 $build_dir/libxkbcommon-x11.so
181 cat >$build_dir/xkbcommon-x11.pc <<EOF
182 prefix=/nyan/libxkbcommon/current
183 exec_prefix=/nyan/libxkbcommon/current
184 libdir=/nyan/libxkbcommon/current/lib
185 includedir=/nyan/libxkbcommon/current/include
187 Name: xkbcommon-x11
188 Description: XKB API common to servers and clients - X11 support
189 Version: $version
190 Requires: xkbcommon
191 Requires.private: xcb xcb-xkb
192 Cflags: -I\${includedir}
193 Libs: -L\${libdir} -lxkbcommon-x11
195 #-------------------------------------------------------------------------------
196 # registry, pulling libxml2... jez... not event support for expat
197 # some other fanatics will push for json I guess
198 srcs="\
199 $pkg_dir/src/registry.c \
200 $pkg_dir/src/utils.c \
201 $pkg_dir/src/util-list.c \
203 objs=
204 for f in $srcs
206 obj=$build_dir/$(dirname $f)/$(basename $f .c).o
207 mkdir -p $build_dir/$(dirname $f)
208 /nyan/toolchains/binutils-2.36.1-gcc-4.7.4/current/bin/x86_64-nyan2-linux-gnu-gcc \
209 -std=gnu99 \
210 -static-libgcc \
211 -fvisibility=hidden -fPIC -O2 -pipe -ftls-model=global-dynamic -fpic -c \
212 -isystem /nyan/glibc/current/include \
213 -isystem /nyan/linux-headers/current/include \
214 -I$build_dir \
215 -I$pkg_dir/src \
216 -I$pkg_dir/include \
217 -I$pkg_dir \
218 -I/nyan/libxml2/current/include/libxml2 \
219 $f -o $obj &
220 objs="$obj $objs"
221 done
222 wait
223 /nyan/toolchains/binutils-2.36.1-gcc-4.7.4/current/bin/x86_64-nyan2-linux-gnu-gcc \
224 -static-libgcc \
225 -B/nyan/glibc/current/lib -shared \
226 -Wl,-s \
227 -Wl,--version-script=$pkg_dir/xkbregistry.map \
228 -Wl,-soname=libxkbregistry.so.0 \
229 $objs \
230 -L/nyan/libxml2/current/lib -lxml2 \
231 -L/nyan/zlib/current/lib -lz \
232 -lm \
233 -o $build_dir/libxkbregistry.so.0.0.0
234 ln -sTf libxkbregistry.so.0.0.0 $build_dir/libxkbregistry.so.0
235 ln -sTf libxkbregistry.so.0 $build_dir/libxkbregistry.so
237 cat >$build_dir/xkbregistry.pc <<EOF
238 prefix=/nyan/libxkbcommon/current
239 exec_prefix=/nyan/libxkbcommon/current
240 libdir=/nyan/libxkbcommon/current/lib
241 includedir=/nyan/libxkbcommon/current/include
243 Name: xkbregistry
244 Description: XKB API to query available rules, models, layouts, variants and options
245 Version: $version
246 Requires.private: libxml-2.0
247 Cflags: -I\${includedir}
248 Libs: -L\${libdir} -lxkbregistry
250 #-------------------------------------------------------------------------------
251 mkdir -p /nyan/$src_name/$slot/include/xkbcommon
252 mkdir -p /nyan/$src_name/$slot/lib/pkgconfig
253 mkdir -p /usr/lib
254 mv -f $pkg_dir/include/xkbcommon/xkbcommon.h \
255 $pkg_dir/include/xkbcommon/xkbcommon-compat.h \
256 $pkg_dir/include/xkbcommon/xkbcommon-compose.h \
257 $pkg_dir/include/xkbcommon/xkbcommon-keysyms.h \
258 $pkg_dir/include/xkbcommon/xkbcommon-names.h \
259 $pkg_dir/include/xkbcommon/xkbcommon-x11.h \
260 $pkg_dir/include/xkbcommon/xkbregistry.h \
261 /nyan/$src_name/$slot/include/xkbcommon
262 mv -f $build_dir/*.pc /nyan/$src_name/$slot/lib/pkgconfig
263 mv -f $build_dir/libxkbcommon.so.0.0.0 /nyan/$src_name/$slot/lib
264 ln -sTf libxkbcommon.so.0.0.0 /nyan/$src_name/$slot/lib/libxkbcommon.so
265 # XXX:current, not slot
266 ln -sTf /nyan/$src_name/current/lib/libxkbcommon.so.0.0.0 /usr/lib/libxkbcommon.so.0
267 mv -f $build_dir/libxkbcommon-x11.so.0.0.0 /nyan/$src_name/$slot/lib
268 ln -sTf libxkbcommon-x11.so.0.0.0 /nyan/$src_name/$slot/lib/libxkbcommon-x11.so
269 # XXX:current, not slot
270 ln -sTf /nyan/$src_name/current/lib/libxkbcommon-x11.so.0.0.0 /usr/lib/libxkbcommon-x11.so.0
271 mv -f $build_dir/libxkbregistry.so.0.0.0 /nyan/$src_name/$slot/lib
272 ln -sTf libxkbregistry.so.0.0.0 /nyan/$src_name/$slot/lib/libxkbregistry.so
273 # XXX:current, not slot
274 ln -sTf /nyan/$src_name/current/lib/libxkbregistry.so.0.0.0 /usr/lib/libxkbregistry.so.0
276 rm -Rf $build_dir $pkg_dir