Wed, 02 Jul 2025 23:21:17 +0200
resolve TODOs regarding input.h
a) mouse position must be integer, because it can be negative (though rarely)
b) we should not trade "access complexity" for space in the scancodes array
0 | 1 | #!/bin/sh |
2 | ||
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
3 | #set( $D = '$' ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
4 | #[[ |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
5 | # some utility functions |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
6 | isplatform() |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
7 | { |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
8 | for p in $PLATFORM |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
9 | do |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
10 | if [ "$p" = "$1" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
11 | return 0 |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
12 | fi |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
13 | done |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
14 | return 1 |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
15 | } |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
16 | notisplatform() |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
17 | { |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
18 | for p in $PLATFORM |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
19 | do |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
20 | if [ "$p" = "$1" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
21 | return 1 |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
22 | fi |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
23 | done |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
24 | return 0 |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
25 | } |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
26 | istoolchain() |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
27 | { |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
28 | for t in $TOOLCHAIN |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
29 | do |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
30 | if [ "$t" = "$1" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
31 | return 0 |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
32 | fi |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
33 | done |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
34 | return 1 |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
35 | } |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
36 | notistoolchain() |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
37 | { |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
38 | for t in $TOOLCHAIN |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
39 | do |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
40 | if [ "$t" = "$1" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
41 | return 1 |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
42 | fi |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
43 | done |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
44 | return 0 |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
45 | } |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
46 | |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
47 | # clean abort |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
48 | abort_configure() |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
49 | { |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
50 | rm -Rf "$TEMP_DIR" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
51 | exit 1 |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
52 | } |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
53 | |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
54 | # Test for availability of pkg-config |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
55 | PKG_CONFIG=`command -v pkg-config` |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
56 | : ${PKG_CONFIG:="false"} |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
57 | |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
58 | # Simple uname based platform detection |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
59 | # $PLATFORM is used for platform dependent dependency selection |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
60 | OS=`uname -s` |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
61 | OS_VERSION=`uname -r` |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
62 | printf "detect platform... " |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
63 | if [ "$OS" = "SunOS" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
64 | PLATFORM="solaris sunos unix svr4" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
65 | elif [ "$OS" = "Linux" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
66 | PLATFORM="linux unix" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
67 | elif [ "$OS" = "FreeBSD" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
68 | PLATFORM="freebsd bsd unix" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
69 | elif [ "$OS" = "OpenBSD" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
70 | PLATFORM="openbsd bsd unix" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
71 | elif [ "$OS" = "NetBSD" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
72 | PLATFORM="netbsd bsd unix" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
73 | elif [ "$OS" = "Darwin" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
74 | PLATFORM="macos osx bsd unix" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
75 | elif echo "$OS" | grep -i "MINGW" > /dev/null; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
76 | PLATFORM="windows mingw" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
77 | fi |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
78 | : ${PLATFORM:="unix"} |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
79 | |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
80 | PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -` |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
81 | echo "$PLATFORM_NAME" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
82 | ]]# |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
83 | |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
84 | # help text |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
85 | printhelp() |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
86 | { |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
87 | echo "Usage: $0 [OPTIONS]..." |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
88 | cat << __EOF__ |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
89 | Installation directories: |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
90 | --prefix=PREFIX path prefix for architecture-independent files |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
91 | [${D}prefix] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
92 | --exec-prefix=EPREFIX path prefix for architecture-dependent files |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
93 | [PREFIX] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
94 | |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
95 | --bindir=DIR user executables [EPREFIX/bin] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
96 | --sbindir=DIR system admin executables [EPREFIX/sbin] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
97 | --libexecdir=DIR program executables [EPREFIX/libexec] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
98 | --sysconfdir=DIR system configuration files [PREFIX/etc] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
99 | --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
100 | --localstatedir=DIR modifiable single-machine data [PREFIX/var] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
101 | --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
102 | --libdir=DIR object code libraries [EPREFIX/lib] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
103 | --includedir=DIR C header files [PREFIX/include] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
104 | --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
105 | --datadir=DIR read-only architecture-independent data [DATAROOTDIR] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
106 | --infodir=DIR info documentation [DATAROOTDIR/info] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
107 | --mandir=DIR man documentation [DATAROOTDIR/man] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
108 | --localedir=DIR locale-dependent data [DATAROOTDIR/locale] |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
109 | |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
110 | Build Types: |
103 | 111 | --debug add extra compile flags for debug builds |
112 | --release add extra compile flags for release builds | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
113 | #if( $options.size() > 0 ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
114 | |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
115 | Options: |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
116 | #foreach( $opt in $options ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
117 | --${opt.argument}=${opt.valuesString} |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
118 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
119 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
120 | #if( $features.size() > 0 ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
121 | |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
122 | Optional Features: |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
123 | #foreach( $feature in $features ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
124 | ${feature.helpText} |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
125 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
126 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
127 | |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
128 | __EOF__ |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
129 | } |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
130 | |
0 | 131 | # create temporary directory |
132 | TEMP_DIR=".tmp-`uname -n`" | |
133 | rm -Rf "$TEMP_DIR" | |
134 | if mkdir -p "$TEMP_DIR"; then | |
135 | : | |
136 | else | |
137 | echo "Cannot create tmp dir $TEMP_DIR" | |
138 | echo "Abort" | |
139 | exit 1 | |
140 | fi | |
141 | touch "$TEMP_DIR/options" | |
142 | touch "$TEMP_DIR/features" | |
143 | ||
144 | # define standard variables | |
1 | 145 | # also define standard prefix (this is where we will search for config.site) |
146 | prefix=/usr | |
147 | exec_prefix= | |
148 | bindir= | |
149 | sbindir= | |
150 | libdir= | |
151 | libexecdir= | |
152 | datarootdir= | |
153 | datadir= | |
154 | sysconfdir= | |
155 | sharedstatedir= | |
156 | localstatedir= | |
157 | runstatedir= | |
158 | includedir= | |
159 | infodir= | |
160 | localedir= | |
161 | mandir= | |
0 | 162 | |
163 | # custom variables | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
164 | #foreach( $cfg in $config ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
165 | if true \ |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
166 | #if( $cfg.platform ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
167 | && isplatform "${cfg.platform}" \ |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
168 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
169 | #foreach( $np in $cfg.notList ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
170 | && notisplatform "${np}" \ |
0 | 171 | #end |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
172 | ; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
173 | #foreach( $var in $cfg.vars ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
174 | #if( $var.exec ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
175 | ${var.varName}=`${var.value}` |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
176 | #else |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
177 | ${var.varName}="${var.value}" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
178 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
179 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
180 | fi |
0 | 181 | #end |
182 | ||
183 | # features | |
184 | #foreach( $feature in $features ) | |
185 | #if( ${feature.auto} ) | |
186 | ${feature.varName}=auto | |
187 | #end | |
188 | #end | |
189 | ||
190 | # | |
191 | # parse arguments | |
192 | # | |
193 | BUILD_TYPE="default" | |
194 | for ARG in "$@" | |
195 | do | |
196 | case "$ARG" in | |
1 | 197 | "--prefix="*) prefix=${D}{ARG#--prefix=} ;; |
198 | "--exec-prefix="*) exec_prefix=${D}{ARG#--exec-prefix=} ;; | |
199 | "--bindir="*) bindir=${D}{ARG#----bindir=} ;; | |
200 | "--sbindir="*) sbindir=${D}{ARG#--sbindir=} ;; | |
201 | "--libdir="*) libdir=${D}{ARG#--libdir=} ;; | |
202 | "--libexecdir="*) libexecdir=${D}{ARG#--libexecdir=} ;; | |
203 | "--datarootdir="*) datarootdir=${D}{ARG#--datarootdir=} ;; | |
204 | "--datadir="*) datadir=${D}{ARG#--datadir=} ;; | |
205 | "--sysconfdir="*) sysconfdir=${D}{ARG#--sysconfdir=} ;; | |
206 | "--sharedstatedir="*) sharedstatedir=${D}{ARG#--sharedstatedir=} ;; | |
207 | "--localstatedir="*) localstatedir=${D}{ARG#--localstatedir=} ;; | |
208 | "--includedir="*) includedir=${D}{ARG#--includedir=} ;; | |
209 | "--infodir="*) infodir=${D}{ARG#--infodir=} ;; | |
210 | "--mandir"*) mandir=${D}{ARG#--mandir} ;; | |
211 | "--localedir"*) localedir=${D}{ARG#--localedir} ;; | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
212 | "--help"*) printhelp; abort_configure ;; |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
213 | "--debug") BUILD_TYPE="debug" ;; |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
214 | "--release") BUILD_TYPE="release" ;; |
0 | 215 | #foreach( $opt in $options ) |
216 | "--${opt.argument}="*) ${opt.varName}=${D}{ARG#--${opt.argument}=} ;; | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
217 | "--${opt.argument}") echo "option '$ARG' needs a value:"; echo " $ARG=${opt.valuesString}"; abort_configure ;; |
0 | 218 | #end |
219 | #foreach( $feature in $features ) | |
220 | "--enable-${feature.arg}") ${feature.varName}=on ;; | |
221 | "--disable-${feature.arg}") unset ${feature.varName} ;; | |
222 | #end | |
223 | "-"*) echo "unknown option: $ARG"; abort_configure ;; | |
224 | esac | |
225 | done | |
226 | ||
227 | ## Begin unparsed content. ** | |
228 | #[[ | |
1 | 229 | |
230 | # set defaults for dir variables | |
231 | : ${exec_prefix:="$prefix"} | |
232 | : ${bindir:='${exec_prefix}/bin'} | |
233 | : ${sbindir:='${exec_prefix}/sbin'} | |
234 | : ${libdir:='${exec_prefix}/lib'} | |
235 | : ${libexecdir:='${exec_prefix}/libexec'} | |
236 | : ${datarootdir:='${prefix}/share'} | |
237 | : ${datadir:='${datarootdir}'} | |
238 | : ${sysconfdir:='${prefix}/etc'} | |
239 | : ${sharedstatedir:='${prefix}/com'} | |
240 | : ${localstatedir:='${prefix}/var'} | |
241 | : ${runstatedir:='${localstatedir}/run'} | |
242 | : ${includedir:='${prefix}/include'} | |
243 | : ${infodir:='${datarootdir}/info'} | |
244 | : ${mandir:='${datarootdir}/man'} | |
245 | : ${localedir:='${datarootdir}/locale'} | |
246 | ||
103 | 247 | # remember the above values and compare them later |
248 | orig_bindir="$bindir" | |
249 | orig_sbindir="$sbindir" | |
250 | orig_libdir="$libdir" | |
251 | orig_libexecdir="$libexecdir" | |
252 | orig_datarootdir="$datarootdir" | |
253 | orig_datadir="$datadir" | |
254 | orig_sysconfdir="$sysconfdir" | |
255 | orig_sharedstatedir="$sharedstatedir" | |
256 | orig_localstatedir="$localstatedir" | |
257 | orig_runstatedir="$runstatedir" | |
258 | orig_includedir="$includedir" | |
259 | orig_infodir="$infodir" | |
260 | orig_mandir="$mandir" | |
261 | orig_localedir="$localedir" | |
262 | ||
1 | 263 | # check if a config.site exists and load it |
264 | if [ -n "$CONFIG_SITE" ]; then | |
265 | # CONFIG_SITE may contain space separated file names | |
266 | for cs in $CONFIG_SITE; do | |
267 | printf "loading defaults from $cs... " | |
268 | . "$cs" | |
269 | echo ok | |
270 | done | |
271 | elif [ -f "$prefix/share/config.site" ]; then | |
272 | printf "loading site defaults... " | |
273 | . "$prefix/share/config.site" | |
274 | echo ok | |
275 | elif [ -f "$prefix/etc/config.site" ]; then | |
276 | printf "loading site defaults... " | |
277 | . "$prefix/etc/config.site" | |
278 | echo ok | |
279 | fi | |
0 | 280 | ]]# |
281 | ## End of unparsed content ** | |
282 | ||
283 | # generate vars.mk | |
284 | cat > "$TEMP_DIR/vars.mk" << __EOF__ | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
285 | prefix=$prefix |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
286 | exec_prefix=$exec_prefix |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
287 | bindir=$bindir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
288 | sbindir=$sbindir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
289 | libdir=$libdir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
290 | libexecdir=$libexecdir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
291 | datarootdir=$datarootdir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
292 | datadir=$datadir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
293 | sysconfdir=$sysconfdir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
294 | sharedstatedir=$sharedstatedir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
295 | localstatedir=$localstatedir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
296 | runstatedir=$runstatedir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
297 | includedir=$includedir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
298 | infodir=$infodir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
299 | mandir=$mandir |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
300 | localedir=$localedir |
0 | 301 | #foreach( $var in $vars ) |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
302 | ${var.varName}=${D}${var.varName} |
0 | 303 | #end |
304 | __EOF__ | |
305 | ||
306 | # toolchain detection utilities | |
307 | . make/toolchain.sh | |
308 | ||
309 | # | |
310 | # DEPENDENCIES | |
311 | # | |
312 | ||
313 | # check languages | |
314 | lang_c= | |
315 | lang_cpp= | |
316 | #foreach( $lang in $languages ) | |
317 | if detect_${lang}_compiler ; then | |
318 | lang_${lang}=1 | |
319 | fi | |
320 | #end | |
321 | ||
322 | # create buffer for make variables required by dependencies | |
323 | echo > "$TEMP_DIR/make.mk" | |
324 | ||
325 | test_pkg_config() | |
326 | { | |
327 | if "$PKG_CONFIG" --exists "$1" ; then : | |
328 | else return 1 ; fi | |
329 | if [ -z "$2" ] || "$PKG_CONFIG" --atleast-version="$2" "$1" ; then : | |
330 | else return 1 ; fi | |
331 | if [ -z "$3" ] || "$PKG_CONFIG" --exact-version="$3" "$1" ; then : | |
332 | else return 1 ; fi | |
333 | if [ -z "$4" ] || "$PKG_CONFIG" --max-version="$4" "$1" ; then : | |
334 | else return 1 ; fi | |
335 | return 0 | |
336 | } | |
337 | ||
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
338 | print_check_msg() |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
339 | { |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
340 | if [ -z "$1" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
341 | shift |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
342 | printf "$@" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
343 | fi |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
344 | } |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
345 | |
0 | 346 | #foreach( $dependency in $namedDependencies ) |
347 | dependency_error_${dependency.id}() | |
348 | { | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
349 | print_check_msg "${D}dep_checked_${dependency.id}" "checking for ${dependency.name}... " |
0 | 350 | #foreach( $sub in $dependency.subdependencies ) |
351 | # dependency $sub.fullName | |
352 | while true | |
353 | do | |
354 | #if( $sub.platform ) | |
355 | if notisplatform "${sub.platform}"; then | |
356 | break | |
357 | fi | |
358 | #end | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
359 | #if( $sub.toolchain ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
360 | if notistoolchain "${sub.toolchain}"; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
361 | break |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
362 | fi |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
363 | #end |
0 | 364 | #foreach( $np in $sub.notList ) |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
365 | if isplatform "${np}" || istoolchain "${np}"; then |
0 | 366 | break |
367 | fi | |
368 | #end | |
369 | #foreach( $lang in $sub.lang ) | |
370 | if [ -z "$lang_${lang}" ] ; then | |
371 | break | |
372 | fi | |
373 | #end | |
374 | #if( $sub.pkgconfig.size() > 0 ) | |
375 | if [ -z "$PKG_CONFIG" ]; then | |
376 | break | |
377 | fi | |
378 | #end | |
379 | #foreach( $test in $sub.tests ) | |
380 | if $test > /dev/null ; then | |
381 | : | |
382 | else | |
383 | break | |
384 | fi | |
385 | #end | |
386 | #foreach( $pkg in $sub.pkgconfig ) | |
387 | if test_pkg_config "$pkg.name" "$pkg.atleast" "$pkg.exact" "$pkg.max" ; then | |
388 | TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags $pkg.name`" | |
389 | TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs $pkg.name`" | |
390 | else | |
391 | break | |
392 | fi | |
393 | #end | |
394 | #foreach( $flags in $sub.flags ) | |
395 | #if( $flags.exec ) | |
396 | if tmp_flags=`$flags.value` ; then | |
397 | TEMP_$flags.varName="$TEMP_$flags.varName $tmp_flags" | |
398 | else | |
399 | break | |
400 | fi | |
401 | #else | |
402 | TEMP_$flags.varName="$TEMP_$flags.varName $flags.value" | |
403 | #end | |
404 | #end | |
405 | #if ( $sub.make.length() > 0 ) | |
406 | cat >> $TEMP_DIR/make.mk << __EOF__ | |
407 | # Dependency: $dependency.name | |
408 | $sub.make | |
409 | __EOF__ | |
410 | #end | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
411 | print_check_msg "${D}dep_checked_${dependency.id}" "yes\n" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
412 | dep_checked_${dependency.id}=1 |
0 | 413 | return 1 |
414 | done | |
415 | ||
416 | #end | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
417 | print_check_msg "${D}dep_checked_${dependency.id}" "no\n" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
418 | dep_checked_${dependency.id}=1 |
0 | 419 | return 0 |
420 | } | |
421 | #end | |
422 | ||
423 | # start collecting dependency information | |
424 | echo > "$TEMP_DIR/flags.mk" | |
425 | ||
426 | DEPENDENCIES_FAILED= | |
427 | ERROR=0 | |
428 | #if( $dependencies.size() > 0 ) | |
429 | # unnamed dependencies | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
430 | TEMP_CFLAGS="$CFLAGS" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
431 | TEMP_CXXFLAGS="$CXXFLAGS" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
432 | TEMP_LDFLAGS="$LDFLAGS" |
0 | 433 | #foreach( $dependency in $dependencies ) |
434 | while true | |
435 | do | |
436 | #if( $dependency.platform ) | |
437 | if notisplatform "${dependency.platform}"; then | |
438 | break | |
439 | fi | |
440 | #end | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
441 | #if( $dependency.toolchain ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
442 | if notistoolchain "${dependency.toolchain}"; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
443 | break |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
444 | fi |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
445 | #end |
0 | 446 | #foreach( $np in $dependency.notList ) |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
447 | if isplatform "${np}" || istoolchain "${np}"; then |
0 | 448 | break |
449 | fi | |
450 | #end | |
451 | while true | |
452 | do | |
453 | #foreach( $lang in $dependency.lang ) | |
454 | if [ -z "$lang_${lang}" ] ; then | |
455 | ERROR=1 | |
456 | break | |
457 | fi | |
458 | #end | |
459 | #if( $dependency.pkgconfig.size() > 0 ) | |
460 | if [ -z "$PKG_CONFIG" ]; then | |
461 | ERROR=1 | |
462 | break | |
463 | fi | |
464 | #end | |
465 | #foreach( $pkg in $dependency.pkgconfig ) | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
466 | print_check_msg "${D}dep_pkgconfig_checked_${pkg.id}" "checking for pkg-config package $pkg.name... " |
0 | 467 | if test_pkg_config "$pkg.name" "$pkg.atleast" "$pkg.exact" "$pkg.max" ; then |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
468 | print_check_msg "${D}dep_pkgconfig_checked_${pkg.id}" "yes\n" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
469 | dep_pkgconfig_checked_${pkg.id}=1 |
0 | 470 | TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags $pkg.name`" |
471 | TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs $pkg.name`" | |
472 | else | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
473 | print_check_msg "${D}dep_pkgconfig_checked_${pkg.id}" "no\n" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
474 | dep_pkgconfig_checked_${pkg.id}=1 |
0 | 475 | ERROR=1 |
476 | break | |
477 | fi | |
478 | #end | |
479 | ||
480 | #foreach( $flags in $dependency.flags ) | |
481 | #if( $flags.exec ) | |
482 | $flags.value > /dev/null | |
483 | if tmp_flags=`$flags.value` ; then | |
484 | TEMP_$flags.varName="$TEMP_$flags.varName $tmp_flags" | |
485 | else | |
486 | ERROR=1 | |
487 | break | |
488 | fi | |
489 | #else | |
490 | TEMP_$flags.varName="$TEMP_$flags.varName $flags.value" | |
491 | #end | |
492 | #end | |
493 | #if ( $dependency.make.length() > 0 ) | |
494 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
495 | $dependency.make | |
496 | __EOF__ | |
497 | #end | |
498 | break | |
499 | done | |
500 | break | |
501 | done | |
502 | #end | |
503 | ||
103 | 504 | # build type |
505 | if [ "$BUILD_TYPE" = "debug" ]; then | |
506 | TEMP_CFLAGS="\${DEBUG_CFLAGS}$TEMP_CFLAGS" | |
507 | TEMP_CXXFLAGS="\${DEBUG_CXXFLAGS}$TEMP_CXXFLAGS" | |
508 | fi | |
509 | if [ "$BUILD_TYPE" = "release" ]; then | |
510 | TEMP_CFLAGS="\${RELEASE_CFLAGS}$TEMP_CFLAGS" | |
511 | TEMP_CXXFLAGS="\${RELEASE_CXXFLAGS}$TEMP_CXXFLAGS" | |
512 | fi | |
513 | ||
0 | 514 | # add general dependency flags to flags.mk |
515 | echo "# general flags" >> "$TEMP_DIR/flags.mk" | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
516 | if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then |
0 | 517 | echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" |
518 | fi | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
519 | if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then |
0 | 520 | echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" |
521 | fi | |
522 | if [ -n "${TEMP_LDFLAGS}" ]; then | |
523 | echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" | |
524 | fi | |
525 | #end | |
526 | ||
527 | # | |
528 | # OPTION VALUES | |
529 | # | |
530 | #foreach( $opt in $options ) | |
531 | #foreach( $val in $opt.values ) | |
532 | ${val.func}() | |
533 | { | |
534 | VERR=0 | |
535 | #foreach( $dep in $val.dependencies ) | |
536 | if dependency_error_$dep ; then | |
537 | VERR=1 | |
538 | fi | |
539 | #end | |
540 | if [ $VERR -ne 0 ]; then | |
541 | return 1 | |
542 | fi | |
543 | #foreach( $def in $val.defines ) | |
544 | TEMP_CFLAGS="$TEMP_CFLAGS ${def.toFlags()}" | |
545 | TEMP_CXXFLAGS="$TEMP_CXXFLAGS ${def.toFlags()}" | |
546 | #end | |
547 | #if( $val.hasMake() ) | |
548 | cat >> "$TEMP_DIR/make.mk" << __EOF__ | |
549 | $val.make | |
550 | __EOF__ | |
551 | #end | |
552 | return 0 | |
553 | } | |
554 | #end | |
555 | #end | |
556 | ||
557 | # | |
558 | # TARGETS | |
559 | # | |
560 | ||
561 | #foreach( $target in $targets ) | |
562 | echo >> "$TEMP_DIR/flags.mk" | |
563 | #if ( $target.name ) | |
564 | echo "configuring target: $target.name" | |
565 | echo "# flags for target $target.name" >> "$TEMP_DIR/flags.mk" | |
566 | #else | |
567 | echo "configuring global target" | |
568 | echo "# flags for unnamed target" >> "$TEMP_DIR/flags.mk" | |
569 | #end | |
570 | TEMP_CFLAGS= | |
571 | TEMP_CXXFLAGS= | |
572 | TEMP_LDFLAGS= | |
573 | ||
574 | #foreach( $dependency in $target.dependencies ) | |
575 | if dependency_error_$dependency; then | |
576 | DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} " | |
577 | ERROR=1 | |
578 | fi | |
579 | #end | |
580 | ||
581 | # Features | |
582 | #foreach( $feature in $target.features ) | |
583 | if [ -n "${D}${feature.varName}" ]; then | |
584 | #foreach( $dependency in $feature.dependencies ) | |
585 | # check dependency | |
586 | if dependency_error_$dependency ; then | |
587 | # "auto" features can fail and are just disabled in this case | |
588 | if [ "${D}${feature.varName}" = "auto" ]; then | |
589 | DISABLE_${feature.varName}=1 | |
590 | else | |
591 | DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} " | |
592 | ERROR=1 | |
593 | fi | |
594 | fi | |
595 | #end | |
596 | if [ -n "$DISABLE_${feature.varName}" ]; then | |
597 | unset ${feature.varName} | |
598 | fi | |
599 | fi | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
600 | if [ -n "${D}${feature.varName}" ]; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
601 | : |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
602 | #foreach( $def in $feature.defines ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
603 | TEMP_CFLAGS="$TEMP_CFLAGS ${def.toFlags()}" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
604 | TEMP_CXXFLAGS="$TEMP_CXXFLAGS ${def.toFlags()}" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
605 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
606 | #if( $feature.hasMake() ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
607 | cat >> "$TEMP_DIR/make.mk" << __EOF__ |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
608 | $feature.make |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
609 | __EOF__ |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
610 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
611 | else |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
612 | : |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
613 | #foreach( $def in $feature.disabled.defines ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
614 | TEMP_CFLAGS="$TEMP_CFLAGS ${def.toFlags()}" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
615 | TEMP_CXXFLAGS="$TEMP_CXXFLAGS ${def.toFlags()}" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
616 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
617 | #if( $feature.disabled.hasMake() ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
618 | cat >> "$TEMP_DIR/make.mk" << __EOF__ |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
619 | $feature.disabled.make |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
620 | __EOF__ |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
621 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
622 | #foreach( $dependency in $feature.disabled.dependencies ) |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
623 | if dependency_error_$dependency ; then |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
624 | DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} " |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
625 | ERROR=1 |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
626 | fi |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
627 | #end |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
628 | fi |
0 | 629 | #end |
630 | ||
631 | #foreach( $opt in $target.options ) | |
632 | # Option: --${opt.argument} | |
633 | if [ -z "${D}${opt.varName}" ]; then | |
634 | echo "auto-detecting option '${opt.argument}'" | |
635 | SAVED_ERROR="$ERROR" | |
636 | SAVED_DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED" | |
637 | ERROR=1 | |
638 | while true | |
639 | do | |
640 | #foreach( $optdef in $opt.defaults ) | |
641 | #if( $optdef.platform ) | |
642 | if isplatform "$optdef.platform"; then | |
643 | #end | |
644 | if $optdef.func ; then | |
645 | echo " ${opt.argument}: ${optdef.valueName}" >> "$TEMP_DIR/options" | |
646 | ERROR=0 | |
647 | break | |
648 | fi | |
649 | #if( $optdef.platform ) | |
650 | fi | |
651 | #end | |
652 | #end | |
653 | break | |
654 | done | |
655 | if [ $ERROR -ne 0 ]; then | |
656 | SAVED_ERROR=1 | |
657 | SAVED_DEPENDENCIES_FAILED="option '${opt.argument}' $SAVED_DEPENDENCIES_FAILED" | |
658 | fi | |
659 | ERROR="$SAVED_ERROR" | |
660 | DEPENDENCIES_FAILED="$SAVED_DEPENDENCIES_FAILED" | |
661 | else | |
662 | echo "checking option ${opt.argument} = ${D}${opt.varName}" | |
663 | if false; then | |
664 | false | |
665 | #foreach( $optval in $opt.values ) | |
666 | elif [ "${D}${opt.varName}" = "${optval.value}" ]; then | |
667 | echo " ${opt.argument}: ${D}${opt.varName}" >> $TEMP_DIR/options | |
668 | if $optval.func ; then | |
669 | : | |
670 | else | |
671 | ERROR=1 | |
672 | DEPENDENCIES_FAILED="option '${opt.argument}' $DEPENDENCIES_FAILED" | |
673 | fi | |
674 | #end | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
675 | else |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
676 | echo |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
677 | echo "Invalid option value - usage:" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
678 | echo " --${opt.argument}=${opt.valuesString}" |
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
679 | abort_configure |
0 | 680 | fi |
681 | fi | |
682 | #end | |
683 | ||
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
684 | if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then |
0 | 685 | echo "${target.cFlags} += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" |
686 | fi | |
76
eb16be99b0ad
update to newest versions of uwproj and ucx
Mike Becker <universe@uap-core.de>
parents:
1
diff
changeset
|
687 | if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then |
0 | 688 | echo "${target.cxxFlags} += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" |
689 | fi | |
690 | if [ -n "${TEMP_LDFLAGS}" ]; then | |
691 | echo "${target.ldFlags} += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" | |
692 | fi | |
693 | ||
694 | #end | |
695 | ||
696 | # final result | |
697 | if [ $ERROR -ne 0 ]; then | |
698 | echo | |
699 | echo "Error: Unresolved dependencies" | |
700 | echo "$DEPENDENCIES_FAILED" | |
701 | abort_configure | |
702 | fi | |
703 | ||
704 | echo "configure finished" | |
705 | echo | |
103 | 706 | echo "Toolchain" |
707 | echo " name: $TOOLCHAIN_NAME" | |
708 | if [ -n "$TOOLCHAIN_CC" ]; then | |
709 | echo " cc: $TOOLCHAIN_CC" | |
710 | fi | |
711 | if [ -n "$TOOLCHAIN_CXX" ]; then | |
712 | echo " cxx: $TOOLCHAIN_CXX" | |
713 | fi | |
714 | if [ -n "$TOOLCHAIN_WSIZE" ]; then | |
715 | echo " word size: $TOOLCHAIN_WSIZE bit" | |
716 | fi | |
717 | if [ -n "$TOOLCHAIN_CSTD" ]; then | |
718 | echo " default C std: $TOOLCHAIN_CSTD" | |
719 | fi | |
720 | echo | |
0 | 721 | echo "Build Config:" |
103 | 722 | echo " prefix: $prefix" |
723 | echo " exec_prefix: $exec_prefix" | |
724 | if [ "$orig_bindir" != "$bindir" ]; then | |
725 | echo " bindir: $bindir" | |
726 | fi | |
727 | if [ "$orig_sbindir" != "$sbindir" ]; then | |
728 | echo " sbindir: $sbindir" | |
729 | fi | |
730 | if [ "$orig_libdir" != "$libdir" ]; then | |
731 | echo " libdir: $libdir" | |
732 | fi | |
733 | if [ "$orig_libexecdir" != "$libexecdir" ]; then | |
734 | echo " libexecdir: $libexecdir" | |
735 | fi | |
736 | if [ "$orig_datarootdir" != "$datarootdir" ]; then | |
737 | echo " datarootdir: $datarootdir" | |
738 | fi | |
739 | if [ "$orig_datadir" != "$datadir" ]; then | |
740 | echo " datadir: $datadir" | |
741 | fi | |
742 | if [ "$orig_sysconfdir" != "$sysconfdir" ]; then | |
743 | echo " sysconfdir: $sysconfdir" | |
744 | fi | |
745 | if [ "$orig_sharedstatedir" != "$sharedstatedir" ]; then | |
746 | echo " sharedstatedir: $sharedstatedir" | |
747 | fi | |
748 | if [ "$orig_localstatedir" != "$localstatedir" ]; then | |
749 | echo " localstatedir: $localstatedir" | |
750 | fi | |
751 | if [ "$orig_runstatedir" != "$runstatedir" ]; then | |
752 | echo " runstatedir: $runstatedir" | |
753 | fi | |
754 | if [ "$orig_includedir" != "$includedir" ]; then | |
755 | echo " includedir: $includedir" | |
756 | fi | |
757 | if [ "$orig_infodir" != "$infodir" ]; then | |
758 | echo " infodir: $infodir" | |
759 | fi | |
760 | if [ "$orig_mandir" != "$mandir" ]; then | |
761 | echo " mandir: $mandir" | |
762 | fi | |
763 | if [ "$orig_localedir" != "$localedir" ]; then | |
764 | echo " localedir: $localedir" | |
765 | fi | |
0 | 766 | #if ( $options.size() > 0 ) |
103 | 767 | echo |
0 | 768 | echo "Options:" |
769 | cat "$TEMP_DIR/options" | |
770 | #end | |
771 | #if ( $features.size() > 0 ) | |
103 | 772 | echo |
0 | 773 | echo "Features:" |
774 | #foreach( $feature in $features ) | |
775 | if [ -n "${D}${feature.varName}" ]; then | |
776 | echo " $feature.name: on" | |
777 | else | |
778 | echo " $feature.name: off" | |
779 | fi | |
780 | #end | |
781 | #end | |
782 | echo | |
783 | ||
784 | # generate the config.mk file | |
103 | 785 | pwd=`pwd` |
0 | 786 | cat > "$TEMP_DIR/config.mk" << __EOF__ |
787 | # | |
103 | 788 | # config.mk generated by: |
789 | # pwd: $pwd | |
790 | # $0 $@ | |
0 | 791 | # |
792 | ||
793 | __EOF__ | |
794 | write_toolchain_defaults "$TEMP_DIR/toolchain.mk" | |
103 | 795 | cat "$TEMP_DIR/config.mk" "$TEMP_DIR/vars.mk" "$TEMP_DIR/toolchain.mk" "$TEMP_DIR/flags.mk" "$TEMP_DIR/make.mk" > config.mk |
0 | 796 | rm -Rf "$TEMP_DIR" |