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