make/configure.vm

Sun, 17 Dec 2023 14:25:34 +0100

author
Mike Becker <universe@uap-core.de>
date
Sun, 17 Dec 2023 14:25:34 +0100
changeset 797
edbb20b1438d
parent 787
bd96cbb0e205
child 802
16e5b9d32754
permissions
-rw-r--r--

[Makefile] fix missing rules preventing dry-runs

We have to support dry-runs, because many IDEs are using
dry-runs to collect build information.

Some rules have dependencies that expect certain files or
directories to be just present. We added respective build
rules which invoke the test program. This way, the behavior
when running make normally is exactly the same, but dry-runs
are also not failing now.

742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 #!/bin/sh
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 #foreach( $var in $vars )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 #if( $var.exec )
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
5 ${var.varName}=`${var.value}`
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 #else
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
7 ${var.varName}=${var.value}
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 #if ( ! $project.hasVar("PREFIX") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 PREFIX=/usr
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 #if ( ! $project.hasVar("EPREFIX") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 EPREFIX=$PREFIX
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 #if ( ! $project.hasVar("BINDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 BINDIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 #if ( ! $project.hasVar("SBINDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 SBINDIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 #if ( ! $project.hasVar("LIBDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 LIBDIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 #if ( ! $project.hasVar("LIBEXECDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28 LIBEXECDIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30 #if ( ! $project.hasVar("DATADIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31 DATADIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
33 #if ( ! $project.hasVar("SYSCONFDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34 SYSCONFDIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 #if ( ! $project.hasVar("SHAREDSTATEDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 SHAREDSTATEDIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
38 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
39 #if ( ! $project.hasVar("LOCALSTATEDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
40 LOCALSTATEDIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 #if ( ! $project.hasVar("INCLUDEDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43 INCLUDEDIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
44 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45 #if ( ! $project.hasVar("INFODIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46 INFODIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48 #if ( ! $project.hasVar("MANDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49 MANDIR=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
50 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
51
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
52 OS=`uname -s`
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
53 OS_VERSION=`uname -r`
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
54
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
55 TEMP_DIR=".tmp-`uname -n`"
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
56 mkdir -p "$TEMP_DIR"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
57 if [ $? -ne 0 ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
58 echo "Cannot create tmp dir"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
59 echo "Abort"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
60 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
61 touch "$TEMP_DIR/options"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
62 touch "$TEMP_DIR/features"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
63
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
64 # features
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
65 #foreach( $feature in $features )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66 #if( ${feature.isDefault()} )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67 ${feature.getVarName()}=on
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
68 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
69 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
70
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
71 # help text
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
72 printhelp()
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
73 {
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
74 echo "Usage: $0 [OPTIONS]..."
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
75 cat << __EOF__
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
76 Installation directories:
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
77 --prefix=PREFIX path prefix for architecture-independent files
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
78 [/usr]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
79 --exec-prefix=EPREFIX path prefix for architecture-dependent files
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
80 [PREFIX]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
81
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
82 --bindir=DIR user executables [EPREFIX/bin]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
83 --sbindir=DIR system admin executables [EPREFIX/sbin]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
84 --libexecdir=DIR program executables [EPREFIX/libexec]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
85 --sysconfdir=DIR system configuration files [PREFIX/etc]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
86 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
87 --localstatedir=DIR modifiable single-machine data [PREFIX/var]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
88 --libdir=DIR object code libraries [EPREFIX/lib]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
89 --includedir=DIR C header files [PREFIX/include]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
90 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
91 --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
92 --infodir=DIR info documentation [DATAROOTDIR/info]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
93 --mandir=DIR man documentation [DATAROOTDIR/man]
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
94
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
95 #if( $options.size() > 0 )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
96 Options:
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
97 #foreach( $opt in $options )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
98 --${opt.getArgument()}=${opt.getValuesString()}
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
99 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
100
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
101 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
102 #if( $features.size() > 0 )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
103 Optional Features:
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
104 #foreach( $feature in $features )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
105 #if( $feature.default )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
106 --disable-${feature.arg}
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
107 #else
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
108 --enable-${feature.arg}
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
109 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
110 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
111
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
112 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
113 __EOF__
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
114 }
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
115
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
116 #
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
117 # parse arguments
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
118 #
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
119 #set( $D = '$' )
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
120 for ARG in "$@"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
121 do
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
122 case "$ARG" in
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
123 "--prefix="*) PREFIX=${D}{ARG#--prefix=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
124 "--exec-prefix="*) EPREFIX=${D}{ARG#--exec-prefix=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
125 "--bindir="*) BINDIR=${D}{ARG#----bindir=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
126 "--sbindir="*) SBINDIR=${D}{ARG#--sbindir=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
127 "--libdir="*) LIBDIR=${D}{ARG#--libdir=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
128 "--libexecdir="*) LIBEXECDIR=${D}{ARG#--libexecdir=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
129 "--datadir="*) DATADIR=${D}{ARG#--datadir=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
130 "--sysconfdir="*) SYSCONFDIR=${D}{ARG#--sysconfdir=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
131 "--sharedstatedir="*) SHAREDSTATEDIR=${D}{ARG#--sharedstatedir=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
132 "--localstatedir="*) LOCALSTATEDIR=${D}{ARG#--localstatedir=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
133 "--includedir="*) INCLUDEDIR=${D}{ARG#--includedir=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
134 "--infodir="*) INFODIR=${D}{ARG#--infodir=} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
135 "--mandir"*) MANDIR=${D}{ARG#--mandir} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
136 "--help"*) printhelp; rm -Rf "$TEMP_DIR"; exit 1 ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
137 #foreach( $opt in $options )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
138 "--${opt.getArgument()}="*) ${opt.getVarName()}=${D}{ARG#--${opt.getArgument()}=} ;;
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
139 #end
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
140 #foreach( $feature in $features )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
141 "--enable-${feature.arg}") ${feature.getVarName()}=on ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
142 "--disable-${feature.arg}") unset ${feature.getVarName()} ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
143 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
144 "-"*) echo "unknown option: $ARG"; rm -Rf "$TEMP_DIR"; exit 1 ;;
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
145 esac
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
146 done
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
147
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
148 # set dir variables
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
149 if [ -z "$BINDIR" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
150 BINDIR=$EPREFIX/bin
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
151 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
152 if [ -z "$SBINDIR" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
153 SBINDIR=$EPREFIX/sbin
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
154 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
155 if [ -z "$LIBDIR" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
156 LIBDIR=$EPREFIX/lib
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
157 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
158 if [ -z "$LIBEXEC" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
159 LIBEXECDIR=$EPREFIX/libexec
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
160 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
161 if [ -z "$DATADIR" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
162 DATADIR=$PREFIX/share
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
163 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
164 if [ -z "$SYSCONFDIR" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
165 SYSCONFDIR=$PREFIX/etc
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
166 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
167 if [ -z "$SHAREDSTATEDIR" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
168 SHAREDSTATEDIR=$PREFIX/com
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
169 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
170 if [ -z "$LOCALSTATEDIR" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
171 LOCALSTATEDIR=$PREFIX/var
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
172 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
173 if [ -z "$INCLUDEDIR" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
174 INCLUDEDIR=$PREFIX/include
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
175 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
176 if [ -z "$INFODIR" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
177 INFODIR=$PREFIX/info
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
178 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
179 if [ -z "$MANDIR" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
180 MANDIR=$PREFIX/man
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
181 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
182
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
183 which pkg-config > /dev/null
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
184 if [ $? -eq 0 ]; then
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
185 PKG_CONFIG=pkg-config
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
186 else
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
187 PKG_CONFIG=false
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
188 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
189
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
190 # Simple uname based platform detection
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
191 # $PLATFORM is used for platform dependent dependency selection
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
192 printf "detect platform... "
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
193 if [ "$OS" = "SunOS" ]; then
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
194 PLATFORM="solaris sunos unix svr4"
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
195 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
196 if [ "$OS" = "Linux" ]; then
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
197 PLATFORM="linux unix"
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
198 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
199 if [ "$OS" = "FreeBSD" ]; then
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
200 PLATFORM="freebsd bsd unix"
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
201 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
202 if [ "$OS" = "Darwin" ]; then
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
203 PLATFORM="macos osx bsd unix"
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
204 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
205 echo "$OS" | grep -i "MINGW" > /dev/null
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
206 if [ $? -eq 0 ]; then
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
207 PLATFORM="windows mingw"
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
208 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
209
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
210 if [ -z "$PLATFORM" ]; then
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
211 PLATFORM="unix"
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
212 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
213
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
214 for p in $PLATFORM
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
215 do
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
216 PLATFORM_NAME=$p
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
217 break
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
218 done
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
219 echo $PLATFORM_NAME
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
220
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
221 isplatform()
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
222 {
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
223 for p in $PLATFORM
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
224 do
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
225 if [ "$p" = "$1" ]; then
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
226 return 0
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
227 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
228 done
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
229 return 1
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
230 }
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
231 isnotplatform()
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
232 {
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
233 for p in $PLATFORM
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
234 do
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
235 if [ "$p" = "$1" ]; then
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
236 return 1
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
237 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
238 done
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
239 return 0
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
240 }
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
241
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
242 # generate config.mk and config.h
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
243 cat > "$TEMP_DIR/config.mk" << __EOF__
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
244 #
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
245 # config.mk generated by configure
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
246 #
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
247
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
248 # general vars
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
249 #foreach( $var in $vars )
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
250 ${var.varName}=$${var.varName}
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
251 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
252
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
253 #if ( ! $project.hasVar("PREFIX") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
254 PREFIX=$PREFIX
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
255 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
256 #if ( ! $project.hasVar("EPREFIX") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
257 EPREFIX=$EPREFIX
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
258 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
259
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
260 #if ( ! $project.hasVar("BINDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
261 BINDIR=$BINDIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
262 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
263 #if ( ! $project.hasVar("SBINDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
264 SBINDIR=$SBINDIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
265 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
266 #if ( ! $project.hasVar("LIBDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
267 LIBDIR=$LIBDIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
268 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
269 #if ( ! $project.hasVar("LIBEXECDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
270 LIBEXECDIR=$LIBEXECDIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
271 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
272 #if ( ! $project.hasVar("DATADIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
273 DATADIR=$DATADIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
274 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
275 #if ( ! $project.hasVar("SYSCONFDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
276 SYSCONFDIR=$SYSCONFDIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
277 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
278 #if ( ! $project.hasVar("SHAREDSTATEDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
279 SHAREDSTATEDIR=$SHAREDSTATEDIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
280 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
281 #if ( ! $project.hasVar("LOCALSTATEDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
282 LOCALSTATEDIR=$LOCALSTATEDIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
283 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
284 #if ( ! $project.hasVar("INCLUDEDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
285 INCLUDEDIR=$INCLUDEDIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
286 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
287 #if ( ! $project.hasVar("INFODIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
288 INFODIR=$INFODIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
289 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
290 #if ( ! $project.hasVar("MANDIR") )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
291 MANDIR=$MANDIR
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
292 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
293
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
294 __EOF__
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
295
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
296 echo > "$TEMP_DIR/make.mk"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
297
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
298 ENV_CFLAGS=$CFLAGS
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
299 ENV_LDFLAGS=$LDFLAGS
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
300 ENV_CXXFLAGS=$CXXFLAGS
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
301
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
302 # Toolchain detection
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
303 # this will insert make vars to config.mk
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
304 . make/toolchain.sh
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
305
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
306 # add user specified flags to config.mk
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
307 echo "# project specific flags" >> "$TEMP_DIR/config.mk"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
308 if [ -n "${ENV_CFLAGS}" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
309 echo "CFLAGS += $ENV_CFLAGS" >> "$TEMP_DIR/config.mk"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
310 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
311 if [ -n "${ENV_CXXFLAGS}" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
312 echo "CXXFLAGS += $ENV_CXXFLAGS" >> "$TEMP_DIR/config.mk"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
313 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
314 if [ -n "${ENV_LDFLAGS}" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
315 echo "LDFLAGS += $ENV_LDFLAGS" >> "$TEMP_DIR/config.mk"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
316 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
317
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
318 #
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
319 # DEPENDENCIES
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
320 #
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
321
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
322 #foreach( $dependency in $namedDependencies )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
323 dependency_${dependency.name}()
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
324 {
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
325 printf "checking for ${dependency.name}... "
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
326 #foreach( $sub in $dependency.getSubdependencies() )
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
327 # dependency $sub.getFullName()
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
328 while true
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
329 do
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
330 #if( $sub.platform )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
331 if isnotplatform "${sub.platform}"; then
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
332 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
333 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
334 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
335 #foreach( $not in $sub.getNotList() )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
336 if isplatform "${not}"; then
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
337 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
338 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
339 #end
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
340 #if( $sub.pkgconfig.size() > 0 )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
341 if [ -z "$PKG_CONFIG" ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
342 break
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
343 fi
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
344 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
345 #foreach( $test in $sub.tests )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
346 $test > /dev/null
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
347 if [ $? -ne 0 ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
348 break
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
349 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
350 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
351 #foreach( $pkg in $sub.pkgconfig )
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
352 $pkg.getPkgConfigTestQuery()
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
353 if [ $? -ne 0 ] ; then
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
354 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
355 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
356 TEMP_CFLAGS="$TEMP_CFLAGS `$PKG_CONFIG --cflags $pkg.name`"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
357 TEMP_LDFLAGS="$TEMP_LDFLAGS `$PKG_CONFIG --libs $pkg.name`"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
358 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
359 #foreach( $flags in $sub.flags )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
360 #if( $flags.exec )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
361 $flags.value > /dev/null
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
362 if [ $? -eq 0 ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
363 TEMP_$flags.varName="$TEMP_$flags.varName `$flags.value`"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
364 else
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
365 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
366 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
367 #else
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
368 TEMP_$flags.varName="$TEMP_$flags.varName $flags.value"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
369 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
370 #end
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
371 #if ( $sub.make.length() > 0 )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
372 cat >> $TEMP_DIR/make.mk << __EOF__
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
373 # Dependency: $dependency.name
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
374 $sub.make
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
375 __EOF__
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
376 #end
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
377 echo yes
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
378 return 0
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
379 done
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
380
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
381 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
382 echo no
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
383 return 1
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
384 }
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
385 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
386
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
387 DEPENDENCIES_FAILED=
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
388 ERROR=0
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
389 #if( $dependencies.size() > 0 )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
390 # general dependencies
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
391 TEMP_CFLAGS=
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
392 TEMP_LDFLAGS=
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
393 #foreach( $dependency in $dependencies )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
394 while true
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
395 do
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
396 #if( $dependency.platform )
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
397 if isnotplatform "${dependency.platform}"; then
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
398 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
399 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
400 #end
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
401 #foreach( $not in $dependency.getNotList() )
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
402 if isplatform "${not}"; then
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
403 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
404 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
405 #end
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
406 while true
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
407 do
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
408 #if( $dependency.pkgconfig.size() > 0 )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
409 if [ -z "$PKG_CONFIG" ]; then
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
410 ERROR=1
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
411 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
412 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
413 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
414 #foreach( $pkg in $dependency.pkgconfig )
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
415 printf "checking for pkg-config package $pkg.name... "
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
416 $pkg.getPkgConfigTestQuery()
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
417 if [ $? -ne 0 ]; then
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
418 echo no
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
419 ERROR=1
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
420 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
421 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
422 echo yes
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
423 TEMP_CFLAGS="$TEMP_CFLAGS `$PKG_CONFIG --cflags $pkg.name`"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
424 TEMP_LDFLAGS="$TEMP_LDFLAGS `$PKG_CONFIG --libs $pkg.name`"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
425 #end
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
426
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
427 #foreach( $flags in $dependency.flags )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
428 #if( $flags.exec )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
429 $flags.value > /dev/null
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
430 if [ $? -ne 0 ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
431 TEMP_$flags.varName="$TEMP_$flags.varName `$flags.value`"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
432 else
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
433 ERROR=1
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
434 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
435 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
436 #else
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
437 TEMP_$flags.varName="$TEMP_$flags.varName $flags.value"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
438 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
439 #end
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
440 #if ( $dependency.make.length() > 0 )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
441 cat >> "$TEMP_DIR/make.mk" << __EOF__
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
442 $dependency.make
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
443 __EOF__
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
444 #end
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
445
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
446 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
447 done
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
448
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
449 break
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
450 done
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
451 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
452
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
453 # add general dependency flags to config.mk
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
454 echo >> "$TEMP_DIR/config.mk"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
455 if [ -n "${TEMP_CFLAGS}" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
456 echo "CFLAGS += $TEMP_CFLAGS" >> $TEMP_DIR/config.mk
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
457 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
458 if [ -n "${TEMP_CXXFLAGS}" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
459 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> $TEMP_DIR/config.mk
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
460 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
461 if [ -n "${TEMP_LDFLAGS}" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
462 echo "LDFLAGS += $TEMP_LDFLAGS" >> $TEMP_DIR/config.mk
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
463 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
464 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
465
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
466 #
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
467 # OPTION VALUES
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
468 #
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
469 #foreach( $opt in $options )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
470 #foreach( $val in $opt.values )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
471 ${val.func}()
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
472 {
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
473 VERR=0
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
474 #foreach( $dep in $val.dependencies )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
475 dependency_$dep
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
476 if [ $? -ne 0 ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
477 VERR=1
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
478 fi
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
479 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
480 if [ $VERR -ne 0 ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
481 return 1
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
482 fi
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
483 #foreach( $def in $val.defines )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
484 TEMP_CFLAGS="$TEMP_CFLAGS ${def.toFlags()}"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
485 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
486 #if( $val.hasMake() )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
487 cat >> "$TEMP_DIR/make.mk" << __EOF__
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
488 $val.make
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
489 __EOF__
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
490 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
491 return 0
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
492 }
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
493 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
494 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
495
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
496 #
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
497 # TARGETS
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
498 #
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
499 TEMP_CFLAGS=
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
500 TEMP_CXXFLAGS=
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
501 TEMP_LDFLAGS=
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
502
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
503 #foreach( $target in $targets )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
504 #if ( $target.name )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
505 # Target: $target.name
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
506 #else
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
507 # Target
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
508 #end
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
509 TEMP_CFLAGS=
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
510 TEMP_LDFLAGS=
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
511 TEMP_CXXFLAGS=
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
512
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
513 #foreach( $dependency in $target.dependencies )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
514 dependency_$dependency
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
515 if [ $? -ne 0 ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
516 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} "
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
517 ERROR=1
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
518 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
519 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
520
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
521 # Features
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
522 #foreach( $feature in $target.features )
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
523 if [ -n "$${feature.getVarName()}" ]; then
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
524 #foreach( $dependency in $feature.dependencies )
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
525 # check dependency
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
526 dependency_$dependency
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
527 if [ $? -ne 0 ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
528 # "auto" features can fail and are just disabled in this case
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
529 if [ "$${feature.getVarName()}" != "auto" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
530 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} "
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
531 ERROR=1
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
532 fi
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
533 fi
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
534 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
535 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
536 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
537
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
538 #foreach( $opt in $target.options )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
539 # Option: --${opt.argument}
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
540 if [ -z ${D}${opt.getVarName()} ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
541 SAVED_ERROR="$ERROR"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
542 SAVED_DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
543 ERROR=0
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
544 while true
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
545 do
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
546 #foreach( $optdef in $opt.defaults )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
547 #if( $optdef.platform )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
548 if isplatform "$optdef.platform"; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
549 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
550 $optdef.func
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
551 if [ $? -eq 0 ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
552 echo " ${opt.argument}: ${optdef.valueName}" >> "$TEMP_DIR/options"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
553 ERROR=0
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
554 break
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
555 fi
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
556 #if( $optdef.platform )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
557 fi
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
558 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
559 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
560 break
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
561 done
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
562 if [ $ERROR -ne 0 ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
563 SAVED_ERROR=1
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
564 fi
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
565 ERROR="$SAVED_ERROR"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
566 DEPENDENCIES_FAILED="$SAVED_DEPENDENCIES_FAILED"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
567 else
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
568 if false; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
569 false
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
570 #foreach( $optval in $opt.values )
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
571 elif [ "${D}${opt.getVarName()}" = "${optval.value}" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
572 echo " ${opt.argument}: ${D}${opt.getVarName()}" >> $TEMP_DIR/options
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
573 $optval.func
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
574 if [ $? -ne 0 ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
575 ERROR=1
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
576 fi
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
577 #end
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
578 fi
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
579 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
580 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
581
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
582 echo >> "$TEMP_DIR/config.mk"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
583 if [ -n "${TEMP_CFLAGS}" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
584 echo "${target.getCFlags()} += $TEMP_CFLAGS" >> "$TEMP_DIR/config.mk"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
585 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
586 if [ -n "${TEMP_CXXFLAGS}" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
587 echo "${target.getCXXFlags()} += $TEMP_CXXFLAGS" >> "$TEMP_DIR/config.mk"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
588 fi
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
589 if [ -n "${TEMP_LDFLAGS}" ]; then
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
590 echo "${target.getLDFlags()} += $TEMP_LDFLAGS" >> "$TEMP_DIR/config.mk"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
591 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
592
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
593 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
594 if [ $ERROR -ne 0 ]; then
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
595 echo
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
596 echo "Error: Unresolved dependencies"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
597 echo "$DEPENDENCIES_FAILED"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
598 rm -Rf "$TEMP_DIR"
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
599 exit 1
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
600 fi
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
601
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
602 echo "configure finished"
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
603 echo
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
604 echo "Build Config:"
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
605 echo " PREFIX: $PREFIX"
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
606 echo " TOOLCHAIN: $TOOLCHAIN_NAME"
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
607 #if ( $options.size() > 0 )
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
608 echo "Options:"
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
609 cat "$TEMP_DIR/options"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
610 #end
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
611 echo
787
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
612 cat "$TEMP_DIR/config.mk" "$TEMP_DIR/make.mk" > config.mk
bd96cbb0e205 update uwproj
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 742
diff changeset
613 rm -Rf "$TEMP_DIR"
742
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
614
7e67689241fd new build system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
615

mercurial