diff --git a/.travis.yml b/.travis.yml index 4fa9f0b95a2ae1a0f2f4acdde976023a1e9bcaa2..a82a62975a215038e5cb4b7d34236a6321a8bb7a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,14 @@ language: c cache: apt env: - - NPROC_MAX=8 + - NPROC_MAX=8 BUILDTEST_MCU_GROUP=avr8 + - NPROC_MAX=8 BUILDTEST_MCU_GROUP=msp430 + - NPROC_MAX=8 BUILDTEST_MCU_GROUP=x86 + - NPROC_MAX=8 BUILDTEST_MCU_GROUP=arm7 + - NPROC_MAX=8 BUILDTEST_MCU_GROUP=cortex_m0 + - NPROC_MAX=8 BUILDTEST_MCU_GROUP=cortex_m3_1 + - NPROC_MAX=8 BUILDTEST_MCU_GROUP=cortex_m3_2 + - NPROC_MAX=8 BUILDTEST_MCU_GROUP=cortex_m4 before_install: - sudo apt-get install emdebian-archive-keyring @@ -18,21 +25,7 @@ before_install: install: - > - sudo apt-get install \ - build-essential \ - gcc-multilib \ - gcc-arm-none-eabi \ - gcc-msp430 \ - pcregrep \ - libpcre3 \ - qemu-system-x86 \ - python3 \ - g++-multilib \ - gcc-avr \ - binutils-avr \ - avr-libc \ - cppcheck \ - doxygen + sudo apt-get install $(./dist/tools/travis-scripts/get-pkg-list.py) - git config --global user.email "travis@example.com" - git config --global user.name "Travis CI" @@ -41,33 +34,7 @@ install: - git log -1 --pretty=format:%H riot/master script: - - make -s -C ./examples/default info-concurrency - - git rebase riot/master || git rebase --abort - - - ./dist/tools/whitespacecheck/check.sh master || exit - - - ./dist/tools/licenses/check.sh master --diff-filter=MR --error-exitcode=0 || exit - - ./dist/tools/licenses/check.sh master --diff-filter=AC || exit - - - ./dist/tools/doccheck/check.sh master || exit - - - ./dist/tools/externc/check.sh master || exit - -# TODO: -# Remove all but `master` parameters to cppcheck (and remove second -# invocation) once all warnings of cppcheck have been taken care of -# in master. - - ./dist/tools/cppcheck/check.sh master --diff-filter=MR --error-exitcode=0 || exit - - ./dist/tools/cppcheck/check.sh master --diff-filter=AC || exit - - - make -C ./tests/unittests all test BOARD=native || exit -# TODO: -# Reenable once https://github.com/RIOT-OS/RIOT/issues/2300 is -# resolved: -# - make -C ./tests/unittests all test BOARD=qemu-i386 || exit - - - ./dist/tools/compile_test/compile_test.py - - ./dist/tools/pr_check/pr_check.sh riot/master + - ./dist/tools/travis-scripts/build_and_test.sh notifications: email: false diff --git a/Makefile.buildtests b/Makefile.buildtests index 4781c2c691255d3b619f71d7106e4cd7f9eeab55..1d669a271a527a870c1636c185fd5b4d0e969426 100644 --- a/Makefile.buildtests +++ b/Makefile.buildtests @@ -216,11 +216,14 @@ ifneq (, $(filter info-boards-supported info-boards-features-missing info-build, define board_missing_features FEATURES_PROVIDED := $(FEATURES_PROVIDED_BAK) -include $${RIOTBOARD}/${1}/Makefile.features + ifneq ($(BUILDTEST_MCU_GROUP), $$(FEATURES_MCU_GROUP)) + BOARDS_FEATURES_MISSING += "${1} $${BUILDTEST_MCU_GROUP}" + BOARDS_WITH_MISSING_FEATURES += ${1} + endif FEATURES_MISSING := $$(filter-out $$(FEATURES_PROVIDED), $$(FEATURES_REQUIRED)) ifneq (, $${FEATURES_MISSING}) BOARDS_FEATURES_MISSING += "${1} $${FEATURES_MISSING}" - ifneq (, $$(filter-out $$(FEATURES_OPTIONAL), $$(FEATURES_MISSING))) BOARDS_WITH_MISSING_FEATURES += ${1} endif diff --git a/boards/airfy-beacon/Makefile.features b/boards/airfy-beacon/Makefile.features index 498e6d7eeb2084810b918081ab08b782f64fdc98..f7dc503f5c86b409e0db7616cefd740ef3c182fa 100644 --- a/boards/airfy-beacon/Makefile.features +++ b/boards/airfy-beacon/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_random periph_rtt periph_cpuid +FEATURES_MCU_GROUP = cortex_m0 diff --git a/boards/arduino-due/Makefile.features b/boards/arduino-due/Makefile.features index 1cae147202cd7ce6f53b541b94cfb0be24adcabc..0f13ae3cacdade6243a3576ecd927e812b0d6e00 100644 --- a/boards/arduino-due/Makefile.features +++ b/boards/arduino-due/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_spi periph_random +FEATURES_MCU_GROUP = cortex_m3_1 diff --git a/boards/arduino-mega2560/Makefile.features b/boards/arduino-mega2560/Makefile.features index 285b07a6c6b28cc77d476d5b1e4a2594f5627645..675243084d23e384927a15248e183d2266e2ed59 100644 --- a/boards/arduino-mega2560/Makefile.features +++ b/boards/arduino-mega2560/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += periph_uart +FEATURES_MCU_GROUP = avr8 diff --git a/boards/avsextrem/Makefile.features b/boards/avsextrem/Makefile.features index a62395a35018fc9241b74e2f05075df4a1709846..b0d2b6d3aab01dd077cf0e458a87076ee293b052 100644 --- a/boards/avsextrem/Makefile.features +++ b/boards/avsextrem/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver periph_rtc +FEATURES_MCU_GROUP = arm7 diff --git a/boards/cc2538dk/Makefile.features b/boards/cc2538dk/Makefile.features index 8c7ec59b6845975515484b57ca5fea2d10bd7b7d..62702bae3ff0e6f037692b9655736c04c4a9d036 100644 --- a/boards/cc2538dk/Makefile.features +++ b/boards/cc2538dk/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_random periph_cpuid +FEATURES_MCU_GROUP = cortex_m3_1 diff --git a/boards/chronos/Makefile.features b/boards/chronos/Makefile.features index a62395a35018fc9241b74e2f05075df4a1709846..ca6ca1295adfc448e7b54528bd93d7392f554ec8 100644 --- a/boards/chronos/Makefile.features +++ b/boards/chronos/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver periph_rtc +FEATURES_MCU_GROUP = msp430 diff --git a/boards/f4vi1/Makefile.features b/boards/f4vi1/Makefile.features index 4e85a0c0fa90de1512df91b054386e7eeadb091e..ad65d4af319d3d9b83a4e388a3701dbfe1d542c6 100644 --- a/boards/f4vi1/Makefile.features +++ b/boards/f4vi1/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart +FEATURES_MCU_GROUP = cortex_m4 diff --git a/boards/fox/Makefile.features b/boards/fox/Makefile.features index 1fd4646dd7985d5c6018d313e739bde4158e2d48..dde11483cfeee9ca054f2e8c39c1176ae058a136 100644 --- a/boards/fox/Makefile.features +++ b/boards/fox/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver periph_gpio periph_uart periph_spi periph_i2c periph_rtt periph_cpuid cpp +FEATURES_MCU_GROUP = cortex_m3_1 diff --git a/boards/iot-lab_M3/Makefile.features b/boards/iot-lab_M3/Makefile.features index 1fd4646dd7985d5c6018d313e739bde4158e2d48..dde11483cfeee9ca054f2e8c39c1176ae058a136 100644 --- a/boards/iot-lab_M3/Makefile.features +++ b/boards/iot-lab_M3/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver periph_gpio periph_uart periph_spi periph_i2c periph_rtt periph_cpuid cpp +FEATURES_MCU_GROUP = cortex_m3_1 diff --git a/boards/mbed_lpc1768/Makefile.features b/boards/mbed_lpc1768/Makefile.features index 4e85a0c0fa90de1512df91b054386e7eeadb091e..a94364238f63f0e5701f0b099f015e0416c7f3f9 100644 --- a/boards/mbed_lpc1768/Makefile.features +++ b/boards/mbed_lpc1768/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart +FEATURES_MCU_GROUP = cortex_m3_1 diff --git a/boards/msb-430/Makefile.features b/boards/msb-430/Makefile.features new file mode 100644 index 0000000000000000000000000000000000000000..3b961e07b1401452571d4cc5190012de1f6af9af --- /dev/null +++ b/boards/msb-430/Makefile.features @@ -0,0 +1 @@ +FEATURES_MCU_GROUP = msp430 diff --git a/boards/msb-430h/Makefile.features b/boards/msb-430h/Makefile.features index 3f4b26f74272d2d70a1e9d620e63eee14d91fb62..404ff76b5c05ea1ea824c95d7ae1cdd1fd60a5cc 100644 --- a/boards/msb-430h/Makefile.features +++ b/boards/msb-430h/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver config +FEATURES_MCU_GROUP = msp430 diff --git a/boards/msba2/Makefile.features b/boards/msba2/Makefile.features index f853e7d3de5005ff380768f46475d2636a5d9f07..3c838174e456502faefca1ee7254281a54f36769 100644 --- a/boards/msba2/Makefile.features +++ b/boards/msba2/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver periph_pwm periph_rtc cpp config +FEATURES_MCU_GROUP = arm7 diff --git a/boards/msbiot/Makefile.features b/boards/msbiot/Makefile.features index 9c23182ee1b14ef738a7a30fe128bea4c9f7ec29..1826fdc268184446f27c793e275fa951c8e40c26 100644 --- a/boards/msbiot/Makefile.features +++ b/boards/msbiot/Makefile.features @@ -1,3 +1,4 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_spi periph_i2c periph_pwm FEATURES_PROVIDED += transceiver +FEATURES_MCU_GROUP = cortex_m4 diff --git a/boards/native/Makefile.features b/boards/native/Makefile.features index 4ad14738b855c91095eaa3ee6d7d584a87556480..ef4f15ffd5b86bf54265b36dd638afb0d04332d9 100644 --- a/boards/native/Makefile.features +++ b/boards/native/Makefile.features @@ -1,3 +1,4 @@ FEATURES_PROVIDED += transceiver periph_cpuid config cpp FEATURES_PROVIDED += periph_random FEATURES_PROVIDED += periph_rtc +FEATURES_MCU_GROUP = x86 diff --git a/boards/nucleo-f334/Makefile.features b/boards/nucleo-f334/Makefile.features index 0e8316f9258085f6f8400c49645fe7d90eff417f..2aa1179ca3c4e1e65fb3a685e03b9ae6a8059c7f 100644 --- a/boards/nucleo-f334/Makefile.features +++ b/boards/nucleo-f334/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += periph_uart FEATURES_PROVIDED += cpp +FEATURES_MCU_GROUP = cortex_m4 diff --git a/boards/nucleo-l1/Makefile.features b/boards/nucleo-l1/Makefile.features index 67643f6de21596d0468afc0a190df0cbddcb6717..9ede20035642ff8bc9952087ed5b7ef8e6e70b3e 100644 --- a/boards/nucleo-l1/Makefile.features +++ b/boards/nucleo-l1/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += periph_gpio periph_uart periph_spi periph_i2c periph_cpuid FEATURES_PROVIDED += cpp +FEATURES_MCU_GROUP = cortex_m3_2 diff --git a/boards/openmote/Makefile.features b/boards/openmote/Makefile.features index 8c7ec59b6845975515484b57ca5fea2d10bd7b7d..6d5613490482bdaf48138bf3c1d2dc680d9fd18d 100644 --- a/boards/openmote/Makefile.features +++ b/boards/openmote/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_random periph_cpuid +FEATURES_MCU_GROUP = cortex_m3_2 diff --git a/boards/pca10000/Makefile.features b/boards/pca10000/Makefile.features index 498e6d7eeb2084810b918081ab08b782f64fdc98..f7dc503f5c86b409e0db7616cefd740ef3c182fa 100644 --- a/boards/pca10000/Makefile.features +++ b/boards/pca10000/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_random periph_rtt periph_cpuid +FEATURES_MCU_GROUP = cortex_m0 diff --git a/boards/pca10005/Makefile.features b/boards/pca10005/Makefile.features index 498e6d7eeb2084810b918081ab08b782f64fdc98..f7dc503f5c86b409e0db7616cefd740ef3c182fa 100644 --- a/boards/pca10005/Makefile.features +++ b/boards/pca10005/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_random periph_rtt periph_cpuid +FEATURES_MCU_GROUP = cortex_m0 diff --git a/boards/pttu/Makefile.features b/boards/pttu/Makefile.features index 54bc2978ab495f4d7f36b66b06ea8467b1da5fdf..26efb4612c735ac7d7eb74e328d671df3feafccc 100644 --- a/boards/pttu/Makefile.features +++ b/boards/pttu/Makefile.features @@ -1,3 +1,4 @@ # Enable this after fixing https://github.com/RIOT-OS/RIOT/issues/659 #FEATURES_PROVIDED += transceiver FEATURES_PROVIDED += periph_rtc +FEATURES_MCU_GROUP = arm7 diff --git a/boards/qemu-i386/Makefile.features b/boards/qemu-i386/Makefile.features new file mode 100644 index 0000000000000000000000000000000000000000..24a62d088eabf713ff21dc37447292f838cb6dfe --- /dev/null +++ b/boards/qemu-i386/Makefile.features @@ -0,0 +1 @@ +FEATURES_MCU_GROUP = x86 diff --git a/boards/redbee-econotag/Makefile.features b/boards/redbee-econotag/Makefile.features index af23a974c8974d60533aea93ea25168a1cb04c66..5bc079ac1ecb02ac55364fbceb551777a7c52408 100644 --- a/boards/redbee-econotag/Makefile.features +++ b/boards/redbee-econotag/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver +FEATURES_MCU_GROUP = arm7 diff --git a/boards/samr21-xpro/Makefile.features b/boards/samr21-xpro/Makefile.features index fc8df2c7087bd31a401412b697f12839d68af0da..3266fbb712f2ab91f4d2bc02545e97d0b670228a 100644 --- a/boards/samr21-xpro/Makefile.features +++ b/boards/samr21-xpro/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver periph_gpio periph_spi cpp periph_timer periph_uart periph_i2c cpp periph_rtc periph_cpuid +FEATURES_MCU_GROUP = cortex_m0 diff --git a/boards/spark-core/Makefile.features b/boards/spark-core/Makefile.features index 4e85a0c0fa90de1512df91b054386e7eeadb091e..6bc98fbf6f4f61be812023df417988342920f6b4 100644 --- a/boards/spark-core/Makefile.features +++ b/boards/spark-core/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart +FEATURES_MCU_GROUP = cortex_m3_2 diff --git a/boards/stm32f0discovery/Makefile.features b/boards/stm32f0discovery/Makefile.features index 19f1b8ce421ae4083526b376737a137428a1bc6c..172ca8e8be9747ec087e3d7d0ebbd800cae50349 100644 --- a/boards/stm32f0discovery/Makefile.features +++ b/boards/stm32f0discovery/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += periph_adc periph_gpio periph_spi periph_uart cpp +FEATURES_MCU_GROUP = cortex_m0 diff --git a/boards/stm32f3discovery/Makefile.features b/boards/stm32f3discovery/Makefile.features index 4dfa4fad14db903672c15a38d30c0e54532a3470..d81085ab262756cd818aec12bc7fe1fbaef82022 100644 --- a/boards/stm32f3discovery/Makefile.features +++ b/boards/stm32f3discovery/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_pwm periph_spi +FEATURES_MCU_GROUP = cortex_m3_2 diff --git a/boards/stm32f4discovery/Makefile.features b/boards/stm32f4discovery/Makefile.features index c2fa3d8542c60067a08bb400827afbd7ae41115a..488ed7842b5e2124d146cb62ff1cdd2df2944042 100644 --- a/boards/stm32f4discovery/Makefile.features +++ b/boards/stm32f4discovery/Makefile.features @@ -1,3 +1,4 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_spi periph_i2c periph_pwm periph_random \ periph_adc periph_dac +FEATURES_MCU_GROUP = cortex_m4 diff --git a/boards/telosb/Makefile.features b/boards/telosb/Makefile.features index af23a974c8974d60533aea93ea25168a1cb04c66..b73c21bb32f60fa4073db791860dc82d41f6f575 100644 --- a/boards/telosb/Makefile.features +++ b/boards/telosb/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver +FEATURES_MCU_GROUP = msp430 diff --git a/boards/udoo/Makefile.features b/boards/udoo/Makefile.features index 1cae147202cd7ce6f53b541b94cfb0be24adcabc..fb64f1ac0b0b6622330a014017d4b47a5a3f4182 100644 --- a/boards/udoo/Makefile.features +++ b/boards/udoo/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_spi periph_random +FEATURES_MCU_GROUP = cortex_m3_2 diff --git a/boards/wsn430-v1_3b/Makefile.features b/boards/wsn430-v1_3b/Makefile.features index 3f4b26f74272d2d70a1e9d620e63eee14d91fb62..404ff76b5c05ea1ea824c95d7ae1cdd1fd60a5cc 100644 --- a/boards/wsn430-v1_3b/Makefile.features +++ b/boards/wsn430-v1_3b/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver config +FEATURES_MCU_GROUP = msp430 diff --git a/boards/wsn430-v1_4/Makefile.features b/boards/wsn430-v1_4/Makefile.features index 3f4b26f74272d2d70a1e9d620e63eee14d91fb62..404ff76b5c05ea1ea824c95d7ae1cdd1fd60a5cc 100644 --- a/boards/wsn430-v1_4/Makefile.features +++ b/boards/wsn430-v1_4/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver config +FEATURES_MCU_GROUP = msp430 diff --git a/boards/yunjia-nrf51822/Makefile.features b/boards/yunjia-nrf51822/Makefile.features index 498e6d7eeb2084810b918081ab08b782f64fdc98..f7dc503f5c86b409e0db7616cefd740ef3c182fa 100644 --- a/boards/yunjia-nrf51822/Makefile.features +++ b/boards/yunjia-nrf51822/Makefile.features @@ -1,2 +1,3 @@ FEATURES_PROVIDED += cpp FEATURES_PROVIDED += periph_uart periph_gpio periph_random periph_rtt periph_cpuid +FEATURES_MCU_GROUP = cortex_m0 diff --git a/boards/z1/Makefile.features b/boards/z1/Makefile.features index af23a974c8974d60533aea93ea25168a1cb04c66..b73c21bb32f60fa4073db791860dc82d41f6f575 100644 --- a/boards/z1/Makefile.features +++ b/boards/z1/Makefile.features @@ -1 +1,2 @@ FEATURES_PROVIDED += transceiver +FEATURES_MCU_GROUP = msp430 diff --git a/dist/tools/travis-scripts/build_and_test.sh b/dist/tools/travis-scripts/build_and_test.sh new file mode 100755 index 0000000000000000000000000000000000000000..0f9763dad1988cdbd3f8fe6e2484cd813197a500 --- /dev/null +++ b/dist/tools/travis-scripts/build_and_test.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set -e + +make -s -C ./examples/default info-concurrency +git rebase riot/master || git rebase --abort + +./dist/tools/whitespacecheck/check.sh master || exit + +./dist/tools/licenses/check.sh master --diff-filter=MR --error-exitcode=0 || exit +./dist/tools/licenses/check.sh master --diff-filter=AC || exit + +./dist/tools/doccheck/check.sh master || exit + +./dist/tools/externc/check.sh master || exit + +# TODO: +# Remove all but `master` parameters to cppcheck (and remove second +# invocation) once all warnings of cppcheck have been taken care of +# in master. +./dist/tools/cppcheck/check.sh master --diff-filter=MR --error-exitcode=0 || exit +./dist/tools/cppcheck/check.sh master --diff-filter=AC || exit + +if [[ $BUILDTEST_MCU_GROUP ]] +then + if [ "$BUILDTEST_MCU_GROUP" == "x86" ] + then + + make -C ./tests/unittests all test BOARD=native || exit + # TODO: + # Reenable once https://github.com/RIOT-OS/RIOT/issues/2300 is + # resolved: + # - make -C ./tests/unittests all test BOARD=qemu-i386 || exit + fi + ./dist/tools/compile_test/compile_test.py + ./dist/tools/pr_check/pr_check.sh riot/master +fi diff --git a/dist/tools/travis-scripts/get-pkg-list.py b/dist/tools/travis-scripts/get-pkg-list.py new file mode 100755 index 0000000000000000000000000000000000000000..3f990a96d65db3d3dc6c6fb287646c80f117eadf --- /dev/null +++ b/dist/tools/travis-scripts/get-pkg-list.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python + +import os + +arm_mcu_groups = ["arm7", "cortex_m0", "cortex_m3", "cortex_m3_2", "cortex_m4"] +msp_mcu_groups = ["msp430"] +x86_mcu_groups = ["x86"] +avr8_mcu_groups = ["avr8"] +known_mcu_groups = arm_mcu_groups + msp_mcu_groups + x86_mcu_groups + avr8_mcu_groups + +common_pkgs = ["pcregrep", "libpcre3", "python3", "cppcheck", "doxygen"] +arm_pkgs = ["gcc-arm-none-eabi"] +msp_pkgs = ["gcc-msp430"] +x86_pkgs = ["qemu-system-x86", "g++-multilib", "gcc-multilib", \ + "build-essential"] +avr8_pkgs = ["gcc-avr", "binutils-avr", "avr-libc"] +all_mcu_pkgs = arm_pkgs + msp_pkgs + x86_pkgs + avr8_pkgs + + +pkgs_to_install = common_pkgs +if "BUILDTEST_MCU_GROUP" in os.environ: + mcu_group = os.environ["BUILDTEST_MCU_GROUP"] + if mcu_group not in known_mcu_groups: + pkgs_to_install += all_mcu_pkgs + elif mcu_group in arm_mcu_groups: + pkgs_to_install += arm_pkgs + elif mcu_group in msp_mcu_groups: + pkgs_to_install += msp_pkgs + elif mcu_group in x86_mcu_groups: + pkgs_to_install += x86_pkgs + elif mcu_group in avr8_mcu_groups: + pkgs_to_install += avr8_pkgs +else: + pkgs_to_install += all_mcu_pkgs + +print " ".join(pkgs_to_install)