diff mbox

merge_config.sh: Add the ability to perform make with an ARCH

Message ID 1437684681-29452-1-git-send-email-dmurphy@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dan Murphy July 23, 2015, 8:51 p.m. UTC
The script does not allow building for different architectures.
It may assume that the developer has set the ARCH as a global
variable.

Add a switch argument to pass in the desired architecture.
Then verify that that architecture is supported in the arch
directory.

If not exit if it is supported then set it.

Signed-off-by: Dan Murphy <dmurphy@ti.com>
---
 scripts/kconfig/merge_config.sh | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

Comments

Masahiro Yamada July 24, 2015, 6:23 a.m. UTC | #1
Hi Dan,


2015-07-24 5:51 GMT+09:00 Dan Murphy <dmurphy@ti.com>:
> The script does not allow building for different architectures.
> It may assume that the developer has set the ARCH as a global
> variable.
>
> Add a switch argument to pass in the desired architecture.
> Then verify that that architecture is supported in the arch
> directory.
>
> If not exit if it is supported then set it.
>
> Signed-off-by: Dan Murphy <dmurphy@ti.com>
> ---
>  scripts/kconfig/merge_config.sh | 29 +++++++++++++++++++++++++++--
>  1 file changed, 27 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/kconfig/merge_config.sh b/scripts/kconfig/merge_config.sh
> index ec8e203..bdbff4b 100755
> --- a/scripts/kconfig/merge_config.sh
> +++ b/scripts/kconfig/merge_config.sh
> @@ -19,7 +19,16 @@
>  #  but WITHOUT ANY WARRANTY; without even the implied warranty of
>  #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>  #  See the GNU General Public License for more details.
> -
> +verify_arch() {
> +       cd arch
> +       for d in * ; do
> +               if [ "$d" = "$_TEST_ARCH" ]; then
> +                       BUILD_ARCH="ARCH="$d
> +                       break
> +               fi
> +       done
> +       cd ..
> +}
>  clean_up() {
>         rm -f $TMP_FILE
>         exit
> @@ -33,6 +42,7 @@ usage() {
>         echo "  -n    use allnoconfig instead of alldefconfig"
>         echo "  -r    list redundant entries when merging fragments"
>         echo "  -O    dir to put generated output files"
> +       echo "  -A    architecture to support for make"
>  }
>
>  RUNMAKE=true
> @@ -71,6 +81,21 @@ while true; do
>                 shift 2
>                 continue
>                 ;;
> +       "-A")
> +               if [ "$2" != "" ]; then
> +                       _TEST_ARCH=$2
> +                       verify_arch
> +                       if [ "$BUILD_ARCH" = "" ]; then
> +                               echo "ARCH $_TEST_ARCH is not valid" 1>&2
> +                               exit 1
> +                       fi
> +               else
> +                       echo "ARCH $_TEST_ARCH is not valid" 1>&2
> +                       exit 1
> +               fi
> +               shift 2
> +               continue
> +               ;;
>         *)
>                 break
>                 ;;
> @@ -139,7 +164,7 @@ fi
>  # Use the merged file as the starting point for:
>  # alldefconfig: Fills in any missing symbols with Kconfig default
>  # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
> -make KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET
> +make $BUILD_ARCH KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET
>


Let me clarify what you want to achieve by this patch.


You want to invoke merge_config.sh directly and to do

scripts/kconfig/merge_config.sh -A <target_arch>  ...

as a shorthand for

ARCH=<target_arch> scripts/kconfig/merge_config.sh  ...


Correct?
Dan Murphy July 24, 2015, 1:41 p.m. UTC | #2
Yamada

On 07/24/2015 01:23 AM, Masahiro Yamada wrote:
> Hi Dan,
>
>
> 2015-07-24 5:51 GMT+09:00 Dan Murphy <dmurphy@ti.com>:
>> The script does not allow building for different architectures.
>> It may assume that the developer has set the ARCH as a global
>> variable.
>>
>> Add a switch argument to pass in the desired architecture.
>> Then verify that that architecture is supported in the arch
>> directory.
>>
>> If not exit if it is supported then set it.
>>
>> Signed-off-by: Dan Murphy <dmurphy@ti.com>
>> ---
>>  scripts/kconfig/merge_config.sh | 29 +++++++++++++++++++++++++++--
>>  1 file changed, 27 insertions(+), 2 deletions(-)
>>
>> diff --git a/scripts/kconfig/merge_config.sh b/scripts/kconfig/merge_config.sh
>> index ec8e203..bdbff4b 100755
>> --- a/scripts/kconfig/merge_config.sh
>> +++ b/scripts/kconfig/merge_config.sh
>> @@ -19,7 +19,16 @@
>>  #  but WITHOUT ANY WARRANTY; without even the implied warranty of
>>  #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>>  #  See the GNU General Public License for more details.
>> -
>> +verify_arch() {
>> +       cd arch
>> +       for d in * ; do
>> +               if [ "$d" = "$_TEST_ARCH" ]; then
>> +                       BUILD_ARCH="ARCH="$d
>> +                       break
>> +               fi
>> +       done
>> +       cd ..
>> +}
>>  clean_up() {
>>         rm -f $TMP_FILE
>>         exit
>> @@ -33,6 +42,7 @@ usage() {
>>         echo "  -n    use allnoconfig instead of alldefconfig"
>>         echo "  -r    list redundant entries when merging fragments"
>>         echo "  -O    dir to put generated output files"
>> +       echo "  -A    architecture to support for make"
>>  }
>>
>>  RUNMAKE=true
>> @@ -71,6 +81,21 @@ while true; do
>>                 shift 2
>>                 continue
>>                 ;;
>> +       "-A")
>> +               if [ "$2" != "" ]; then
>> +                       _TEST_ARCH=$2
>> +                       verify_arch
>> +                       if [ "$BUILD_ARCH" = "" ]; then
>> +                               echo "ARCH $_TEST_ARCH is not valid" 1>&2
>> +                               exit 1
>> +                       fi
>> +               else
>> +                       echo "ARCH $_TEST_ARCH is not valid" 1>&2
>> +                       exit 1
>> +               fi
>> +               shift 2
>> +               continue
>> +               ;;
>>         *)
>>                 break
>>                 ;;
>> @@ -139,7 +164,7 @@ fi
>>  # Use the merged file as the starting point for:
>>  # alldefconfig: Fills in any missing symbols with Kconfig default
>>  # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
>> -make KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET
>> +make $BUILD_ARCH KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET
>>
>
> Let me clarify what you want to achieve by this patch.
>
>
> You want to invoke merge_config.sh directly and to do
>
> scripts/kconfig/merge_config.sh -A <target_arch>  ...
>
> as a shorthand for
>
> ARCH=<target_arch> scripts/kconfig/merge_config.sh  ...
>
>
> Correct?
>

Yes that is correct.  Just another way of achieving the same result.

>
>
>
>
diff mbox

Patch

diff --git a/scripts/kconfig/merge_config.sh b/scripts/kconfig/merge_config.sh
index ec8e203..bdbff4b 100755
--- a/scripts/kconfig/merge_config.sh
+++ b/scripts/kconfig/merge_config.sh
@@ -19,7 +19,16 @@ 
 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #  See the GNU General Public License for more details.
-
+verify_arch() {
+	cd arch
+	for d in * ; do
+		if [ "$d" = "$_TEST_ARCH" ]; then
+			BUILD_ARCH="ARCH="$d
+			break
+		fi
+	done
+	cd ..
+}
 clean_up() {
 	rm -f $TMP_FILE
 	exit
@@ -33,6 +42,7 @@  usage() {
 	echo "  -n    use allnoconfig instead of alldefconfig"
 	echo "  -r    list redundant entries when merging fragments"
 	echo "  -O    dir to put generated output files"
+	echo "  -A    architecture to support for make"
 }
 
 RUNMAKE=true
@@ -71,6 +81,21 @@  while true; do
 		shift 2
 		continue
 		;;
+	"-A")
+		if [ "$2" != "" ]; then
+			_TEST_ARCH=$2
+			verify_arch
+			if [ "$BUILD_ARCH" = "" ]; then
+				echo "ARCH $_TEST_ARCH is not valid" 1>&2
+				exit 1
+			fi
+		else
+			echo "ARCH $_TEST_ARCH is not valid" 1>&2
+			exit 1
+		fi
+		shift 2
+		continue
+		;;
 	*)
 		break
 		;;
@@ -139,7 +164,7 @@  fi
 # Use the merged file as the starting point for:
 # alldefconfig: Fills in any missing symbols with Kconfig default
 # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
-make KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET
+make $BUILD_ARCH KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET
 
 
 # Check all specified config values took (might have missed-dependency issues)