Sun, 16 Jun 2024 11:23:21 +0200
initial gtk4 porting, incomplete
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
1 | #!/bin/sh |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
2 | |
277 | 3 | # create temporary directory |
4 | TEMP_DIR=".tmp-`uname -n`" | |
5 | rm -Rf "$TEMP_DIR" | |
6 | if mkdir -p "$TEMP_DIR"; then | |
7 | : | |
8 | else | |
9 | echo "Cannot create tmp dir $TEMP_DIR" | |
10 | echo "Abort" | |
11 | exit 1 | |
12 | fi | |
13 | touch "$TEMP_DIR/options" | |
14 | touch "$TEMP_DIR/features" | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
15 | |
277 | 16 | # define standard variables |
17 | # also define standard prefix (this is where we will search for config.site) | |
18 | prefix=/usr | |
19 | exec_prefix= | |
20 | bindir= | |
21 | sbindir= | |
22 | libdir= | |
23 | libexecdir= | |
24 | datarootdir= | |
25 | datadir= | |
26 | sysconfdir= | |
27 | sharedstatedir= | |
28 | localstatedir= | |
29 | runstatedir= | |
30 | includedir= | |
31 | infodir= | |
32 | localedir= | |
33 | mandir= | |
0 | 34 | |
277 | 35 | # custom variables |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
36 | |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
37 | # features |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
38 | |
277 | 39 | # clean abort |
40 | abort_configure() | |
41 | { | |
42 | rm -Rf "$TEMP_DIR" | |
43 | exit 1 | |
44 | } | |
45 | ||
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
46 | # help text |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
47 | printhelp() |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
48 | { |
277 | 49 | echo "Usage: $0 [OPTIONS]..." |
50 | cat << __EOF__ | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
51 | Installation directories: |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
52 | --prefix=PREFIX path prefix for architecture-independent files |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
53 | [/usr] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
54 | --exec-prefix=EPREFIX path prefix for architecture-dependent files |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
55 | [PREFIX] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
56 | |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
57 | --bindir=DIR user executables [EPREFIX/bin] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
58 | --sbindir=DIR system admin executables [EPREFIX/sbin] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
59 | --libexecdir=DIR program executables [EPREFIX/libexec] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
60 | --sysconfdir=DIR system configuration files [PREFIX/etc] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
61 | --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
62 | --localstatedir=DIR modifiable single-machine data [PREFIX/var] |
277 | 63 | --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run] |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
64 | --libdir=DIR object code libraries [EPREFIX/lib] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
65 | --includedir=DIR C header files [PREFIX/include] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
66 | --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
67 | --datadir=DIR read-only architecture-independent data [DATAROOTDIR] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
68 | --infodir=DIR info documentation [DATAROOTDIR/info] |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
69 | --mandir=DIR man documentation [DATAROOTDIR/man] |
277 | 70 | --localedir=DIR locale-dependent data [DATAROOTDIR/locale] |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
71 | |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
72 | Options: |
277 | 73 | --debug add extra compile flags for debug builds |
74 | --release add extra compile flags for release builds | |
170
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
75 | --toolkit=(gtk4|gtk3|gtk2|gtk2legacy|qt5|qt4|motif) |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
76 | |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
77 | __EOF__ |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
78 | } |
0 | 79 | |
80 | # | |
277 | 81 | # parse arguments |
0 | 82 | # |
277 | 83 | BUILD_TYPE="default" |
84 | for ARG in "$@" | |
0 | 85 | do |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
86 | case "$ARG" in |
277 | 87 | "--prefix="*) prefix=${ARG#--prefix=} ;; |
88 | "--exec-prefix="*) exec_prefix=${ARG#--exec-prefix=} ;; | |
89 | "--bindir="*) bindir=${ARG#----bindir=} ;; | |
90 | "--sbindir="*) sbindir=${ARG#--sbindir=} ;; | |
91 | "--libdir="*) libdir=${ARG#--libdir=} ;; | |
92 | "--libexecdir="*) libexecdir=${ARG#--libexecdir=} ;; | |
93 | "--datarootdir="*) datarootdir=${ARG#--datarootdir=} ;; | |
94 | "--datadir="*) datadir=${ARG#--datadir=} ;; | |
95 | "--sysconfdir="*) sysconfdir=${ARG#--sysconfdir=} ;; | |
96 | "--sharedstatedir="*) sharedstatedir=${ARG#--sharedstatedir=} ;; | |
97 | "--localstatedir="*) localstatedir=${ARG#--localstatedir=} ;; | |
98 | "--includedir="*) includedir=${ARG#--includedir=} ;; | |
99 | "--infodir="*) infodir=${ARG#--infodir=} ;; | |
100 | "--mandir"*) mandir=${ARG#--mandir} ;; | |
101 | "--localedir"*) localedir=${ARG#--localedir} ;; | |
102 | "--help"*) printhelp; abort_configure ;; | |
103 | "--debug") BUILD_TYPE="debug" ;; | |
104 | "--release") BUILD_TYPE="release" ;; | |
105 | "--toolkit="*) OPT_TOOLKIT=${ARG#--toolkit=} ;; | |
106 | "-"*) echo "unknown option: $ARG"; abort_configure ;; | |
107 | esac | |
0 | 108 | done |
109 | ||
277 | 110 | |
111 | ||
112 | # set defaults for dir variables | |
113 | : ${exec_prefix:="$prefix"} | |
114 | : ${bindir:='${exec_prefix}/bin'} | |
115 | : ${sbindir:='${exec_prefix}/sbin'} | |
116 | : ${libdir:='${exec_prefix}/lib'} | |
117 | : ${libexecdir:='${exec_prefix}/libexec'} | |
118 | : ${datarootdir:='${prefix}/share'} | |
119 | : ${datadir:='${datarootdir}'} | |
120 | : ${sysconfdir:='${prefix}/etc'} | |
121 | : ${sharedstatedir:='${prefix}/com'} | |
122 | : ${localstatedir:='${prefix}/var'} | |
123 | : ${runstatedir:='${localstatedir}/run'} | |
124 | : ${includedir:='${prefix}/include'} | |
125 | : ${infodir:='${datarootdir}/info'} | |
126 | : ${mandir:='${datarootdir}/man'} | |
127 | : ${localedir:='${datarootdir}/locale'} | |
128 | ||
129 | # check if a config.site exists and load it | |
130 | if [ -n "$CONFIG_SITE" ]; then | |
131 | # CONFIG_SITE may contain space separated file names | |
132 | for cs in $CONFIG_SITE; do | |
133 | printf "loading defaults from $cs... " | |
134 | . "$cs" | |
135 | echo ok | |
136 | done | |
137 | elif [ -f "$prefix/share/config.site" ]; then | |
138 | printf "loading site defaults... " | |
139 | . "$prefix/share/config.site" | |
140 | echo ok | |
141 | elif [ -f "$prefix/etc/config.site" ]; then | |
142 | printf "loading site defaults... " | |
143 | . "$prefix/etc/config.site" | |
144 | echo ok | |
0 | 145 | fi |
146 | ||
277 | 147 | # Test for availability of pkg-config |
148 | PKG_CONFIG=`command -v pkg-config` | |
149 | : ${PKG_CONFIG:="false"} | |
0 | 150 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
151 | # Simple uname based platform detection |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
152 | # $PLATFORM is used for platform dependent dependency selection |
277 | 153 | OS=`uname -s` |
154 | OS_VERSION=`uname -r` | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
155 | printf "detect platform... " |
277 | 156 | if [ "$OS" = "SunOS" ]; then |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
157 | PLATFORM="solaris sunos unix svr4" |
277 | 158 | elif [ "$OS" = "Linux" ]; then |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
159 | PLATFORM="linux unix" |
277 | 160 | elif [ "$OS" = "FreeBSD" ]; then |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
161 | PLATFORM="freebsd bsd unix" |
277 | 162 | elif [ "$OS" = "OpenBSD" ]; then |
163 | PLATFORM="openbsd bsd unix" | |
164 | elif [ "$OS" = "NetBSD" ]; then | |
165 | PLATFORM="netbsd bsd unix" | |
166 | elif [ "$OS" = "Darwin" ]; then | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
167 | PLATFORM="macos osx bsd unix" |
277 | 168 | elif echo "$OS" | grep -i "MINGW" > /dev/null; then |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
169 | PLATFORM="windows mingw" |
105
86d729874ff4
added FreeBSD support and fixed gtk2 build
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
79
diff
changeset
|
170 | fi |
277 | 171 | : ${PLATFORM:="unix"} |
0 | 172 | |
277 | 173 | PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -` |
174 | echo "$PLATFORM_NAME" | |
0 | 175 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
176 | isplatform() |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
177 | { |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
178 | for p in $PLATFORM |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
179 | do |
277 | 180 | if [ "$p" = "$1" ]; then |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
181 | return 0 |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
182 | fi |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
183 | done |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
184 | return 1 |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
185 | } |
277 | 186 | notisplatform() |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
187 | { |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
188 | for p in $PLATFORM |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
189 | do |
277 | 190 | if [ "$p" = "$1" ]; then |
191 | return 1 | |
192 | fi | |
193 | done | |
194 | return 0 | |
195 | } | |
196 | istoolchain() | |
197 | { | |
198 | for t in $TOOLCHAIN | |
199 | do | |
200 | if [ "$t" = "$1" ]; then | |
201 | return 0 | |
202 | fi | |
203 | done | |
204 | return 1 | |
205 | } | |
206 | notistoolchain() | |
207 | { | |
208 | for t in $TOOLCHAIN | |
209 | do | |
210 | if [ "$t" = "$1" ]; then | |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
211 | return 1 |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
212 | fi |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
213 | done |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
214 | return 0 |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
215 | } |
0 | 216 | |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
217 | |
277 | 218 | # generate vars.mk |
219 | cat > "$TEMP_DIR/vars.mk" << __EOF__ | |
220 | prefix=$prefix | |
221 | exec_prefix=$exec_prefix | |
222 | bindir=$bindir | |
223 | sbindir=$sbindir | |
224 | libdir=$libdir | |
225 | libexecdir=$libexecdir | |
226 | datarootdir=$datarootdir | |
227 | datadir=$datadir | |
228 | sysconfdir=$sysconfdir | |
229 | sharedstatedir=$sharedstatedir | |
230 | localstatedir=$localstatedir | |
231 | runstatedir=$runstatedir | |
232 | includedir=$includedir | |
233 | infodir=$infodir | |
234 | mandir=$mandir | |
235 | localedir=$localedir | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
236 | __EOF__ |
0 | 237 | |
277 | 238 | # toolchain detection utilities |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
239 | . make/toolchain.sh |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
240 | |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
241 | # |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
242 | # DEPENDENCIES |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
243 | # |
0 | 244 | |
277 | 245 | # check languages |
246 | lang_c= | |
247 | lang_cpp= | |
248 | if detect_c_compiler ; then | |
249 | lang_c=1 | |
250 | fi | |
251 | ||
252 | # create buffer for make variables required by dependencies | |
253 | echo > "$TEMP_DIR/make.mk" | |
254 | ||
255 | test_pkg_config() | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
256 | { |
277 | 257 | if "$PKG_CONFIG" --exists "$1" ; then : |
258 | else return 1 ; fi | |
259 | if [ -z "$2" ] || "$PKG_CONFIG" --atleast-version="$2" "$1" ; then : | |
260 | else return 1 ; fi | |
261 | if [ -z "$3" ] || "$PKG_CONFIG" --exact-version="$3" "$1" ; then : | |
262 | else return 1 ; fi | |
263 | if [ -z "$4" ] || "$PKG_CONFIG" --max-version="$4" "$1" ; then : | |
264 | else return 1 ; fi | |
265 | return 0 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
266 | } |
277 | 267 | |
268 | print_check_msg() | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
269 | { |
277 | 270 | if [ -z "$1" ]; then |
271 | shift | |
272 | printf "$@" | |
273 | fi | |
274 | } | |
275 | ||
276 | dependency_error_gtk2legacy() | |
277 | { | |
278 | print_check_msg "$dep_checked_gtk2legacy" "checking for gtk2legacy... " | |
279 | # dependency gtk2legacy | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
280 | while true |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
281 | do |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
282 | if [ -z "$PKG_CONFIG" ]; then |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
283 | break |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
284 | fi |
277 | 285 | if test_pkg_config "gtk+-2.0" "" "" "" ; then |
286 | TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags gtk+-2.0`" | |
287 | TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs gtk+-2.0`" | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
288 | else |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
289 | break |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
290 | fi |
277 | 291 | TEMP_CFLAGS="$TEMP_CFLAGS -DUI_GTK2 -DUI_GTK2LEGACY" |
292 | TEMP_LDFLAGS="$TEMP_LDFLAGS -lpthread" | |
293 | print_check_msg "$dep_checked_gtk2legacy" "yes\n" | |
294 | dep_checked_gtk2legacy=1 | |
295 | return 1 | |
296 | done | |
297 | ||
298 | print_check_msg "$dep_checked_gtk2legacy" "no\n" | |
299 | dep_checked_gtk2legacy=1 | |
300 | return 0 | |
301 | } | |
302 | dependency_error_gtk2() | |
303 | { | |
304 | print_check_msg "$dep_checked_gtk2" "checking for gtk2... " | |
305 | # dependency gtk2 | |
306 | while true | |
307 | do | |
308 | if [ -z "$PKG_CONFIG" ]; then | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
309 | break |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
310 | fi |
277 | 311 | if pkg-config --atleast-version=2.20 gtk+-2.0 > /dev/null ; then |
312 | : | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
313 | else |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
314 | break |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
315 | fi |
277 | 316 | if test_pkg_config "gtk+-2.0" "" "" "" ; then |
317 | TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags gtk+-2.0`" | |
318 | TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs gtk+-2.0`" | |
319 | else | |
320 | break | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
321 | fi |
277 | 322 | TEMP_CFLAGS="$TEMP_CFLAGS -DUI_GTK2" |
323 | TEMP_LDFLAGS="$TEMP_LDFLAGS -lpthread" | |
324 | print_check_msg "$dep_checked_gtk2" "yes\n" | |
325 | dep_checked_gtk2=1 | |
326 | return 1 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
327 | done |
277 | 328 | |
329 | print_check_msg "$dep_checked_gtk2" "no\n" | |
330 | dep_checked_gtk2=1 | |
331 | return 0 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
332 | } |
277 | 333 | dependency_error_gtk3() |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
334 | { |
277 | 335 | print_check_msg "$dep_checked_gtk3" "checking for gtk3... " |
336 | # dependency gtk3 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
337 | while true |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
338 | do |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
339 | if [ -z "$PKG_CONFIG" ]; then |
277 | 340 | break |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
341 | fi |
277 | 342 | if test_pkg_config "gtk+-3.0" "" "" "" ; then |
343 | TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags gtk+-3.0`" | |
344 | TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs gtk+-3.0`" | |
345 | else | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
346 | break |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
347 | fi |
277 | 348 | TEMP_CFLAGS="$TEMP_CFLAGS -DUI_GTK3" |
349 | TEMP_LDFLAGS="$TEMP_LDFLAGS -lpthread" | |
350 | print_check_msg "$dep_checked_gtk3" "yes\n" | |
351 | dep_checked_gtk3=1 | |
352 | return 1 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
353 | done |
277 | 354 | |
355 | print_check_msg "$dep_checked_gtk3" "no\n" | |
356 | dep_checked_gtk3=1 | |
357 | return 0 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
358 | } |
277 | 359 | dependency_error_gtk4() |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
360 | { |
277 | 361 | print_check_msg "$dep_checked_gtk4" "checking for gtk4... " |
362 | # dependency gtk4 | |
170
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
363 | while true |
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
364 | do |
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
365 | if [ -z "$PKG_CONFIG" ]; then |
277 | 366 | break |
170
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
367 | fi |
292
8e5e7adf5372
add gtk4 option to the build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
277
diff
changeset
|
368 | if test_pkg_config "gtk4" "" "" "" ; then |
8e5e7adf5372
add gtk4 option to the build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
277
diff
changeset
|
369 | TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags gtk4`" |
8e5e7adf5372
add gtk4 option to the build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
277
diff
changeset
|
370 | TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs gtk4`" |
277 | 371 | else |
170
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
372 | break |
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
373 | fi |
292
8e5e7adf5372
add gtk4 option to the build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
277
diff
changeset
|
374 | TEMP_CFLAGS="$TEMP_CFLAGS -DUI_GTK4" |
277 | 375 | TEMP_LDFLAGS="$TEMP_LDFLAGS -lpthread" |
376 | print_check_msg "$dep_checked_gtk4" "yes\n" | |
377 | dep_checked_gtk4=1 | |
378 | return 1 | |
170
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
379 | done |
277 | 380 | |
381 | print_check_msg "$dep_checked_gtk4" "no\n" | |
382 | dep_checked_gtk4=1 | |
383 | return 0 | |
170
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
384 | } |
277 | 385 | dependency_error_motif() |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
386 | { |
277 | 387 | print_check_msg "$dep_checked_motif" "checking for motif... " |
176
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
388 | # dependency motif platform="bsd" |
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
389 | while true |
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
390 | do |
277 | 391 | if notisplatform "bsd"; then |
176
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
392 | break |
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
393 | fi |
277 | 394 | TEMP_CFLAGS="$TEMP_CFLAGS -DUI_MOTIF -I/usr/local/include/X11" |
395 | TEMP_LDFLAGS="$TEMP_LDFLAGS -lXm -lXt -lX11 -lpthread" | |
396 | print_check_msg "$dep_checked_motif" "yes\n" | |
397 | dep_checked_motif=1 | |
398 | return 1 | |
176
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
399 | done |
277 | 400 | |
401 | # dependency motif | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
402 | while true |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
403 | do |
277 | 404 | TEMP_CFLAGS="$TEMP_CFLAGS -DUI_MOTIF" |
405 | TEMP_LDFLAGS="$TEMP_LDFLAGS -lXm -lXt -lX11 -lpthread" | |
406 | print_check_msg "$dep_checked_motif" "yes\n" | |
407 | dep_checked_motif=1 | |
408 | return 1 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
409 | done |
277 | 410 | |
411 | print_check_msg "$dep_checked_motif" "no\n" | |
412 | dep_checked_motif=1 | |
413 | return 0 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
414 | } |
277 | 415 | dependency_error_cocoa() |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
416 | { |
277 | 417 | print_check_msg "$dep_checked_cocoa" "checking for cocoa... " |
418 | # dependency cocoa platform="macos" | |
419 | while true | |
420 | do | |
421 | if notisplatform "macos"; then | |
422 | break | |
423 | fi | |
424 | TEMP_CFLAGS="$TEMP_CFLAGS -DUI_COCOA" | |
425 | TEMP_LDFLAGS="$TEMP_LDFLAGS -lobjc -framework Cocoa" | |
426 | print_check_msg "$dep_checked_cocoa" "yes\n" | |
427 | dep_checked_cocoa=1 | |
428 | return 1 | |
429 | done | |
430 | ||
431 | print_check_msg "$dep_checked_cocoa" "no\n" | |
432 | dep_checked_cocoa=1 | |
433 | return 0 | |
434 | } | |
435 | dependency_error_winui() | |
436 | { | |
437 | print_check_msg "$dep_checked_winui" "checking for winui... " | |
171
5065d0d52680
replace wpf with winui in the configure script
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
170
diff
changeset
|
438 | # dependency winui platform="windows" |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
439 | while true |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
440 | do |
277 | 441 | if notisplatform "windows"; then |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
442 | break |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
443 | fi |
277 | 444 | TEMP_CFLAGS="$TEMP_CFLAGS -DUI_WINUI" |
445 | print_check_msg "$dep_checked_winui" "yes\n" | |
446 | dep_checked_winui=1 | |
447 | return 1 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
448 | done |
277 | 449 | |
450 | print_check_msg "$dep_checked_winui" "no\n" | |
451 | dep_checked_winui=1 | |
452 | return 0 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
453 | } |
277 | 454 | |
455 | # start collecting dependency information | |
456 | echo > "$TEMP_DIR/flags.mk" | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
457 | |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
458 | DEPENDENCIES_FAILED= |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
459 | ERROR=0 |
277 | 460 | # unnamed dependencies |
461 | TEMP_CFLAGS= | |
462 | TEMP_CXXFLAGS= | |
463 | TEMP_LDFLAGS= | |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
464 | while true |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
465 | do |
277 | 466 | while true |
467 | do | |
468 | if [ -z "$lang_c" ] ; then | |
469 | ERROR=1 | |
470 | break | |
471 | fi | |
472 | ||
473 | break | |
474 | done | |
475 | break | |
476 | done | |
477 | while true | |
478 | do | |
479 | if notisplatform "macos"; then | |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
480 | break |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
481 | fi |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
482 | while true |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
483 | do |
277 | 484 | |
485 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
174 | 486 | OBJ_EXT = .o |
487 | LIB_EXT = .a | |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
488 | PACKAGE_SCRIPT = package_osx.sh |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
489 | __EOF__ |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
490 | break |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
491 | done |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
492 | break |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
493 | done |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
494 | while true |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
495 | do |
277 | 496 | if notisplatform "unix"; then |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
497 | break |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
498 | fi |
277 | 499 | if isplatform "macos" || istoolchain "macos"; then |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
500 | break |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
501 | fi |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
502 | while true |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
503 | do |
277 | 504 | |
505 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
174 | 506 | OBJ_EXT = .o |
507 | LIB_EXT = .a | |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
508 | PACKAGE_SCRIPT = package_unix.sh |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
509 | __EOF__ |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
510 | break |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
511 | done |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
512 | break |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
513 | done |
176
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
514 | while true |
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
515 | do |
277 | 516 | if notisplatform "bsd"; then |
176
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
517 | break |
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
518 | fi |
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
519 | while true |
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
520 | do |
277 | 521 | |
522 | TEMP_CFLAGS="$TEMP_CFLAGS -I/usr/local/include" | |
523 | TEMP_LDFLAGS="$TEMP_LDFLAGS -L/usr/local/lib" | |
176
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
524 | break |
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
525 | done |
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
526 | break |
bc63cb601f6d
port motif code to ucx 3
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
174
diff
changeset
|
527 | done |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
528 | |
277 | 529 | # add general dependency flags to flags.mk |
530 | echo "# general flags" >> "$TEMP_DIR/flags.mk" | |
531 | if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then | |
532 | echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" | |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
533 | fi |
277 | 534 | if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then |
535 | echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" | |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
536 | fi |
277 | 537 | if [ -n "${TEMP_LDFLAGS}" ]; then |
538 | echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" | |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
539 | fi |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
540 | |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
541 | # |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
542 | # OPTION VALUES |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
543 | # |
170
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
544 | checkopt_toolkit_gtk4() |
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
545 | { |
277 | 546 | VERR=0 |
547 | if dependency_error_gtk4 ; then | |
548 | VERR=1 | |
549 | fi | |
550 | if [ $VERR -ne 0 ]; then | |
551 | return 1 | |
552 | fi | |
553 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
170
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
554 | TOOLKIT = gtk |
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
555 | GTKOBJ = draw_cairo.o |
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
556 | __EOF__ |
277 | 557 | return 0 |
170
ad9edb497857
enable gtk4 configure option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
159
diff
changeset
|
558 | } |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
559 | checkopt_toolkit_gtk3() |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
560 | { |
277 | 561 | VERR=0 |
562 | if dependency_error_gtk3 ; then | |
563 | VERR=1 | |
564 | fi | |
565 | if [ $VERR -ne 0 ]; then | |
566 | return 1 | |
567 | fi | |
568 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
569 | TOOLKIT = gtk |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
570 | GTKOBJ = draw_cairo.o |
0 | 571 | __EOF__ |
277 | 572 | return 0 |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
573 | } |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
574 | checkopt_toolkit_gtk2() |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
575 | { |
277 | 576 | VERR=0 |
577 | if dependency_error_gtk2 ; then | |
578 | VERR=1 | |
579 | fi | |
580 | if [ $VERR -ne 0 ]; then | |
581 | return 1 | |
582 | fi | |
583 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
584 | TOOLKIT = gtk |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
585 | GTKOBJ = draw_cairo.o |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
586 | __EOF__ |
277 | 587 | return 0 |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
588 | } |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
589 | checkopt_toolkit_gtk2legacy() |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
590 | { |
277 | 591 | VERR=0 |
592 | if dependency_error_gtk2legacy ; then | |
593 | VERR=1 | |
594 | fi | |
595 | if [ $VERR -ne 0 ]; then | |
596 | return 1 | |
597 | fi | |
598 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
599 | TOOLKIT = gtk |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
600 | GTKOBJ = draw_gdk.o |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
601 | __EOF__ |
277 | 602 | return 0 |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
603 | } |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
604 | checkopt_toolkit_qt5() |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
605 | { |
277 | 606 | VERR=0 |
607 | if dependency_error_qt5 ; then | |
608 | VERR=1 | |
609 | fi | |
610 | if [ $VERR -ne 0 ]; then | |
611 | return 1 | |
612 | fi | |
613 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
614 | TOOLKIT = qt |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
615 | LD = $(CXX) |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
616 | __EOF__ |
277 | 617 | return 0 |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
618 | } |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
619 | checkopt_toolkit_qt4() |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
620 | { |
277 | 621 | VERR=0 |
622 | if dependency_error_qt4 ; then | |
623 | VERR=1 | |
624 | fi | |
625 | if [ $VERR -ne 0 ]; then | |
626 | return 1 | |
627 | fi | |
628 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
629 | TOOLKIT = qt |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
630 | LD = $(CXX) |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
631 | __EOF__ |
277 | 632 | return 0 |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
633 | } |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
634 | checkopt_toolkit_motif() |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
635 | { |
277 | 636 | VERR=0 |
637 | if dependency_error_motif ; then | |
638 | VERR=1 | |
639 | fi | |
640 | if [ $VERR -ne 0 ]; then | |
641 | return 1 | |
642 | fi | |
643 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
644 | TOOLKIT = motif |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
645 | __EOF__ |
277 | 646 | return 0 |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
647 | } |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
648 | |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
649 | # |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
650 | # TARGETS |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
651 | # |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
652 | |
277 | 653 | echo >> "$TEMP_DIR/flags.mk" |
654 | echo "configuring target: tk" | |
655 | echo "# flags for target tk" >> "$TEMP_DIR/flags.mk" | |
656 | TEMP_CFLAGS= | |
657 | TEMP_CXXFLAGS= | |
658 | TEMP_LDFLAGS= | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
659 | |
0 | 660 | |
158
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
661 | # Features |
4bde241c49b1
update build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
156
diff
changeset
|
662 | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
663 | # Option: --toolkit |
277 | 664 | if [ -z "$OPT_TOOLKIT" ]; then |
665 | echo "auto-detecting option 'toolkit'" | |
666 | SAVED_ERROR="$ERROR" | |
667 | SAVED_DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED" | |
668 | ERROR=1 | |
669 | while true | |
670 | do | |
671 | if isplatform "windows"; then | |
672 | if checkopt_toolkit_winui ; then | |
673 | echo " toolkit: winui" >> "$TEMP_DIR/options" | |
674 | ERROR=0 | |
675 | break | |
676 | fi | |
677 | fi | |
678 | if isplatform "macos"; then | |
679 | if checkopt_toolkit_cocoa ; then | |
680 | echo " toolkit: cocoa" >> "$TEMP_DIR/options" | |
681 | ERROR=0 | |
682 | break | |
683 | fi | |
684 | fi | |
292
8e5e7adf5372
add gtk4 option to the build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
277
diff
changeset
|
685 | if checkopt_toolkit_gtk4 ; then |
8e5e7adf5372
add gtk4 option to the build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
277
diff
changeset
|
686 | echo " toolkit: gtk4" >> "$TEMP_DIR/options" |
277 | 687 | ERROR=0 |
688 | break | |
689 | fi | |
292
8e5e7adf5372
add gtk4 option to the build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
277
diff
changeset
|
690 | if checkopt_toolkit_gtk3 ; then |
8e5e7adf5372
add gtk4 option to the build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
277
diff
changeset
|
691 | echo " toolkit: gtk3" >> "$TEMP_DIR/options" |
277 | 692 | ERROR=0 |
693 | break | |
694 | fi | |
695 | if checkopt_toolkit_gtk2 ; then | |
696 | echo " toolkit: gtk2" >> "$TEMP_DIR/options" | |
697 | ERROR=0 | |
698 | break | |
699 | fi | |
700 | if checkopt_toolkit_qt4 ; then | |
701 | echo " toolkit: qt4" >> "$TEMP_DIR/options" | |
702 | ERROR=0 | |
703 | break | |
704 | fi | |
705 | if checkopt_toolkit_motif ; then | |
706 | echo " toolkit: motif" >> "$TEMP_DIR/options" | |
707 | ERROR=0 | |
708 | break | |
709 | fi | |
710 | break | |
711 | done | |
712 | if [ $ERROR -ne 0 ]; then | |
713 | SAVED_ERROR=1 | |
714 | SAVED_DEPENDENCIES_FAILED="option 'toolkit' $SAVED_DEPENDENCIES_FAILED" | |
715 | fi | |
716 | ERROR="$SAVED_ERROR" | |
717 | DEPENDENCIES_FAILED="$SAVED_DEPENDENCIES_FAILED" | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
718 | else |
277 | 719 | echo "checking option toolkit = $OPT_TOOLKIT" |
720 | if false; then | |
721 | false | |
722 | elif [ "$OPT_TOOLKIT" = "gtk4" ]; then | |
723 | echo " toolkit: $OPT_TOOLKIT" >> $TEMP_DIR/options | |
724 | if checkopt_toolkit_gtk4 ; then | |
725 | : | |
726 | else | |
727 | ERROR=1 | |
728 | DEPENDENCIES_FAILED="option 'toolkit' $DEPENDENCIES_FAILED" | |
729 | fi | |
730 | elif [ "$OPT_TOOLKIT" = "gtk3" ]; then | |
731 | echo " toolkit: $OPT_TOOLKIT" >> $TEMP_DIR/options | |
732 | if checkopt_toolkit_gtk3 ; then | |
733 | : | |
734 | else | |
735 | ERROR=1 | |
736 | DEPENDENCIES_FAILED="option 'toolkit' $DEPENDENCIES_FAILED" | |
737 | fi | |
738 | elif [ "$OPT_TOOLKIT" = "gtk2" ]; then | |
739 | echo " toolkit: $OPT_TOOLKIT" >> $TEMP_DIR/options | |
740 | if checkopt_toolkit_gtk2 ; then | |
741 | : | |
742 | else | |
743 | ERROR=1 | |
744 | DEPENDENCIES_FAILED="option 'toolkit' $DEPENDENCIES_FAILED" | |
745 | fi | |
746 | elif [ "$OPT_TOOLKIT" = "gtk2legacy" ]; then | |
747 | echo " toolkit: $OPT_TOOLKIT" >> $TEMP_DIR/options | |
748 | if checkopt_toolkit_gtk2legacy ; then | |
749 | : | |
750 | else | |
751 | ERROR=1 | |
752 | DEPENDENCIES_FAILED="option 'toolkit' $DEPENDENCIES_FAILED" | |
753 | fi | |
754 | elif [ "$OPT_TOOLKIT" = "qt5" ]; then | |
755 | echo " toolkit: $OPT_TOOLKIT" >> $TEMP_DIR/options | |
756 | if checkopt_toolkit_qt5 ; then | |
757 | : | |
758 | else | |
759 | ERROR=1 | |
760 | DEPENDENCIES_FAILED="option 'toolkit' $DEPENDENCIES_FAILED" | |
761 | fi | |
762 | elif [ "$OPT_TOOLKIT" = "qt4" ]; then | |
763 | echo " toolkit: $OPT_TOOLKIT" >> $TEMP_DIR/options | |
764 | if checkopt_toolkit_qt4 ; then | |
765 | : | |
766 | else | |
767 | ERROR=1 | |
768 | DEPENDENCIES_FAILED="option 'toolkit' $DEPENDENCIES_FAILED" | |
769 | fi | |
770 | elif [ "$OPT_TOOLKIT" = "motif" ]; then | |
771 | echo " toolkit: $OPT_TOOLKIT" >> $TEMP_DIR/options | |
772 | if checkopt_toolkit_motif ; then | |
773 | : | |
774 | else | |
775 | ERROR=1 | |
776 | DEPENDENCIES_FAILED="option 'toolkit' $DEPENDENCIES_FAILED" | |
777 | fi | |
778 | fi | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
779 | fi |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
780 | |
277 | 781 | if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then |
782 | echo "TK_CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" | |
783 | fi | |
784 | if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then | |
785 | echo "TK_CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
786 | fi |
277 | 787 | if [ "$BUILD_TYPE" = "debug" ]; then |
788 | if [ -n "$lang_c" ]; then | |
789 | echo 'TK_CFLAGS += ${DEBUG_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" | |
790 | fi | |
791 | if [ -n "$lang_cpp" ]; then | |
792 | echo 'TK_CXXFLAGS += ${DEBUG_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" | |
793 | fi | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
794 | fi |
277 | 795 | if [ "$BUILD_TYPE" = "release" ]; then |
796 | if [ -n "$lang_c" ]; then | |
797 | echo 'TK_CFLAGS += ${RELEASE_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" | |
798 | fi | |
799 | if [ -n "$lang_cpp" ]; then | |
800 | echo 'TK_CXXFLAGS += ${RELEASE_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" | |
801 | fi | |
802 | fi | |
803 | if [ -n "${TEMP_LDFLAGS}" ]; then | |
804 | echo "TK_LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
805 | fi |
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
806 | |
277 | 807 | |
808 | # final result | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
809 | if [ $ERROR -ne 0 ]; then |
277 | 810 | echo |
811 | echo "Error: Unresolved dependencies" | |
812 | echo "$DEPENDENCIES_FAILED" | |
813 | abort_configure | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
814 | fi |
0 | 815 | |
816 | echo "configure finished" | |
817 | echo | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
818 | echo "Build Config:" |
277 | 819 | echo " PREFIX: $prefix" |
820 | echo " TOOLCHAIN: $TOOLCHAIN_NAME" | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
821 | echo "Options:" |
277 | 822 | cat "$TEMP_DIR/options" |
0 | 823 | echo |
824 | ||
277 | 825 | # generate the config.mk file |
826 | cat > "$TEMP_DIR/config.mk" << __EOF__ | |
827 | # | |
828 | # config.mk generated by configure | |
829 | # | |
156
62f1a55535e7
new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
105
diff
changeset
|
830 | |
277 | 831 | __EOF__ |
832 | write_toolchain_defaults "$TEMP_DIR/toolchain.mk" | |
833 | cat "$TEMP_DIR/vars.mk" "$TEMP_DIR/toolchain.mk" "$TEMP_DIR/flags.mk" "$TEMP_DIR/make.mk" > config.mk | |
834 | rm -Rf "$TEMP_DIR" |