45 --sbindir=DIR system admin executables [EPREFIX/sbin] |
58 --sbindir=DIR system admin executables [EPREFIX/sbin] |
46 --libexecdir=DIR program executables [EPREFIX/libexec] |
59 --libexecdir=DIR program executables [EPREFIX/libexec] |
47 --sysconfdir=DIR system configuration files [PREFIX/etc] |
60 --sysconfdir=DIR system configuration files [PREFIX/etc] |
48 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] |
61 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] |
49 --localstatedir=DIR modifiable single-machine data [PREFIX/var] |
62 --localstatedir=DIR modifiable single-machine data [PREFIX/var] |
|
63 --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run] |
50 --libdir=DIR object code libraries [EPREFIX/lib] |
64 --libdir=DIR object code libraries [EPREFIX/lib] |
51 --includedir=DIR C header files [PREFIX/include] |
65 --includedir=DIR C header files [PREFIX/include] |
52 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] |
66 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] |
53 --datadir=DIR read-only architecture-independent data [DATAROOTDIR] |
67 --datadir=DIR read-only architecture-independent data [DATAROOTDIR] |
54 --infodir=DIR info documentation [DATAROOTDIR/info] |
68 --infodir=DIR info documentation [DATAROOTDIR/info] |
55 --mandir=DIR man documentation [DATAROOTDIR/man] |
69 --mandir=DIR man documentation [DATAROOTDIR/man] |
|
70 --localedir=DIR locale-dependent data [DATAROOTDIR/locale] |
56 |
71 |
57 __EOF__ |
72 __EOF__ |
58 } |
73 } |
59 |
74 |
60 # |
75 # |
61 # parse arguments |
76 # parse arguments |
62 # |
77 # |
|
78 BUILD_TYPE="default" |
63 for ARG in "$@" |
79 for ARG in "$@" |
64 do |
80 do |
65 case "$ARG" in |
81 case "$ARG" in |
66 "--prefix="*) PREFIX=${ARG#--prefix=} ;; |
82 "--prefix="*) prefix=${ARG#--prefix=} ;; |
67 "--exec-prefix="*) EPREFIX=${ARG#--exec-prefix=} ;; |
83 "--exec-prefix="*) exec_prefix=${ARG#--exec-prefix=} ;; |
68 "--bindir="*) BINDIR=${ARG#----bindir=} ;; |
84 "--bindir="*) bindir=${ARG#----bindir=} ;; |
69 "--sbindir="*) SBINDIR=${ARG#--sbindir=} ;; |
85 "--sbindir="*) sbindir=${ARG#--sbindir=} ;; |
70 "--libdir="*) LIBDIR=${ARG#--libdir=} ;; |
86 "--libdir="*) libdir=${ARG#--libdir=} ;; |
71 "--libexecdir="*) LIBEXECDIR=${ARG#--libexecdir=} ;; |
87 "--libexecdir="*) libexecdir=${ARG#--libexecdir=} ;; |
72 "--datadir="*) DATADIR=${ARG#--datadir=} ;; |
88 "--datarootdir="*) datarootdir=${ARG#--datarootdir=} ;; |
73 "--sysconfdir="*) SYSCONFDIR=${ARG#--sysconfdir=} ;; |
89 "--datadir="*) datadir=${ARG#--datadir=} ;; |
74 "--sharedstatedir="*) SHAREDSTATEDIR=${ARG#--sharedstatedir=} ;; |
90 "--sysconfdir="*) sysconfdir=${ARG#--sysconfdir=} ;; |
75 "--localstatedir="*) LOCALSTATEDIR=${ARG#--localstatedir=} ;; |
91 "--sharedstatedir="*) sharedstatedir=${ARG#--sharedstatedir=} ;; |
76 "--includedir="*) INCLUDEDIR=${ARG#--includedir=} ;; |
92 "--localstatedir="*) localstatedir=${ARG#--localstatedir=} ;; |
77 "--infodir="*) INFODIR=${ARG#--infodir=} ;; |
93 "--includedir="*) includedir=${ARG#--includedir=} ;; |
78 "--mandir"*) MANDIR=${ARG#--mandir} ;; |
94 "--infodir="*) infodir=${ARG#--infodir=} ;; |
79 "--help"*) printhelp; rm -Rf "$TEMP_DIR"; exit 1 ;; |
95 "--mandir"*) mandir=${ARG#--mandir} ;; |
80 "-"*) echo "unknown option: $ARG"; rm -Rf "$TEMP_DIR"; exit 1 ;; |
96 "--localedir"*) localedir=${ARG#--localedir} ;; |
|
97 "--help"*) printhelp; abort_configure ;; |
|
98 "--debug") BUILD_TYPE="debug" ;; |
|
99 "--release") BUILD_TYPE="release" ;; |
|
100 "-"*) echo "unknown option: $ARG"; abort_configure ;; |
81 esac |
101 esac |
82 done |
102 done |
83 |
103 |
84 # set dir variables |
104 |
85 if [ -z "$BINDIR" ]; then |
105 |
86 BINDIR=$EPREFIX/bin |
106 # set defaults for dir variables |
87 fi |
107 : ${exec_prefix:="$prefix"} |
88 if [ -z "$SBINDIR" ]; then |
108 : ${bindir:='${exec_prefix}/bin'} |
89 SBINDIR=$EPREFIX/sbin |
109 : ${sbindir:='${exec_prefix}/sbin'} |
90 fi |
110 : ${libdir:='${exec_prefix}/lib'} |
91 if [ -z "$LIBDIR" ]; then |
111 : ${libexecdir:='${exec_prefix}/libexec'} |
92 LIBDIR=$EPREFIX/lib |
112 : ${datarootdir:='${prefix}/share'} |
93 fi |
113 : ${datadir:='${datarootdir}'} |
94 if [ -z "$LIBEXEC" ]; then |
114 : ${sysconfdir:='${prefix}/etc'} |
95 LIBEXECDIR=$EPREFIX/libexec |
115 : ${sharedstatedir:='${prefix}/com'} |
96 fi |
116 : ${localstatedir:='${prefix}/var'} |
97 if [ -z "$DATADIR" ]; then |
117 : ${runstatedir:='${localstatedir}/run'} |
98 DATADIR=$PREFIX/share |
118 : ${includedir:='${prefix}/include'} |
99 fi |
119 : ${infodir:='${datarootdir}/info'} |
100 if [ -z "$SYSCONFDIR" ]; then |
120 : ${mandir:='${datarootdir}/man'} |
101 SYSCONFDIR=$PREFIX/etc |
121 : ${localedir:='${datarootdir}/locale'} |
102 fi |
122 |
103 if [ -z "$SHAREDSTATEDIR" ]; then |
123 # check if a config.site exists and load it |
104 SHAREDSTATEDIR=$PREFIX/com |
124 if [ -n "$CONFIG_SITE" ]; then |
105 fi |
125 # CONFIG_SITE may contain space separated file names |
106 if [ -z "$LOCALSTATEDIR" ]; then |
126 for cs in $CONFIG_SITE; do |
107 LOCALSTATEDIR=$PREFIX/var |
127 printf "loading defaults from $cs... " |
108 fi |
128 . "$cs" |
109 if [ -z "$INCLUDEDIR" ]; then |
129 echo ok |
110 INCLUDEDIR=$PREFIX/include |
130 done |
111 fi |
131 elif [ -f "$prefix/share/config.site" ]; then |
112 if [ -z "$INFODIR" ]; then |
132 printf "loading site defaults... " |
113 INFODIR=$PREFIX/info |
133 . "$prefix/share/config.site" |
114 fi |
134 echo ok |
115 if [ -z "$MANDIR" ]; then |
135 elif [ -f "$prefix/etc/config.site" ]; then |
116 MANDIR=$PREFIX/man |
136 printf "loading site defaults... " |
117 fi |
137 . "$prefix/etc/config.site" |
118 |
138 echo ok |
119 which pkg-config > /dev/null |
139 fi |
120 if [ $? -eq 0 ]; then |
140 |
121 PKG_CONFIG=pkg-config |
141 # Test for availability of pkg-config |
122 else |
142 PKG_CONFIG=`command -v pkg-config` |
123 PKG_CONFIG=false |
143 : ${PKG_CONFIG:="false"} |
124 fi |
|
125 |
144 |
126 # Simple uname based platform detection |
145 # Simple uname based platform detection |
127 # $PLATFORM is used for platform dependent dependency selection |
146 # $PLATFORM is used for platform dependent dependency selection |
|
147 OS=`uname -s` |
|
148 OS_VERSION=`uname -r` |
128 printf "detect platform... " |
149 printf "detect platform... " |
129 if [ "$OS" = "SunOS" ]; then |
150 if [ "$OS" = "SunOS" ]; then |
130 PLATFORM="solaris sunos unix svr4" |
151 PLATFORM="solaris sunos unix svr4" |
131 fi |
152 elif [ "$OS" = "Linux" ]; then |
132 if [ "$OS" = "Linux" ]; then |
|
133 PLATFORM="linux unix" |
153 PLATFORM="linux unix" |
134 fi |
154 elif [ "$OS" = "FreeBSD" ]; then |
135 if [ "$OS" = "FreeBSD" ]; then |
|
136 PLATFORM="freebsd bsd unix" |
155 PLATFORM="freebsd bsd unix" |
137 fi |
156 elif [ "$OS" = "OpenBSD" ]; then |
138 if [ "$OS" = "Darwin" ]; then |
157 PLATFORM="openbsd bsd unix" |
|
158 elif [ "$OS" = "NetBSD" ]; then |
|
159 PLATFORM="netbsd bsd unix" |
|
160 elif [ "$OS" = "Darwin" ]; then |
139 PLATFORM="macos osx bsd unix" |
161 PLATFORM="macos osx bsd unix" |
140 fi |
162 elif echo "$OS" | grep -i "MINGW" > /dev/null; then |
141 echo "$OS" | grep -i "MINGW" > /dev/null |
|
142 if [ $? -eq 0 ]; then |
|
143 PLATFORM="windows mingw" |
163 PLATFORM="windows mingw" |
144 fi |
164 fi |
145 |
165 : ${PLATFORM:="unix"} |
146 if [ -z "$PLATFORM" ]; then |
166 |
147 PLATFORM="unix" |
167 PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -` |
148 fi |
168 echo "$PLATFORM_NAME" |
149 |
|
150 for p in $PLATFORM |
|
151 do |
|
152 PLATFORM_NAME=$p |
|
153 break |
|
154 done |
|
155 echo $PLATFORM_NAME |
|
156 |
169 |
157 isplatform() |
170 isplatform() |
158 { |
171 { |
159 for p in $PLATFORM |
172 for p in $PLATFORM |
160 do |
173 do |
162 return 0 |
175 return 0 |
163 fi |
176 fi |
164 done |
177 done |
165 return 1 |
178 return 1 |
166 } |
179 } |
167 isnotplatform() |
180 notisplatform() |
168 { |
181 { |
169 for p in $PLATFORM |
182 for p in $PLATFORM |
170 do |
183 do |
171 if [ "$p" = "$1" ]; then |
184 if [ "$p" = "$1" ]; then |
172 return 1 |
185 return 1 |
173 fi |
186 fi |
174 done |
187 done |
175 return 0 |
188 return 0 |
176 } |
189 } |
177 |
190 istoolchain() |
178 # generate config.mk and config.h |
191 { |
179 cat > "$TEMP_DIR/config.mk" << __EOF__ |
192 for t in $TOOLCHAIN |
180 # |
193 do |
181 # config.mk generated by configure |
194 if [ "$t" = "$1" ]; then |
182 # |
195 return 0 |
183 |
196 fi |
184 # general vars |
197 done |
185 |
198 return 1 |
186 PREFIX=$PREFIX |
199 } |
187 EPREFIX=$EPREFIX |
200 notistoolchain() |
188 |
201 { |
189 BINDIR=$BINDIR |
202 for t in $TOOLCHAIN |
190 SBINDIR=$SBINDIR |
203 do |
191 LIBDIR=$LIBDIR |
204 if [ "$t" = "$1" ]; then |
192 LIBEXECDIR=$LIBEXECDIR |
205 return 1 |
193 DATADIR=$DATADIR |
206 fi |
194 SYSCONFDIR=$SYSCONFDIR |
207 done |
195 SHAREDSTATEDIR=$SHAREDSTATEDIR |
208 return 0 |
196 LOCALSTATEDIR=$LOCALSTATEDIR |
209 } |
197 INCLUDEDIR=$INCLUDEDIR |
210 |
198 INFODIR=$INFODIR |
211 |
199 MANDIR=$MANDIR |
212 # generate vars.mk |
200 |
213 cat > "$TEMP_DIR/vars.mk" << __EOF__ |
|
214 prefix="$prefix" |
|
215 exec_prefix="$exec_prefix" |
|
216 bindir="$bindir" |
|
217 sbindir="$sbindir" |
|
218 libdir="$libdir" |
|
219 libexecdir="$libexecdir" |
|
220 datarootdir="$datarootdir" |
|
221 datadir="$datadir" |
|
222 sysconfdir="$sysconfdir" |
|
223 sharedstatedir="$sharedstatedir" |
|
224 localstatedir="$localstatedir" |
|
225 runstatedir="$runstatedir" |
|
226 includedir="$includedir" |
|
227 infodir="$infodir" |
|
228 mandir="$mandir" |
|
229 localedir="$localedir" |
201 __EOF__ |
230 __EOF__ |
202 |
231 |
|
232 # toolchain detection utilities |
|
233 . make/toolchain.sh |
|
234 |
|
235 # |
|
236 # DEPENDENCIES |
|
237 # |
|
238 |
|
239 # check languages |
|
240 lang_c= |
|
241 lang_cpp= |
|
242 if detect_c_compiler ; then |
|
243 lang_c=1 |
|
244 fi |
|
245 |
|
246 # create buffer for make variables required by dependencies |
203 echo > "$TEMP_DIR/make.mk" |
247 echo > "$TEMP_DIR/make.mk" |
204 |
248 |
205 ENV_CFLAGS=$CFLAGS |
249 test_pkg_config() |
206 ENV_LDFLAGS=$LDFLAGS |
250 { |
207 ENV_CXXFLAGS=$CXXFLAGS |
251 if "$PKG_CONFIG" --exists "$1" ; then : |
208 |
252 else return 1 ; fi |
209 # Toolchain detection |
253 if [ -z "$2" ] || "$PKG_CONFIG" --atleast-version="$2" "$1" ; then : |
210 # this will insert make vars to config.mk |
254 else return 1 ; fi |
211 . make/toolchain.sh |
255 if [ -z "$3" ] || "$PKG_CONFIG" --exact-version="$3" "$1" ; then : |
212 |
256 else return 1 ; fi |
213 # add user specified flags to config.mk |
257 if [ -z "$4" ] || "$PKG_CONFIG" --max-version="$4" "$1" ; then : |
214 echo "# project specific flags" >> "$TEMP_DIR/config.mk" |
258 else return 1 ; fi |
215 if [ -n "${ENV_CFLAGS}" ]; then |
259 return 0 |
216 echo "CFLAGS += $ENV_CFLAGS" >> "$TEMP_DIR/config.mk" |
260 } |
217 fi |
261 |
218 if [ -n "${ENV_CXXFLAGS}" ]; then |
262 print_check_msg() |
219 echo "CXXFLAGS += $ENV_CXXFLAGS" >> "$TEMP_DIR/config.mk" |
263 { |
220 fi |
264 if [ -z "$1" ]; then |
221 if [ -n "${ENV_LDFLAGS}" ]; then |
265 shift |
222 echo "LDFLAGS += $ENV_LDFLAGS" >> "$TEMP_DIR/config.mk" |
266 printf "$@" |
223 fi |
267 fi |
224 |
268 } |
225 # |
269 |
226 # DEPENDENCIES |
270 dependency_error_curl() |
227 # |
271 { |
228 |
272 print_check_msg "$dep_checked_curl" "checking for curl... " |
229 dependency_curl() |
|
230 { |
|
231 printf "checking for curl... " |
|
232 # dependency curl platform="windows" |
273 # dependency curl platform="windows" |
233 while true |
274 while true |
234 do |
275 do |
235 if isnotplatform "windows"; then |
276 if notisplatform "windows"; then |
236 break |
277 break |
237 fi |
278 fi |
238 TEMP_CFLAGS="$TEMP_CFLAGS -I/mingw/include" |
279 TEMP_CFLAGS="$TEMP_CFLAGS -I/mingw/include" |
239 TEMP_LDFLAGS="$TEMP_LDFLAGS -lcurl" |
280 TEMP_LDFLAGS="$TEMP_LDFLAGS -lcurl" |
240 echo yes |
281 print_check_msg "$dep_checked_curl" "yes\n" |
241 return 0 |
282 dep_checked_curl=1 |
|
283 return 1 |
242 done |
284 done |
243 |
285 |
244 # dependency curl platform="macos" |
286 # dependency curl platform="macos" |
245 while true |
287 while true |
246 do |
288 do |
247 if isnotplatform "macos"; then |
289 if notisplatform "macos"; then |
248 break |
290 break |
249 fi |
291 fi |
250 curl-config --cflags > /dev/null |
292 if tmp_flags=`curl-config --cflags` ; then |
251 if [ $? -eq 0 ]; then |
293 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" |
252 TEMP_CFLAGS="$TEMP_CFLAGS `curl-config --cflags`" |
294 else |
253 else |
295 break |
254 break |
296 fi |
255 fi |
297 if tmp_flags=`curl-config --ldflags` ; then |
256 curl-config --ldflags > /dev/null |
298 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" |
257 if [ $? -eq 0 ]; then |
299 else |
258 TEMP_LDFLAGS="$TEMP_LDFLAGS `curl-config --ldflags`" |
300 break |
259 else |
301 fi |
260 break |
302 print_check_msg "$dep_checked_curl" "yes\n" |
261 fi |
303 dep_checked_curl=1 |
262 echo yes |
304 return 1 |
263 return 0 |
|
264 done |
305 done |
265 |
306 |
266 # dependency curl |
307 # dependency curl |
267 while true |
308 while true |
268 do |
309 do |
269 if [ -z "$PKG_CONFIG" ]; then |
310 if [ -z "$PKG_CONFIG" ]; then |
270 break |
311 break |
271 fi |
312 fi |
272 $PKG_CONFIG libcurl |
313 if test_pkg_config "libcurl" "" "" "" ; then |
273 if [ $? -ne 0 ] ; then |
314 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libcurl`" |
274 break |
315 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libcurl`" |
275 fi |
316 else |
276 TEMP_CFLAGS="$TEMP_CFLAGS `$PKG_CONFIG --cflags libcurl`" |
317 break |
277 TEMP_LDFLAGS="$TEMP_LDFLAGS `$PKG_CONFIG --libs libcurl`" |
318 fi |
278 echo yes |
319 print_check_msg "$dep_checked_curl" "yes\n" |
279 return 0 |
320 dep_checked_curl=1 |
|
321 return 1 |
280 done |
322 done |
281 |
323 |
282 # dependency curl |
324 # dependency curl |
283 while true |
325 while true |
284 do |
326 do |
285 curl-config --cflags > /dev/null |
327 if tmp_flags=`curl-config --cflags` ; then |
286 if [ $? -eq 0 ]; then |
328 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" |
287 TEMP_CFLAGS="$TEMP_CFLAGS `curl-config --cflags`" |
329 else |
288 else |
330 break |
289 break |
331 fi |
290 fi |
332 if tmp_flags=`curl-config --libs` ; then |
291 curl-config --libs > /dev/null |
333 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" |
292 if [ $? -eq 0 ]; then |
334 else |
293 TEMP_LDFLAGS="$TEMP_LDFLAGS `curl-config --libs`" |
335 break |
294 else |
336 fi |
295 break |
337 print_check_msg "$dep_checked_curl" "yes\n" |
296 fi |
338 dep_checked_curl=1 |
297 echo yes |
339 return 1 |
298 return 0 |
340 done |
299 done |
341 |
300 |
342 print_check_msg "$dep_checked_curl" "no\n" |
301 echo no |
343 dep_checked_curl=1 |
302 return 1 |
344 return 0 |
303 } |
345 } |
304 dependency_openssl() |
346 dependency_error_openssl() |
305 { |
347 { |
306 printf "checking for openssl... " |
348 print_check_msg "$dep_checked_openssl" "checking for openssl... " |
307 # dependency openssl platform="windows" |
349 # dependency openssl platform="windows" |
308 while true |
350 while true |
309 do |
351 do |
310 if isnotplatform "windows"; then |
352 if notisplatform "windows"; then |
311 break |
353 break |
312 fi |
354 fi |
313 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto" |
355 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto" |
314 echo yes |
356 print_check_msg "$dep_checked_openssl" "yes\n" |
315 return 0 |
357 dep_checked_openssl=1 |
|
358 return 1 |
316 done |
359 done |
317 |
360 |
318 # dependency openssl platform="macos" |
361 # dependency openssl platform="macos" |
319 while true |
362 while true |
320 do |
363 do |
321 if isnotplatform "macos"; then |
364 if notisplatform "macos"; then |
322 break |
365 break |
323 fi |
366 fi |
324 TEMP_LDFLAGS="$TEMP_LDFLAGS -framework CoreFoundation" |
367 TEMP_LDFLAGS="$TEMP_LDFLAGS -framework CoreFoundation" |
325 echo yes |
368 print_check_msg "$dep_checked_openssl" "yes\n" |
326 return 0 |
369 dep_checked_openssl=1 |
|
370 return 1 |
327 done |
371 done |
328 |
372 |
329 # dependency openssl platform="bsd" |
373 # dependency openssl platform="bsd" |
330 while true |
374 while true |
331 do |
375 do |
332 if isnotplatform "bsd"; then |
376 if notisplatform "bsd"; then |
333 break |
377 break |
334 fi |
378 fi |
335 if isplatform "macos"; then |
379 if isplatform "macos" || istoolchain "macos"; then |
336 break |
380 break |
337 fi |
381 fi |
338 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto" |
382 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto" |
339 echo yes |
383 print_check_msg "$dep_checked_openssl" "yes\n" |
340 return 0 |
384 dep_checked_openssl=1 |
|
385 return 1 |
341 done |
386 done |
342 |
387 |
343 # dependency openssl |
388 # dependency openssl |
344 while true |
389 while true |
345 do |
390 do |
346 if [ -z "$PKG_CONFIG" ]; then |
391 if [ -z "$PKG_CONFIG" ]; then |
347 break |
392 break |
348 fi |
393 fi |
349 $PKG_CONFIG openssl |
394 if test_pkg_config "openssl" "" "" "" ; then |
350 if [ $? -ne 0 ] ; then |
395 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags openssl`" |
351 break |
396 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs openssl`" |
352 fi |
397 else |
353 TEMP_CFLAGS="$TEMP_CFLAGS `$PKG_CONFIG --cflags openssl`" |
398 break |
354 TEMP_LDFLAGS="$TEMP_LDFLAGS `$PKG_CONFIG --libs openssl`" |
399 fi |
355 echo yes |
400 print_check_msg "$dep_checked_openssl" "yes\n" |
356 return 0 |
401 dep_checked_openssl=1 |
357 done |
402 return 1 |
358 |
403 done |
359 echo no |
404 |
360 return 1 |
405 print_check_msg "$dep_checked_openssl" "no\n" |
361 } |
406 dep_checked_openssl=1 |
362 dependency_libxml2() |
407 return 0 |
363 { |
408 } |
364 printf "checking for libxml2... " |
409 dependency_error_libxml2() |
|
410 { |
|
411 print_check_msg "$dep_checked_libxml2" "checking for libxml2... " |
365 # dependency libxml2 platform="windows" |
412 # dependency libxml2 platform="windows" |
366 while true |
413 while true |
367 do |
414 do |
368 if isnotplatform "windows"; then |
415 if notisplatform "windows"; then |
369 break |
416 break |
370 fi |
417 fi |
371 xml2-config --cflags > /dev/null |
418 if tmp_flags=`xml2-config --cflags` ; then |
372 if [ $? -eq 0 ]; then |
419 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" |
373 TEMP_CFLAGS="$TEMP_CFLAGS `xml2-config --cflags`" |
420 else |
374 else |
421 break |
375 break |
422 fi |
376 fi |
423 if tmp_flags=`xml2-config --libs` ; then |
377 xml2-config --libs > /dev/null |
424 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" |
378 if [ $? -eq 0 ]; then |
425 else |
379 TEMP_LDFLAGS="$TEMP_LDFLAGS `xml2-config --libs`" |
426 break |
380 else |
427 fi |
381 break |
428 print_check_msg "$dep_checked_libxml2" "yes\n" |
382 fi |
429 dep_checked_libxml2=1 |
383 echo yes |
430 return 1 |
384 return 0 |
|
385 done |
431 done |
386 |
432 |
387 # dependency libxml2 platform="macos" |
433 # dependency libxml2 platform="macos" |
388 while true |
434 while true |
389 do |
435 do |
390 if isnotplatform "macos"; then |
436 if notisplatform "macos"; then |
391 break |
437 break |
392 fi |
438 fi |
393 xml2-config --cflags > /dev/null |
439 if tmp_flags=`xml2-config --cflags` ; then |
394 if [ $? -eq 0 ]; then |
440 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" |
395 TEMP_CFLAGS="$TEMP_CFLAGS `xml2-config --cflags`" |
441 else |
396 else |
442 break |
397 break |
443 fi |
398 fi |
444 if tmp_flags=`xml2-config --libs` ; then |
399 xml2-config --libs > /dev/null |
445 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" |
400 if [ $? -eq 0 ]; then |
446 else |
401 TEMP_LDFLAGS="$TEMP_LDFLAGS `xml2-config --libs`" |
447 break |
402 else |
448 fi |
403 break |
449 print_check_msg "$dep_checked_libxml2" "yes\n" |
404 fi |
450 dep_checked_libxml2=1 |
405 echo yes |
451 return 1 |
406 return 0 |
|
407 done |
452 done |
408 |
453 |
409 # dependency libxml2 |
454 # dependency libxml2 |
410 while true |
455 while true |
411 do |
456 do |
412 if [ -z "$PKG_CONFIG" ]; then |
457 if [ -z "$PKG_CONFIG" ]; then |
413 break |
458 break |
414 fi |
459 fi |
415 $PKG_CONFIG libxml-2.0 |
460 if test_pkg_config "libxml-2.0" "" "" "" ; then |
416 if [ $? -ne 0 ] ; then |
461 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libxml-2.0`" |
417 break |
462 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libxml-2.0`" |
418 fi |
463 else |
419 TEMP_CFLAGS="$TEMP_CFLAGS `$PKG_CONFIG --cflags libxml-2.0`" |
464 break |
420 TEMP_LDFLAGS="$TEMP_LDFLAGS `$PKG_CONFIG --libs libxml-2.0`" |
465 fi |
421 echo yes |
466 print_check_msg "$dep_checked_libxml2" "yes\n" |
422 return 0 |
467 dep_checked_libxml2=1 |
|
468 return 1 |
423 done |
469 done |
424 |
470 |
425 # dependency libxml2 |
471 # dependency libxml2 |
426 while true |
472 while true |
427 do |
473 do |
428 xml2-config --cflags > /dev/null |
474 if tmp_flags=`xml2-config --cflags` ; then |
429 if [ $? -eq 0 ]; then |
475 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" |
430 TEMP_CFLAGS="$TEMP_CFLAGS `xml2-config --cflags`" |
476 else |
431 else |
477 break |
432 break |
478 fi |
433 fi |
479 if tmp_flags=`xml2-config --libs` ; then |
434 xml2-config --libs > /dev/null |
480 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" |
435 if [ $? -eq 0 ]; then |
481 else |
436 TEMP_LDFLAGS="$TEMP_LDFLAGS `xml2-config --libs`" |
482 break |
437 else |
483 fi |
438 break |
484 print_check_msg "$dep_checked_libxml2" "yes\n" |
439 fi |
485 dep_checked_libxml2=1 |
440 echo yes |
486 return 1 |
441 return 0 |
487 done |
442 done |
488 |
443 |
489 print_check_msg "$dep_checked_libxml2" "no\n" |
444 echo no |
490 dep_checked_libxml2=1 |
445 return 1 |
491 return 0 |
446 } |
492 } |
|
493 |
|
494 # start collecting dependency information |
|
495 echo > "$TEMP_DIR/flags.mk" |
447 |
496 |
448 DEPENDENCIES_FAILED= |
497 DEPENDENCIES_FAILED= |
449 ERROR=0 |
498 ERROR=0 |
450 # general dependencies |
499 # unnamed dependencies |
451 TEMP_CFLAGS= |
500 TEMP_CFLAGS= |
|
501 TEMP_CXXFLAGS= |
452 TEMP_LDFLAGS= |
502 TEMP_LDFLAGS= |
453 while true |
503 while true |
454 do |
504 do |
455 while true |
505 while true |
456 do |
506 do |
|
507 if [ -z "$lang_c" ] ; then |
|
508 ERROR=1 |
|
509 break |
|
510 fi |
457 |
511 |
458 TEMP_LDFLAGS="$TEMP_LDFLAGS -lm -lpthread" |
512 TEMP_LDFLAGS="$TEMP_LDFLAGS -lm -lpthread" |
459 |
513 break |
460 break |
514 done |
461 done |
|
462 |
|
463 break |
515 break |
464 done |
516 done |
465 while true |
517 while true |
466 do |
518 do |
467 if isnotplatform "bsd"; then |
519 if notisplatform "bsd"; then |
468 break |
520 break |
469 fi |
521 fi |
470 if isplatform "macos"; then |
522 if isplatform "macos" || istoolchain "macos"; then |
471 break |
523 break |
472 fi |
524 fi |
473 while true |
525 while true |
474 do |
526 do |
475 |
527 |
476 TEMP_CFLAGS="$TEMP_CFLAGS -I/usr/local/include" |
528 TEMP_CFLAGS="$TEMP_CFLAGS -I/usr/local/include" |
477 TEMP_LDFLAGS="$TEMP_LDFLAGS -L/usr/local/lib" |
529 TEMP_LDFLAGS="$TEMP_LDFLAGS -L/usr/local/lib" |
478 |
530 break |
479 break |
531 done |
480 done |
|
481 |
|
482 break |
532 break |
483 done |
533 done |
484 while true |
534 while true |
485 do |
535 do |
486 if isnotplatform "macos"; then |
536 if notisplatform "macos"; then |
487 break |
537 break |
488 fi |
538 fi |
489 while true |
539 while true |
490 do |
540 do |
491 |
541 |
492 cat >> "$TEMP_DIR/make.mk" << __EOF__ |
542 cat >> "$TEMP_DIR/make.mk" << __EOF__ |
493 OBJ_EXT = .o |
543 OBJ_EXT = .o |
494 LIB_EXT = .a |
544 LIB_EXT = .a |
495 |
545 |
496 __EOF__ |
546 __EOF__ |
497 |
547 break |
498 break |
548 done |
499 done |
|
500 |
|
501 break |
549 break |
502 done |
550 done |
503 while true |
551 while true |
504 do |
552 do |
505 if isnotplatform "unix"; then |
553 if notisplatform "unix"; then |
506 break |
554 break |
507 fi |
555 fi |
508 if isplatform "macos"; then |
556 if isplatform "macos" || istoolchain "macos"; then |
509 break |
557 break |
510 fi |
558 fi |
511 while true |
559 while true |
512 do |
560 do |
513 |
561 |
514 cat >> "$TEMP_DIR/make.mk" << __EOF__ |
562 cat >> "$TEMP_DIR/make.mk" << __EOF__ |
515 OBJ_EXT = .o |
563 OBJ_EXT = .o |
516 LIB_EXT = .a |
564 LIB_EXT = .a |
517 |
565 |
518 __EOF__ |
566 __EOF__ |
519 |
567 break |
520 break |
568 done |
521 done |
|
522 |
|
523 break |
569 break |
524 done |
570 done |
525 |
571 |
526 # add general dependency flags to config.mk |
572 # add general dependency flags to flags.mk |
527 echo >> "$TEMP_DIR/config.mk" |
573 echo "# general flags" >> "$TEMP_DIR/flags.mk" |
528 if [ -n "${TEMP_CFLAGS}" ]; then |
574 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then |
529 echo "CFLAGS += $TEMP_CFLAGS" >> $TEMP_DIR/config.mk |
575 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" |
530 fi |
576 fi |
531 if [ -n "${TEMP_CXXFLAGS}" ]; then |
577 if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then |
532 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> $TEMP_DIR/config.mk |
578 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" |
533 fi |
579 fi |
534 if [ -n "${TEMP_LDFLAGS}" ]; then |
580 if [ -n "${TEMP_LDFLAGS}" ]; then |
535 echo "LDFLAGS += $TEMP_LDFLAGS" >> $TEMP_DIR/config.mk |
581 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" |
536 fi |
582 fi |
537 |
583 |
538 # |
584 # |
539 # OPTION VALUES |
585 # OPTION VALUES |
540 # |
586 # |
541 |
587 |
542 # |
588 # |
543 # TARGETS |
589 # TARGETS |
544 # |
590 # |
|
591 |
|
592 echo >> "$TEMP_DIR/flags.mk" |
|
593 echo "configuring target: dav" |
|
594 echo "# flags for target dav" >> "$TEMP_DIR/flags.mk" |
545 TEMP_CFLAGS= |
595 TEMP_CFLAGS= |
546 TEMP_CXXFLAGS= |
596 TEMP_CXXFLAGS= |
547 TEMP_LDFLAGS= |
597 TEMP_LDFLAGS= |
548 |
598 |
549 # Target: dav |
599 if dependency_error_curl; then |
550 TEMP_CFLAGS= |
|
551 TEMP_LDFLAGS= |
|
552 TEMP_CXXFLAGS= |
|
553 |
|
554 dependency_curl |
|
555 if [ $? -ne 0 ]; then |
|
556 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED curl " |
600 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED curl " |
557 ERROR=1 |
601 ERROR=1 |
558 fi |
602 fi |
559 dependency_libxml2 |
603 if dependency_error_libxml2; then |
560 if [ $? -ne 0 ]; then |
|
561 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libxml2 " |
604 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libxml2 " |
562 ERROR=1 |
605 ERROR=1 |
563 fi |
606 fi |
564 dependency_openssl |
607 if dependency_error_openssl; then |
565 if [ $? -ne 0 ]; then |
|
566 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED openssl " |
608 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED openssl " |
567 ERROR=1 |
609 ERROR=1 |
568 fi |
610 fi |
569 |
611 |
570 # Features |
612 # Features |
571 |
613 |
572 |
614 |
573 echo >> "$TEMP_DIR/config.mk" |
615 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then |
574 if [ -n "${TEMP_CFLAGS}" ]; then |
616 echo "DAV_CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" |
575 echo "DAV_CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/config.mk" |
617 fi |
576 fi |
618 if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then |
577 if [ -n "${TEMP_CXXFLAGS}" ]; then |
619 echo "DAV_CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" |
578 echo "DAV_CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/config.mk" |
620 fi |
|
621 if [ "$BUILD_TYPE" = "debug" ]; then |
|
622 if [ -n "$lang_c" ]; then |
|
623 echo 'DAV_CFLAGS += ${DEBUG_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" |
|
624 fi |
|
625 if [ -n "$lang_cpp" ]; then |
|
626 echo 'DAV_CXXFLAGS += ${DEBUG_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" |
|
627 fi |
|
628 fi |
|
629 if [ "$BUILD_TYPE" = "release" ]; then |
|
630 if [ -n "$lang_c" ]; then |
|
631 echo 'DAV_CFLAGS += ${RELEASE_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" |
|
632 fi |
|
633 if [ -n "$lang_cpp" ]; then |
|
634 echo 'DAV_CXXFLAGS += ${RELEASE_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" |
|
635 fi |
579 fi |
636 fi |
580 if [ -n "${TEMP_LDFLAGS}" ]; then |
637 if [ -n "${TEMP_LDFLAGS}" ]; then |
581 echo "DAV_LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/config.mk" |
638 echo "DAV_LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" |
582 fi |
639 fi |
583 |
640 |
|
641 |
|
642 # final result |
584 if [ $ERROR -ne 0 ]; then |
643 if [ $ERROR -ne 0 ]; then |
585 echo |
644 echo |
586 echo "Error: Unresolved dependencies" |
645 echo "Error: Unresolved dependencies" |
587 echo "$DEPENDENCIES_FAILED" |
646 echo "$DEPENDENCIES_FAILED" |
588 rm -Rf "$TEMP_DIR" |
647 abort_configure |
589 exit 1 |
|
590 fi |
648 fi |
591 |
649 |
592 echo "configure finished" |
650 echo "configure finished" |
593 echo |
651 echo |
594 echo "Build Config:" |
652 echo "Build Config:" |
595 echo " PREFIX: $PREFIX" |
653 echo " PREFIX: $prefix" |
596 echo " TOOLCHAIN: $TOOLCHAIN_NAME" |
654 echo " TOOLCHAIN: $TOOLCHAIN_NAME" |
597 echo |
655 echo |
598 cat "$TEMP_DIR/config.mk" "$TEMP_DIR/make.mk" > config.mk |
656 |
|
657 # generate the config.mk file |
|
658 cat > "$TEMP_DIR/config.mk" << __EOF__ |
|
659 # |
|
660 # config.mk generated by configure |
|
661 # |
|
662 |
|
663 __EOF__ |
|
664 write_toolchain_defaults "$TEMP_DIR/toolchain.mk" |
|
665 cat "$TEMP_DIR/vars.mk" "$TEMP_DIR/toolchain.mk" "$TEMP_DIR/flags.mk" "$TEMP_DIR/make.mk" > config.mk |
599 rm -Rf "$TEMP_DIR" |
666 rm -Rf "$TEMP_DIR" |
600 |
|
601 |
|