sgl
diff configure @ 9:5efd62ff354a
- configure now also heeds mac-framework: options in modules
- cleaned up the generated module.c a bit
author | John Tsiombikas <nuclear@siggraph.org> |
---|---|
date | Sat, 14 May 2011 08:58:49 +0300 |
parents | edbfc96fe80d |
children | b925dabd4e96 |
line diff
1.1 --- a/configure Sat May 14 08:33:41 2011 +0300 1.2 +++ b/configure Sat May 14 08:58:49 2011 +0300 1.3 @@ -3,9 +3,19 @@ 1.4 cfgfile=src/config.h 1.5 modfile=src/modules.c 1.6 1.7 +extract() 1.8 +{ 1.9 + grep "$2:" $1 | sed "s/^.*$2: \?\(.*\) \?\*\//\1/" 1.10 +} 1.11 + 1.12 get_depline() 1.13 { 1.14 - grep 'link-with:' $1 | sed 's/^.*link-with: \?\(.*\) \?\*\//\1/' 1.15 + extract $1 link-with 1.16 +} 1.17 + 1.18 +get_framework() 1.19 +{ 1.20 + extract $1 mac-framework 1.21 } 1.22 1.23 get_usedef() 1.24 @@ -30,6 +40,9 @@ 1.25 # write beginning of modules.c 1.26 echo "/* this file is generated by $0, do not edit */" >$modfile 1.27 echo >>$modfile 1.28 +echo '#define REGISTER_MODULE(name) \' >>$modfile 1.29 +echo ' do { void sgl_register_##name(); sgl_register_##name(); } while(0)' >>$modfile 1.30 +echo >>$modfile 1.31 echo 'void sgl_modules_init(void)' >>$modfile 1.32 echo '{' >>$modfile 1.33 1.34 @@ -45,7 +58,15 @@ 1.35 def=`get_usedef $m` 1.36 1.37 # extract link-with line 1.38 - dep=`get_depline $m` 1.39 + if [ `uname -s` = Darwin ]; then 1.40 + dep=`get_framework $m` 1.41 + if [ -z "$dep" ]; then 1.42 + dep=`get_depline $m` 1.43 + fi 1.44 + else 1.45 + dep=`get_depline $m` 1.46 + fi 1.47 + 1.48 name=`echo $m | sort | sed 's/src\/wsys_//' | sed 's/\.c//'` 1.49 echo -n "-> trying module $name (needs: $dep) ... " 1.50 1.51 @@ -59,9 +80,7 @@ 1.52 echo >>$cfgfile 1.53 1.54 # make the registration call in modules.c 1.55 - echo " void sgl_register_$name();" >>$modfile 1.56 - echo " sgl_register_$name();" >>$modfile 1.57 - echo >>$modfile 1.58 + echo " REGISTER_MODULE($name);" >>$modfile 1.59 else 1.60 echo failed 1.61 fi