make/configure.vm

changeset 385
a1f4cb076d2f
parent 267
4ded424f4a5f
child 511
a5a142fea2ae
--- a/make/configure.vm	Tue Aug 13 22:14:32 2019 +0200
+++ b/make/configure.vm	Sat Sep 24 16:26:10 2022 +0200
@@ -119,46 +119,30 @@
 #set( $D = '$' )
 for ARG in $@
 do
-    if [[ $ARG == --prefix=* ]]; then
-        PREFIX=${D}{ARG:9}
-    elif [[ $ARG = --exec-prefix=* ]]; then
-    	EPREFIX=${D}{ARG:14}
-    elif [[ $ARG = --bindir=* ]]; then
-    	BINDIR=${D}{ARG:9}
-    elif [[ $ARG = --sbindir=* ]]; then
-    	SBINDIR=${D}{ARG:10}
-    elif [[ $ARG = --libdir=* ]]; then
-    	LIBDIR=${D}{ARG:9}
-    elif [[ $ARG = --libexecdir=* ]]; then
-    	LIBEXECDIR=${D}{ARG:13}
-    elif [[ $ARG = --datadir=* ]]; then
-    	DATADIR=${D}{ARG:10}
-    elif [[ $ARG = --sysconfdir=* ]]; then
-    	SYSCONFDIR=${D}{ARG:13}
-    elif [[ $ARG = --sharedstatedir=* ]]; then
-    	SHAREDSTATEDIR=${D}{ARG:17}
-    elif [[ $ARG = --localstatedir=* ]]; then
-    	LOCALSTATEDIR=${D}{ARG:16}
-    elif [[ $ARG = --includedir=* ]]; then
-    	INCLUDEDIR=${D}{ARG:12}
-    elif [[ $ARG = --infodir=* ]]; then
-    	INFODIR=${D}{ARG:10}
-    elif [[ $ARG = --mandir=* ]]; then
-    	MANDIR=${D}{ARG:9}
-    elif [ $ARG = "--help" ]; then
-		printhelp
-        exit 0	
-    #foreach( $opt in $options )
-    elif [[ $ARG == --${opt.getArgument()}=* ]]; then
-    	${opt.getVarName()}=${opt.getArgValue()}
+    case "$ARG" in
+		"--prefix="*)         PREFIX=${D}{ARG#--prefix=} ;;
+		"--exec-prefix="*)    EPREFIX=${D}{ARG#--exec-prefix=} ;;
+		"--bindir="*)         BINDIR=${D}{ARG#----bindir=} ;;
+		"--sbindir="*)        SBINDIR=${D}{ARG#--sbindir=} ;;
+		"--libdir="*)         LIBDIR=${D}{ARG#--libdir=} ;;
+		"--libexecdir="*)     LIBEXECDIR=${D}{ARG#--libexecdir=} ;;
+		"--datadir="*)        DATADIR=${D}{ARG#--datadir=} ;;
+		"--sysconfdir="*)     SYSCONFDIR=${D}{ARG#--sysconfdir=} ;;
+		"--sharedstatedir="*) SHAREDSTATEDIR=${D}{ARG#--sharedstatedir=} ;;
+		"--localstatedir="*)  LOCALSTATEDIR=${D}{ARG#--localstatedir=} ;;
+		"--includedir="*)     INCLUDEDIR=${D}{ARG#--includedir=} ;;
+		"--infodir="*)        INFODIR=${D}{ARG#--infodir=} ;;
+		"--mandir"*)          MANDIR=${D}{ARG#--mandir} ;;
+		"--help"*) printhelp; exit 1 ;;
+	#foreach( $opt in $options )
+    	"--${opt.getArgument()}="*) ${opt.getVarName()}=${D}{ARG#--${opt.getArgument()}=} ;;
     #end
-    #foreach( $feature in $features )
-    elif [[ $ARG == --enable-${feature.arg} ]]; then
-    	${feature.getVarName()}=on
-    elif [[ $ARG == --disable-${feature.arg} ]]; then
-    	unset ${feature.getVarName()}
-    #end
-    fi
+	#foreach( $feature in $features )
+		"--enable-${feature.arg}") ${feature.getVarName()}=on ;;
+		"--disable-${feature.arg}") unset ${feature.getVarName()} ;;
+	#end
+		"-"*) echo "unknown option: $ARG"; exit 1 ;;
+	esac
 done
 
 # set dir variables
@@ -534,6 +518,23 @@
 fi
 #end
 
+# Features
+#foreach( $feature in $target.features )
+if [ ! -z "$${feature.getVarName()}" ]; then
+#foreach( $dependency in $feature.dependencies )
+	# check dependency
+	dependency_$dependency
+	if [ $? -ne 0 ]; then
+		# "auto" features can fail and are just disabled in this case
+		if [ $${feature.getVarName()} != "auto" ]; then
+			DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} "
+			ERROR=1
+		fi
+	fi
+#end
+fi
+#end
+
 #foreach( $opt in $target.options )
 # Option: --${opt.argument}
 if [ -z ${D}${opt.getVarName()} ]; then
@@ -593,7 +594,7 @@
 if [ $ERROR -ne 0 ]; then
 	echo
 	echo "Error: Unresolved dependencies"
-	echo $DEPENCIES_FAILED
+	echo $DEPENDENCIES_FAILED
 	rm -Rf $TEMP_DIR
 	exit 1
 fi

mercurial