]> git.ipfire.org Git - people/ms/ipfire-3.x.git/blobdiff - kernel/scripts/configure
kernel: Make configuration management more slink and usable.
[people/ms/ipfire-3.x.git] / kernel / scripts / configure
index c691ce03436e4deb4818b55fe631e47a174f21ac..c12f8b1b749cecee900f1fd8b585b4da1efa9171 100755 (executable)
@@ -14,10 +14,10 @@ CONFIGS="x86_64:default"
 CONFIGS="${CONFIGS} i686:legacy i686:default"
 
 # armv7hl
-CONFIGS="${CONFIGS} armv7hl:default"
+CONFIGS="${CONFIGS} armv7hl:lpae armv7hl:default"
 
 # armv5tel
-CONFIGS="${CONFIGS} armv5tel:versatile armv5tel:kirkwood"
+CONFIGS="${CONFIGS} armv5tel:default"
 
 function merge_config() {
        local arch=${1}
@@ -67,15 +67,16 @@ function merge_config() {
                        ;;
 
                # ARM
-               armv5tel:versatile)
-                       configs="${configs} config-arm-generic"
-                       ;;
-               armv5tel:kirkwood)
-                       configs="${configs} config-arm-generic config-armv5tel-kirkwood"
+               armv5tel:default)
+                       configs="${configs} config-arm-generic config-armv5tel-default"
                        ;;
                armv7hl:default)
                        configs="${configs} config-arm-generic config-armv7hl-default"
                        ;;
+               armv7hl:lpae)
+                       configs="${configs} config-arm-generic config-armv7hl-default"
+                       configs="${configs} config-armv7hl-lpae"
+                       ;;
                *)
                        echo >&2 "ERROR: Invalid parameters given: $@"
                        return 1
@@ -175,6 +176,7 @@ function diff_configs() {
        local extra_configs="$@"
 
        declare -A arch_configs
+       declare -A subarch_configs
 
        tmpdir=$(mktemp -d)
 
@@ -186,14 +188,12 @@ function diff_configs() {
 
                merge_config ${arch} ${flavour} ${filename} ${extra_configs}
 
-               # Do not include i686 legacy.
+               # Do not include leaf configuration.
                case "${config}" in
-                       i686:legacy)
+                       armv7hl:lpae)
                                continue
                                ;;
-                       armv5tel:versatile)
-                               ;;
-                       arm*)
+                       i686:legacy)
                                continue
                                ;;
                esac
@@ -209,6 +209,8 @@ function diff_configs() {
                                echo >&2 "ERROR: Invalid architecture: ${arch}"
                                ;;
                esac
+
+               subarch_configs[${arch}]="${subarch_configs[${arch}]} ${filename}"
        done
 
        common_configs=""
@@ -222,11 +224,10 @@ function diff_configs() {
 
        ${SCRIPTS_DIR}/configcommon.py ${common_configs} > ${tmpdir}/config-generic
 
-       ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-generic ${tmpdir}/config-arm-common \
-               > ${tmpdir}/config-arm-generic
-
-       ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-generic ${tmpdir}/config-x86-common \
-               > ${tmpdir}/config-x86-generic
+       for arch in x86 arm; do
+               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-generic \
+                       ${tmpdir}/config-${arch}-common > ${tmpdir}/config-${arch}-generic
+       done
 
        for config in ${CONFIGS}; do
                arch=${config%:*}
@@ -243,15 +244,11 @@ function diff_configs() {
                filename=${tmpdir}/config-${arch}-${flavour}
 
                case "${config}" in
-                       i686:legacy)
+                       armv7hl:lpae|i686:legacy)
                                # Legacy depends directly on the default configuration.
-                               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-i686-default \
+                               ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-${arch}-default \
                                        ${filename} > ${filename}.tmp
                                ;;
-                       armv5tel:versatile)
-                               rm -f ${filename}
-                               continue
-                               ;;
                        *)
                                ${SCRIPTS_DIR}/configdiff.py ${tmpdir}/config-${suparch}-common \
                                        ${filename} > ${filename}.tmp