Tue, 10 Oct 2023 20:34:51 +0200
update uwproj (adds support for config.site)
configure | file | annotate | diff | comparison | revisions | |
make/configure.vm | file | annotate | diff | comparison | revisions | |
src/Makefile | file | annotate | diff | comparison | revisions |
1.1 --- a/configure Sun Oct 01 14:25:26 2023 +0200 1.2 +++ b/configure Tue Oct 10 20:34:51 2023 +0200 1.3 @@ -14,19 +14,23 @@ 1.4 touch "$TEMP_DIR/features" 1.5 1.6 # define standard variables 1.7 -PREFIX=/usr 1.8 -EPREFIX= 1.9 -BINDIR= 1.10 -SBINDIR= 1.11 -LIBDIR= 1.12 -LIBEXECDIR= 1.13 -DATADIR= 1.14 -SYSCONFDIR= 1.15 -SHAREDSTATEDIR= 1.16 -LOCALSTATEDIR= 1.17 -INCLUDEDIR= 1.18 -INFODIR= 1.19 -MANDIR= 1.20 +# also define standard prefix (this is where we will search for config.site) 1.21 +prefix=/usr 1.22 +exec_prefix= 1.23 +bindir= 1.24 +sbindir= 1.25 +libdir= 1.26 +libexecdir= 1.27 +datarootdir= 1.28 +datadir= 1.29 +sysconfdir= 1.30 +sharedstatedir= 1.31 +localstatedir= 1.32 +runstatedir= 1.33 +includedir= 1.34 +infodir= 1.35 +localedir= 1.36 +mandir= 1.37 1.38 # custom variables 1.39 1.40 @@ -56,12 +60,14 @@ 1.41 --sysconfdir=DIR system configuration files [PREFIX/etc] 1.42 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] 1.43 --localstatedir=DIR modifiable single-machine data [PREFIX/var] 1.44 + --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run] 1.45 --libdir=DIR object code libraries [EPREFIX/lib] 1.46 --includedir=DIR C header files [PREFIX/include] 1.47 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] 1.48 --datadir=DIR read-only architecture-independent data [DATAROOTDIR] 1.49 --infodir=DIR info documentation [DATAROOTDIR/info] 1.50 --mandir=DIR man documentation [DATAROOTDIR/man] 1.51 + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] 1.52 1.53 __EOF__ 1.54 } 1.55 @@ -73,19 +79,21 @@ 1.56 for ARG in "$@" 1.57 do 1.58 case "$ARG" in 1.59 - "--prefix="*) PREFIX=${ARG#--prefix=} ;; 1.60 - "--exec-prefix="*) EPREFIX=${ARG#--exec-prefix=} ;; 1.61 - "--bindir="*) BINDIR=${ARG#----bindir=} ;; 1.62 - "--sbindir="*) SBINDIR=${ARG#--sbindir=} ;; 1.63 - "--libdir="*) LIBDIR=${ARG#--libdir=} ;; 1.64 - "--libexecdir="*) LIBEXECDIR=${ARG#--libexecdir=} ;; 1.65 - "--datadir="*) DATADIR=${ARG#--datadir=} ;; 1.66 - "--sysconfdir="*) SYSCONFDIR=${ARG#--sysconfdir=} ;; 1.67 - "--sharedstatedir="*) SHAREDSTATEDIR=${ARG#--sharedstatedir=} ;; 1.68 - "--localstatedir="*) LOCALSTATEDIR=${ARG#--localstatedir=} ;; 1.69 - "--includedir="*) INCLUDEDIR=${ARG#--includedir=} ;; 1.70 - "--infodir="*) INFODIR=${ARG#--infodir=} ;; 1.71 - "--mandir"*) MANDIR=${ARG#--mandir} ;; 1.72 + "--prefix="*) prefix=${ARG#--prefix=} ;; 1.73 + "--exec-prefix="*) exec_prefix=${ARG#--exec-prefix=} ;; 1.74 + "--bindir="*) bindir=${ARG#----bindir=} ;; 1.75 + "--sbindir="*) sbindir=${ARG#--sbindir=} ;; 1.76 + "--libdir="*) libdir=${ARG#--libdir=} ;; 1.77 + "--libexecdir="*) libexecdir=${ARG#--libexecdir=} ;; 1.78 + "--datarootdir="*) datarootdir=${ARG#--datarootdir=} ;; 1.79 + "--datadir="*) datadir=${ARG#--datadir=} ;; 1.80 + "--sysconfdir="*) sysconfdir=${ARG#--sysconfdir=} ;; 1.81 + "--sharedstatedir="*) sharedstatedir=${ARG#--sharedstatedir=} ;; 1.82 + "--localstatedir="*) localstatedir=${ARG#--localstatedir=} ;; 1.83 + "--includedir="*) includedir=${ARG#--includedir=} ;; 1.84 + "--infodir="*) infodir=${ARG#--infodir=} ;; 1.85 + "--mandir"*) mandir=${ARG#--mandir} ;; 1.86 + "--localedir"*) localedir=${ARG#--localedir} ;; 1.87 "--help"*) printhelp; abort_configure ;; 1.88 "--debug") BUILD_TYPE="debug" ;; 1.89 "--release") BUILD_TYPE="release" ;; 1.90 @@ -94,19 +102,41 @@ 1.91 done 1.92 1.93 1.94 -# set dir variables 1.95 -: ${EPREFIX:="$PREFIX"} 1.96 -: ${BINDIR:="$EPREFIX/bin"} 1.97 -: ${SBINDIR:="$EPREFIX/sbin"} 1.98 -: ${LIBDIR:="$EPREFIX/lib"} 1.99 -: ${LIBEXECDIR:="$EPREFIX/libexec"} 1.100 -: ${DATADIR:="$PREFIX/share"} 1.101 -: ${SYSCONFDIR:="$PREFIX/etc"} 1.102 -: ${SHAREDSTATEDIR:="$PREFIX/com"} 1.103 -: ${LOCALSTATEDIR:="$PREFIX/var"} 1.104 -: ${INCLUDEDIR:="$PREFIX/include"} 1.105 -: ${INFODIR:="$PREFIX/info"} 1.106 -: ${MANDIR:="$PREFIX/man"} 1.107 + 1.108 +# set defaults for dir variables 1.109 +: ${exec_prefix:="$prefix"} 1.110 +: ${bindir:='${exec_prefix}/bin'} 1.111 +: ${sbindir:='${exec_prefix}/sbin'} 1.112 +: ${libdir:='${exec_prefix}/lib'} 1.113 +: ${libexecdir:='${exec_prefix}/libexec'} 1.114 +: ${datarootdir:='${prefix}/share'} 1.115 +: ${datadir:='${datarootdir}'} 1.116 +: ${sysconfdir:='${prefix}/etc'} 1.117 +: ${sharedstatedir:='${prefix}/com'} 1.118 +: ${localstatedir:='${prefix}/var'} 1.119 +: ${runstatedir:='${localstatedir}/run'} 1.120 +: ${includedir:='${prefix}/include'} 1.121 +: ${infodir:='${datarootdir}/info'} 1.122 +: ${mandir:='${datarootdir}/man'} 1.123 +: ${localedir:='${datarootdir}/locale'} 1.124 + 1.125 +# check if a config.site exists and load it 1.126 +if [ -n "$CONFIG_SITE" ]; then 1.127 + # CONFIG_SITE may contain space separated file names 1.128 + for cs in $CONFIG_SITE; do 1.129 + printf "loading defaults from $cs... " 1.130 + . "$cs" 1.131 + echo ok 1.132 + done 1.133 +elif [ -f "$prefix/share/config.site" ]; then 1.134 + printf "loading site defaults... " 1.135 + . "$prefix/share/config.site" 1.136 + echo ok 1.137 +elif [ -f "$prefix/etc/config.site" ]; then 1.138 + printf "loading site defaults... " 1.139 + . "$prefix/etc/config.site" 1.140 + echo ok 1.141 +fi 1.142 1.143 # Test for availability of pkg-config 1.144 PKG_CONFIG=`command -v pkg-config` 1.145 @@ -161,22 +191,23 @@ 1.146 1.147 # generate vars.mk 1.148 cat > "$TEMP_DIR/vars.mk" << __EOF__ 1.149 -PREFIX=$PREFIX 1.150 -EPREFIX=$EPREFIX 1.151 -BINDIR=$BINDIR 1.152 -SBINDIR=$SBINDIR 1.153 -LIBDIR=$LIBDIR 1.154 -LIBEXECDIR=$LIBEXECDIR 1.155 -DATADIR=$DATADIR 1.156 -SYSCONFDIR=$SYSCONFDIR 1.157 -SHAREDSTATEDIR=$SHAREDSTATEDIR 1.158 -LOCALSTATEDIR=$LOCALSTATEDIR 1.159 -INCLUDEDIR=$INCLUDEDIR 1.160 -INFODIR=$INFODIR 1.161 -MANDIR=$MANDIR 1.162 +prefix="$prefix" 1.163 +exec_prefix="$exec_prefix" 1.164 +bindir="$bindir" 1.165 +sbindir="$sbindir" 1.166 +libdir="$libdir" 1.167 +libexecdir="$libexecdir" 1.168 +datarootdir="$datarootdir" 1.169 +datadir="$datadir" 1.170 +sysconfdir="$sysconfdir" 1.171 +sharedstatedir="$sharedstatedir" 1.172 +localstatedir="$localstatedir" 1.173 +runstatedir="$runstatedir" 1.174 +includedir="$includedir" 1.175 +infodir="$infodir" 1.176 +mandir="$mandir" 1.177 +localedir="$localedir" 1.178 __EOF__ 1.179 -sort -u -o "$TEMP_DIR/vars.mk" "$TEMP_DIR/vars.mk" 1.180 - 1.181 1.182 # toolchain detection utilities 1.183 . make/toolchain.sh 1.184 @@ -237,10 +268,10 @@ 1.185 1.186 # add general dependency flags to flags.mk 1.187 echo "# general flags" >> "$TEMP_DIR/flags.mk" 1.188 -if [ -n "${TEMP_CFLAGS}" ]; then 1.189 +if [ -n "${TEMP_CFLAGS}" -a -n "$lang_c" ]; then 1.190 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" 1.191 fi 1.192 -if [ -n "${TEMP_CXXFLAGS}" ]; then 1.193 +if [ -n "${TEMP_CXXFLAGS}" -a -n "$lang_cpp" ]; then 1.194 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" 1.195 fi 1.196 if [ -n "${TEMP_LDFLAGS}" ]; then 1.197 @@ -256,7 +287,7 @@ 1.198 # 1.199 1.200 echo >> "$TEMP_DIR/flags.mk" 1.201 -# Target: default 1.202 +echo "configuring target: default" 1.203 echo "# flags for target default" >> "$TEMP_DIR/flags.mk" 1.204 TEMP_CFLAGS= 1.205 TEMP_CXXFLAGS= 1.206 @@ -266,19 +297,27 @@ 1.207 # Features 1.208 1.209 1.210 -if [ -n "${TEMP_CFLAGS}" ]; then 1.211 +if [ -n "${TEMP_CFLAGS}" -a -n "$lang_c" ]; then 1.212 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" 1.213 fi 1.214 -if [ -n "${TEMP_CXXFLAGS}" ]; then 1.215 +if [ -n "${TEMP_CXXFLAGS}" -a -n "$lang_cpp" ]; then 1.216 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" 1.217 fi 1.218 if [ "$BUILD_TYPE" = "debug" ]; then 1.219 - echo 'CFLAGS += ${DEBUG_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" 1.220 - echo 'CXXFLAGS += ${DEBUG_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" 1.221 + if [ -n "$lang_c" ]; then 1.222 + echo 'CFLAGS += ${DEBUG_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" 1.223 + fi 1.224 + if [ -n "$lang_cpp" ]; then 1.225 + echo 'CXXFLAGS += ${DEBUG_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" 1.226 + fi 1.227 fi 1.228 if [ "$BUILD_TYPE" = "release" ]; then 1.229 - echo 'CFLAGS += ${RELEASE_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" 1.230 - echo 'CXXFLAGS += ${RELEASE_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" 1.231 + if [ -n "$lang_c" ]; then 1.232 + echo 'CFLAGS += ${RELEASE_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" 1.233 + fi 1.234 + if [ -n "$lang_cpp" ]; then 1.235 + echo 'CXXFLAGS += ${RELEASE_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" 1.236 + fi 1.237 fi 1.238 if [ -n "${TEMP_LDFLAGS}" ]; then 1.239 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" 1.240 @@ -296,8 +335,8 @@ 1.241 echo "configure finished" 1.242 echo 1.243 echo "Build Config:" 1.244 -echo " PREFIX: $PREFIX" 1.245 -echo " TOOLCHAIN: $TOOLCHAIN_NAME" 1.246 +echo " PREFIX: $prefix" 1.247 +echo " TOOLCHAIN: $TOOLCHAIN_NAME" 1.248 echo 1.249 1.250 # generate the config.mk file
2.1 --- a/make/configure.vm Sun Oct 01 14:25:26 2023 +0200 2.2 +++ b/make/configure.vm Tue Oct 10 20:34:51 2023 +0200 2.3 @@ -14,33 +14,37 @@ 2.4 touch "$TEMP_DIR/features" 2.5 2.6 # define standard variables 2.7 -PREFIX=/usr 2.8 -EPREFIX= 2.9 -BINDIR= 2.10 -SBINDIR= 2.11 -LIBDIR= 2.12 -LIBEXECDIR= 2.13 -DATADIR= 2.14 -SYSCONFDIR= 2.15 -SHAREDSTATEDIR= 2.16 -LOCALSTATEDIR= 2.17 -INCLUDEDIR= 2.18 -INFODIR= 2.19 -MANDIR= 2.20 +# also define standard prefix (this is where we will search for config.site) 2.21 +prefix=/usr 2.22 +exec_prefix= 2.23 +bindir= 2.24 +sbindir= 2.25 +libdir= 2.26 +libexecdir= 2.27 +datarootdir= 2.28 +datadir= 2.29 +sysconfdir= 2.30 +sharedstatedir= 2.31 +localstatedir= 2.32 +runstatedir= 2.33 +includedir= 2.34 +infodir= 2.35 +localedir= 2.36 +mandir= 2.37 2.38 # custom variables 2.39 #foreach( $var in $vars ) 2.40 #if( $var.exec ) 2.41 ${var.varName}=`${var.value}` 2.42 #else 2.43 -${var.varName}=${var.value} 2.44 +${var.varName}="${var.value}" 2.45 #end 2.46 #end 2.47 2.48 # features 2.49 #foreach( $feature in $features ) 2.50 -#if( ${feature.isDefault()} ) 2.51 -${feature.getVarName()}=auto 2.52 +#if( ${feature.auto} ) 2.53 +${feature.varName}=auto 2.54 #end 2.55 #end 2.56 2.57 @@ -68,26 +72,28 @@ 2.58 --sysconfdir=DIR system configuration files [PREFIX/etc] 2.59 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] 2.60 --localstatedir=DIR modifiable single-machine data [PREFIX/var] 2.61 + --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run] 2.62 --libdir=DIR object code libraries [EPREFIX/lib] 2.63 --includedir=DIR C header files [PREFIX/include] 2.64 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] 2.65 --datadir=DIR read-only architecture-independent data [DATAROOTDIR] 2.66 --infodir=DIR info documentation [DATAROOTDIR/info] 2.67 --mandir=DIR man documentation [DATAROOTDIR/man] 2.68 + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] 2.69 2.70 #if( $options.size() > 0 ) 2.71 Options: 2.72 --debug add extra compile flags for debug builds 2.73 --release add extra compile flags for release builds 2.74 #foreach( $opt in $options ) 2.75 - --${opt.getArgument()}=${opt.getValuesString()} 2.76 + --${opt.argument}=${opt.valuesString} 2.77 #end 2.78 2.79 #end 2.80 #if( $features.size() > 0 ) 2.81 Optional Features: 2.82 #foreach( $feature in $features ) 2.83 -#if( $feature.default ) 2.84 +#if( $feature.auto ) 2.85 --disable-${feature.arg} 2.86 #else 2.87 --enable-${feature.arg} 2.88 @@ -106,28 +112,30 @@ 2.89 for ARG in "$@" 2.90 do 2.91 case "$ARG" in 2.92 - "--prefix="*) PREFIX=${D}{ARG#--prefix=} ;; 2.93 - "--exec-prefix="*) EPREFIX=${D}{ARG#--exec-prefix=} ;; 2.94 - "--bindir="*) BINDIR=${D}{ARG#----bindir=} ;; 2.95 - "--sbindir="*) SBINDIR=${D}{ARG#--sbindir=} ;; 2.96 - "--libdir="*) LIBDIR=${D}{ARG#--libdir=} ;; 2.97 - "--libexecdir="*) LIBEXECDIR=${D}{ARG#--libexecdir=} ;; 2.98 - "--datadir="*) DATADIR=${D}{ARG#--datadir=} ;; 2.99 - "--sysconfdir="*) SYSCONFDIR=${D}{ARG#--sysconfdir=} ;; 2.100 - "--sharedstatedir="*) SHAREDSTATEDIR=${D}{ARG#--sharedstatedir=} ;; 2.101 - "--localstatedir="*) LOCALSTATEDIR=${D}{ARG#--localstatedir=} ;; 2.102 - "--includedir="*) INCLUDEDIR=${D}{ARG#--includedir=} ;; 2.103 - "--infodir="*) INFODIR=${D}{ARG#--infodir=} ;; 2.104 - "--mandir"*) MANDIR=${D}{ARG#--mandir} ;; 2.105 + "--prefix="*) prefix=${D}{ARG#--prefix=} ;; 2.106 + "--exec-prefix="*) exec_prefix=${D}{ARG#--exec-prefix=} ;; 2.107 + "--bindir="*) bindir=${D}{ARG#----bindir=} ;; 2.108 + "--sbindir="*) sbindir=${D}{ARG#--sbindir=} ;; 2.109 + "--libdir="*) libdir=${D}{ARG#--libdir=} ;; 2.110 + "--libexecdir="*) libexecdir=${D}{ARG#--libexecdir=} ;; 2.111 + "--datarootdir="*) datarootdir=${D}{ARG#--datarootdir=} ;; 2.112 + "--datadir="*) datadir=${D}{ARG#--datadir=} ;; 2.113 + "--sysconfdir="*) sysconfdir=${D}{ARG#--sysconfdir=} ;; 2.114 + "--sharedstatedir="*) sharedstatedir=${D}{ARG#--sharedstatedir=} ;; 2.115 + "--localstatedir="*) localstatedir=${D}{ARG#--localstatedir=} ;; 2.116 + "--includedir="*) includedir=${D}{ARG#--includedir=} ;; 2.117 + "--infodir="*) infodir=${D}{ARG#--infodir=} ;; 2.118 + "--mandir"*) mandir=${D}{ARG#--mandir} ;; 2.119 + "--localedir"*) localedir=${D}{ARG#--localedir} ;; 2.120 "--help"*) printhelp; abort_configure ;; 2.121 "--debug") BUILD_TYPE="debug" ;; 2.122 "--release") BUILD_TYPE="release" ;; 2.123 #foreach( $opt in $options ) 2.124 - "--${opt.getArgument()}="*) ${opt.getVarName()}=${D}{ARG#--${opt.getArgument()}=} ;; 2.125 + "--${opt.argument}="*) ${opt.varName}=${D}{ARG#--${opt.argument}=} ;; 2.126 #end 2.127 #foreach( $feature in $features ) 2.128 - "--enable-${feature.arg}") ${feature.getVarName()}=on ;; 2.129 - "--disable-${feature.arg}") unset ${feature.getVarName()} ;; 2.130 + "--enable-${feature.arg}") ${feature.varName}=on ;; 2.131 + "--disable-${feature.arg}") unset ${feature.varName} ;; 2.132 #end 2.133 "-"*) echo "unknown option: $ARG"; abort_configure ;; 2.134 esac 2.135 @@ -135,19 +143,41 @@ 2.136 2.137 ## Begin unparsed content. ** 2.138 #[[ 2.139 -# set dir variables 2.140 -: ${EPREFIX:="$PREFIX"} 2.141 -: ${BINDIR:="$EPREFIX/bin"} 2.142 -: ${SBINDIR:="$EPREFIX/sbin"} 2.143 -: ${LIBDIR:="$EPREFIX/lib"} 2.144 -: ${LIBEXECDIR:="$EPREFIX/libexec"} 2.145 -: ${DATADIR:="$PREFIX/share"} 2.146 -: ${SYSCONFDIR:="$PREFIX/etc"} 2.147 -: ${SHAREDSTATEDIR:="$PREFIX/com"} 2.148 -: ${LOCALSTATEDIR:="$PREFIX/var"} 2.149 -: ${INCLUDEDIR:="$PREFIX/include"} 2.150 -: ${INFODIR:="$PREFIX/info"} 2.151 -: ${MANDIR:="$PREFIX/man"} 2.152 + 2.153 +# set defaults for dir variables 2.154 +: ${exec_prefix:="$prefix"} 2.155 +: ${bindir:='${exec_prefix}/bin'} 2.156 +: ${sbindir:='${exec_prefix}/sbin'} 2.157 +: ${libdir:='${exec_prefix}/lib'} 2.158 +: ${libexecdir:='${exec_prefix}/libexec'} 2.159 +: ${datarootdir:='${prefix}/share'} 2.160 +: ${datadir:='${datarootdir}'} 2.161 +: ${sysconfdir:='${prefix}/etc'} 2.162 +: ${sharedstatedir:='${prefix}/com'} 2.163 +: ${localstatedir:='${prefix}/var'} 2.164 +: ${runstatedir:='${localstatedir}/run'} 2.165 +: ${includedir:='${prefix}/include'} 2.166 +: ${infodir:='${datarootdir}/info'} 2.167 +: ${mandir:='${datarootdir}/man'} 2.168 +: ${localedir:='${datarootdir}/locale'} 2.169 + 2.170 +# check if a config.site exists and load it 2.171 +if [ -n "$CONFIG_SITE" ]; then 2.172 + # CONFIG_SITE may contain space separated file names 2.173 + for cs in $CONFIG_SITE; do 2.174 + printf "loading defaults from $cs... " 2.175 + . "$cs" 2.176 + echo ok 2.177 + done 2.178 +elif [ -f "$prefix/share/config.site" ]; then 2.179 + printf "loading site defaults... " 2.180 + . "$prefix/share/config.site" 2.181 + echo ok 2.182 +elif [ -f "$prefix/etc/config.site" ]; then 2.183 + printf "loading site defaults... " 2.184 + . "$prefix/etc/config.site" 2.185 + echo ok 2.186 +fi 2.187 2.188 # Test for availability of pkg-config 2.189 PKG_CONFIG=`command -v pkg-config` 2.190 @@ -203,25 +233,26 @@ 2.191 2.192 # generate vars.mk 2.193 cat > "$TEMP_DIR/vars.mk" << __EOF__ 2.194 -PREFIX=$PREFIX 2.195 -EPREFIX=$EPREFIX 2.196 -BINDIR=$BINDIR 2.197 -SBINDIR=$SBINDIR 2.198 -LIBDIR=$LIBDIR 2.199 -LIBEXECDIR=$LIBEXECDIR 2.200 -DATADIR=$DATADIR 2.201 -SYSCONFDIR=$SYSCONFDIR 2.202 -SHAREDSTATEDIR=$SHAREDSTATEDIR 2.203 -LOCALSTATEDIR=$LOCALSTATEDIR 2.204 -INCLUDEDIR=$INCLUDEDIR 2.205 -INFODIR=$INFODIR 2.206 -MANDIR=$MANDIR 2.207 +prefix="$prefix" 2.208 +exec_prefix="$exec_prefix" 2.209 +bindir="$bindir" 2.210 +sbindir="$sbindir" 2.211 +libdir="$libdir" 2.212 +libexecdir="$libexecdir" 2.213 +datarootdir="$datarootdir" 2.214 +datadir="$datadir" 2.215 +sysconfdir="$sysconfdir" 2.216 +sharedstatedir="$sharedstatedir" 2.217 +localstatedir="$localstatedir" 2.218 +runstatedir="$runstatedir" 2.219 +includedir="$includedir" 2.220 +infodir="$infodir" 2.221 +mandir="$mandir" 2.222 +localedir="$localedir" 2.223 #foreach( $var in $vars ) 2.224 -${var.varName}=$${var.varName} 2.225 +${var.varName}="${D}${var.varName}" 2.226 #end 2.227 __EOF__ 2.228 -sort -u -o "$TEMP_DIR/vars.mk" "$TEMP_DIR/vars.mk" 2.229 - 2.230 2.231 # toolchain detection utilities 2.232 . make/toolchain.sh 2.233 @@ -256,11 +287,11 @@ 2.234 } 2.235 2.236 #foreach( $dependency in $namedDependencies ) 2.237 -dependency_error_${dependency.name}() 2.238 +dependency_error_${dependency.id}() 2.239 { 2.240 printf "checking for ${dependency.name}... " 2.241 - #foreach( $sub in $dependency.getSubdependencies() ) 2.242 - # dependency $sub.getFullName() 2.243 + #foreach( $sub in $dependency.subdependencies ) 2.244 + # dependency $sub.fullName 2.245 while true 2.246 do 2.247 #if( $sub.platform ) 2.248 @@ -268,7 +299,7 @@ 2.249 break 2.250 fi 2.251 #end 2.252 - #foreach( $np in $sub.getNotList() ) 2.253 + #foreach( $np in $sub.notList ) 2.254 if isplatform "${np}"; then 2.255 break 2.256 fi 2.257 @@ -346,7 +377,7 @@ 2.258 break 2.259 fi 2.260 #end 2.261 - #foreach( $np in $dependency.getNotList() ) 2.262 + #foreach( $np in $dependency.notList ) 2.263 if isplatform "${np}"; then 2.264 break 2.265 fi 2.266 @@ -404,10 +435,10 @@ 2.267 2.268 # add general dependency flags to flags.mk 2.269 echo "# general flags" >> "$TEMP_DIR/flags.mk" 2.270 -if [ -n "${TEMP_CFLAGS}" ]; then 2.271 +if [ -n "${TEMP_CFLAGS}" -a -n "$lang_c" ]; then 2.272 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" 2.273 fi 2.274 -if [ -n "${TEMP_CXXFLAGS}" ]; then 2.275 +if [ -n "${TEMP_CXXFLAGS}" -a -n "$lang_cpp" ]; then 2.276 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" 2.277 fi 2.278 if [ -n "${TEMP_LDFLAGS}" ]; then 2.279 @@ -452,10 +483,10 @@ 2.280 #foreach( $target in $targets ) 2.281 echo >> "$TEMP_DIR/flags.mk" 2.282 #if ( $target.name ) 2.283 -# Target: $target.name 2.284 +echo "configuring target: $target.name" 2.285 echo "# flags for target $target.name" >> "$TEMP_DIR/flags.mk" 2.286 #else 2.287 -# Target 2.288 +echo "configuring global target" 2.289 echo "# flags for unnamed target" >> "$TEMP_DIR/flags.mk" 2.290 #end 2.291 TEMP_CFLAGS= 2.292 @@ -471,28 +502,29 @@ 2.293 2.294 # Features 2.295 #foreach( $feature in $target.features ) 2.296 -if [ -n "$${feature.getVarName()}" ]; then 2.297 +if [ -n "${D}${feature.varName}" ]; then 2.298 #foreach( $dependency in $feature.dependencies ) 2.299 # check dependency 2.300 if dependency_error_$dependency ; then 2.301 # "auto" features can fail and are just disabled in this case 2.302 - if [ "$${feature.getVarName()}" = "auto" ]; then 2.303 - DISABLE_${feature.getVarName()}=1 2.304 + if [ "${D}${feature.varName}" = "auto" ]; then 2.305 + DISABLE_${feature.varName}=1 2.306 else 2.307 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} " 2.308 ERROR=1 2.309 fi 2.310 fi 2.311 #end 2.312 - if [ -n "$DISABLE_${feature.getVarName()}" ]; then 2.313 - unset ${feature.getVarName()} 2.314 + if [ -n "$DISABLE_${feature.varName}" ]; then 2.315 + unset ${feature.varName} 2.316 fi 2.317 fi 2.318 #end 2.319 2.320 #foreach( $opt in $target.options ) 2.321 # Option: --${opt.argument} 2.322 -if [ -z ${D}${opt.getVarName()} ]; then 2.323 +if [ -z "${D}${opt.varName}" ]; then 2.324 + echo "auto-detecting option '${opt.argument}'" 2.325 SAVED_ERROR="$ERROR" 2.326 SAVED_DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED" 2.327 ERROR=1 2.328 @@ -515,41 +547,52 @@ 2.329 done 2.330 if [ $ERROR -ne 0 ]; then 2.331 SAVED_ERROR=1 2.332 + SAVED_DEPENDENCIES_FAILED="option '${opt.argument}' $SAVED_DEPENDENCIES_FAILED" 2.333 fi 2.334 ERROR="$SAVED_ERROR" 2.335 DEPENDENCIES_FAILED="$SAVED_DEPENDENCIES_FAILED" 2.336 else 2.337 + echo "checking option ${opt.argument} = ${D}${opt.varName}" 2.338 if false; then 2.339 false 2.340 #foreach( $optval in $opt.values ) 2.341 - elif [ "${D}${opt.getVarName()}" = "${optval.value}" ]; then 2.342 - echo " ${opt.argument}: ${D}${opt.getVarName()}" >> $TEMP_DIR/options 2.343 + elif [ "${D}${opt.varName}" = "${optval.value}" ]; then 2.344 + echo " ${opt.argument}: ${D}${opt.varName}" >> $TEMP_DIR/options 2.345 if $optval.func ; then 2.346 : 2.347 else 2.348 ERROR=1 2.349 + DEPENDENCIES_FAILED="option '${opt.argument}' $DEPENDENCIES_FAILED" 2.350 fi 2.351 #end 2.352 fi 2.353 fi 2.354 #end 2.355 2.356 -if [ -n "${TEMP_CFLAGS}" ]; then 2.357 - echo "${target.getCFlags()} += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" 2.358 +if [ -n "${TEMP_CFLAGS}" -a -n "$lang_c" ]; then 2.359 + echo "${target.cFlags} += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" 2.360 fi 2.361 -if [ -n "${TEMP_CXXFLAGS}" ]; then 2.362 - echo "${target.getCXXFlags()} += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" 2.363 +if [ -n "${TEMP_CXXFLAGS}" -a -n "$lang_cpp" ]; then 2.364 + echo "${target.cxxFlags} += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" 2.365 fi 2.366 if [ "$BUILD_TYPE" = "debug" ]; then 2.367 - echo '${target.getCFlags()} += ${DEBUG_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" 2.368 - echo '${target.getCXXFlags()} += ${DEBUG_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" 2.369 + if [ -n "$lang_c" ]; then 2.370 + echo '${target.cFlags} += ${DEBUG_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" 2.371 + fi 2.372 + if [ -n "$lang_cpp" ]; then 2.373 + echo '${target.cxxFlags} += ${DEBUG_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" 2.374 + fi 2.375 fi 2.376 if [ "$BUILD_TYPE" = "release" ]; then 2.377 - echo '${target.getCFlags()} += ${RELEASE_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" 2.378 - echo '${target.getCXXFlags()} += ${RELEASE_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" 2.379 + if [ -n "$lang_c" ]; then 2.380 + echo '${target.cFlags} += ${RELEASE_CC_FLAGS}' >> "$TEMP_DIR/flags.mk" 2.381 + fi 2.382 + if [ -n "$lang_cpp" ]; then 2.383 + echo '${target.cxxFlags} += ${RELEASE_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk" 2.384 + fi 2.385 fi 2.386 if [ -n "${TEMP_LDFLAGS}" ]; then 2.387 - echo "${target.getLDFlags()} += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" 2.388 + echo "${target.ldFlags} += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" 2.389 fi 2.390 2.391 #end 2.392 @@ -565,8 +608,8 @@ 2.393 echo "configure finished" 2.394 echo 2.395 echo "Build Config:" 2.396 -echo " PREFIX: $PREFIX" 2.397 -echo " TOOLCHAIN: $TOOLCHAIN_NAME" 2.398 +echo " PREFIX: $prefix" 2.399 +echo " TOOLCHAIN: $TOOLCHAIN_NAME" 2.400 #if ( $options.size() > 0 ) 2.401 echo "Options:" 2.402 cat "$TEMP_DIR/options" 2.403 @@ -574,7 +617,7 @@ 2.404 #if ( $features.size() > 0 ) 2.405 echo "Features:" 2.406 #foreach( $feature in $features ) 2.407 -if [ -n "$${feature.getVarName()}" ]; then 2.408 +if [ -n "${D}${feature.varName}" ]; then 2.409 echo " $feature.name: on" 2.410 else 2.411 echo " $feature.name: off"
3.1 --- a/src/Makefile Sun Oct 01 14:25:26 2023 +0200 3.2 +++ b/src/Makefile Tue Oct 10 20:34:51 2023 +0200 3.3 @@ -32,8 +32,8 @@ 3.4 echo "Build successful." 3.5 3.6 install: $(BUILD_DIR)/cline FORCE 3.7 - cd .. && cp "build/cline" "$(BINDIR)/cline" 3.8 - echo "Installed to: $(BINDIR)/cline" 3.9 + cd .. && cp "build/cline" "$(bindir)/cline" 3.10 + echo "Installed to: $(bindir)/cline" 3.11 3.12 $(BUILD_DIR)/cline: $(OBJ) 3.13 echo "Linking executable..."