From 3fe6b42b2192b992083514075f0ab90734b8437c Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Fri, 26 Dec 2014 20:33:00 +0100 Subject: Add Travis CI support --- .gitignore | 2 +- .travis.yml | 44 +++++++++ .travis_ignored_configs.txt | 221 ++++++++++++++++++++++++++++++++++++++++++++ README.md | 3 + nuttx/tools/autobuild.sh | 34 +++++++ nuttx/tools/build_config.sh | 100 ++++++++++++++++++++ 6 files changed, 403 insertions(+), 1 deletion(-) create mode 100644 .travis.yml create mode 100644 .travis_ignored_configs.txt create mode 100644 README.md create mode 100755 nuttx/tools/autobuild.sh create mode 100755 nuttx/tools/build_config.sh diff --git a/.gitignore b/.gitignore index f54ddffcd..a723f9c3a 100644 --- a/.gitignore +++ b/.gitignore @@ -9,8 +9,8 @@ Make.dep .*.swp core .gdbinit +travis_output cscope.out .cproject .project .settings - diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..ebb1a512f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,44 @@ +language: cpp +before_script: +- sudo apt-get update -q +- sudo apt-get install s3cmd grep zip mailutils +- sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386 +- sudo apt-get install python-serial python-argparse +- sudo apt-get install flex bison libncurses5-dev autoconf texinfo build-essential + libtool zlib1g-dev genromfs git wget +- sudo apt-get install gcc-avr +- pushd . +- cd ~ +- wget https://launchpad.net/gcc-arm-embedded/4.9/4.9-2014-q4-major/+download/gcc-arm-none-eabi-4_9-2014q4-20141203-linux.tar.bz2 +- tar -jxf gcc-arm-none-eabi-4_9-2014q4-20141203-linux.tar.bz2 +- exportline="export PATH=$HOME/gcc-arm-none-eabi-4_9-2014q4/bin:\$PATH" +- if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi +- . ~/.profile +- popd +- wget --quiet --timestamping https://sourceforge.net/projects/pinguinoide/files/linux/pinguino-linux64-gcc-mips-elf.deb +- sudo dpkg --install --force-overwrite pinguino-linux64-gcc-mips-elf.deb +- sudo apt-get install libcloog-isl4 libisl10 +- sudo apt-get install -f +git: + depth: 500 +script: +- ./nuttx/tools/autobuild.sh +- zip -r Buildlogs.zip travis_output > /dev/null +env: + - BUILDJOBS=3 BUILDJOBID=a + - BUILDJOBS=3 BUILDJOBID=b + - BUILDJOBS=3 BUILDJOBID=c +addons: + artifacts: + paths: + - "Buildlogs.zip" + key: + secure: zUntHUl8Ji8ZHOehfrXX8vVM9YQbacYHRIodIMc2XKqwbtHHvEFypvq7WVM9glF9RRsbawpD/qwgvmmc7Fq1g5lBD7VIKJPiWSIud/BDiFJiMP0RTjpo7+aBx1cZJjORy1bnrZ0EHtj9R6q7O9PCGwLdGVc8yTgqHVLVe1FN4y4= + secret: + secure: mUN6YYgCmVZCbmTvRFX+t9dJl86yg2bMc6Sl1DzEiV/wXChIcg+dLracyc3XMorNSxOKJanjxVdUAw/kt4FiYsONTCN5jJm6BjwMUrS3IcIVWkwW4QwDqw02O3XQ5IgUANpbFxogARKQgi78HFUGy2xoF1xy35Wrn3Ffob4DkiE= + bucket: nuttx-travis +notifications: + email: + - spudarnia@yahoo.com + - lorenz@px4.io + - david_s5@usa.net diff --git a/.travis_ignored_configs.txt b/.travis_ignored_configs.txt new file mode 100644 index 000000000..ef437e648 --- /dev/null +++ b/.travis_ignored_configs.txt @@ -0,0 +1,221 @@ +# Travis CI ignored configs +# Every line not prepended with a hash (#) +# will be ignored by the build check tool. + +nuttx/configs/zkit-arm-1769/thttpd/defconfig +nuttx/configs/zkit-arm-1769/hello/defconfig +nuttx/configs/z8f64200100kit/ostest/defconfig +nuttx/configs/z8encore000zco/ostest/defconfig +nuttx/configs/z80sim/pashello/defconfig +nuttx/configs/z80sim/ostest/defconfig +nuttx/configs/z80sim/nsh/defconfig +nuttx/configs/z16f2800100zcog/pashello/defconfig +nuttx/configs/z16f2800100zcog/ostest/defconfig +nuttx/configs/z16f2800100zcog/nsh/defconfig +nuttx/configs/xtrs/pashello/defconfig +nuttx/configs/xtrs/ostest/defconfig +nuttx/configs/xtrs/nsh/defconfig +nuttx/configs/vsn/nsh/defconfig +nuttx/configs/us7032evb1/ostest/defconfig +nuttx/configs/us7032evb1/nsh/defconfig +nuttx/configs/ubw32/nsh/defconfig +nuttx/configs/teensy/usbmsc/defconfig +nuttx/configs/teensy/nsh/defconfig +nuttx/configs/teensy/hello/defconfig +nuttx/configs/sure-pic32mx/usbnsh/defconfig +nuttx/configs/sure-pic32mx/nsh/defconfig +nuttx/configs/stm32vldiscovery/nsh/defconfig +nuttx/configs/stm32f4discovery/winbuild/defconfig +nuttx/configs/stm32f4discovery/pm/defconfig +nuttx/configs/stm32f4discovery/nxlines/defconfig +nuttx/configs/stm32f4discovery/kostest/defconfig +nuttx/configs/stm32f4discovery/cxxtest/defconfig +nuttx/configs/stm3240g-eval/xmlrpc/defconfig +nuttx/configs/stm3240g-eval/telnetd/defconfig +nuttx/configs/stm3240g-eval/nxwm/defconfig +nuttx/configs/stm3240g-eval/nsh2/defconfig +nuttx/configs/stm3240g-eval/knxwm/defconfig +nuttx/configs/stm3240g-eval/discover/defconfig +nuttx/configs/stm3240g-eval/dhcpd/defconfig +nuttx/configs/stm3220g-eval/telnetd/defconfig +nuttx/configs/stm3220g-eval/nxwm/defconfig +nuttx/configs/stm3220g-eval/nsh2/defconfig +nuttx/configs/stm3220g-eval/dhcpd/defconfig +nuttx/configs/stm3210e-eval/usbmsc/defconfig +nuttx/configs/stm3210e-eval/pm/defconfig +nuttx/configs/stm3210e-eval/nxterm/defconfig +nuttx/configs/stm3210e-eval/nsh2/defconfig +nuttx/configs/stm3210e-eval/composite/defconfig +nuttx/configs/skp16c26/ostest/defconfig +nuttx/configs/arduino-due/nsh/defconfig +nuttx/configs/pirelli_dpl10/nsh_highram/defconfig +nuttx/configs/lm3s8962-ek/nx/defconfig +nuttx/configs/lm3s8962-ek/nsh/defconfig +nuttx/configs/mcu123-lpc214x/usbserial/defconfig +nuttx/configs/mcu123-lpc214x/nsh/defconfig +nuttx/configs/mcu123-lpc214x/composite/defconfig +nuttx/configs/mcu123-lpc214x/usbmsc/defconfig +nuttx/configs/lpcxpresso-lpc1768/thttpd/defconfig +nuttx/configs/lpcxpresso-lpc1768/nx/defconfig +nuttx/configs/lpcxpresso-lpc1768/nsh/defconfig +nuttx/configs/lpcxpresso-lpc1768/usbmsc/defconfig +nuttx/configs/lpcxpresso-lpc1768/dhcpd/defconfig +nuttx/configs/sam4s-xplained/nsh/defconfig +nuttx/configs/rgmp/arm/nsh/defconfig +nuttx/configs/rgmp/arm/default/defconfig +nuttx/configs/rgmp/x86/cxxtest/defconfig +nuttx/configs/rgmp/x86/nsh/defconfig +nuttx/configs/rgmp/x86/default/defconfig +nuttx/configs/rgmp/x86/helloxx/defconfig +nuttx/configs/nutiny-nuc120/nsh/defconfig +nuttx/configs/sama5d3-xplained/nsh/defconfig +nuttx/configs/sama5d3-xplained/bridge/defconfig +nuttx/configs/ez80f910200kitg/ostest/defconfig +nuttx/configs/eagle100/thttpd/defconfig +nuttx/configs/eagle100/httpd/defconfig +nuttx/configs/eagle100/nxflat/defconfig +nuttx/configs/eagle100/nettest/defconfig +nuttx/configs/avr32dev1/nsh/defconfig +nuttx/configs/avr32dev1/ostest/defconfig +nuttx/configs/sim/bas/defconfig +nuttx/configs/sama5d3x-ek/nxwm/defconfig +nuttx/configs/sama5d3x-ek/nx/defconfig +nuttx/configs/sama5d3x-ek/ov2640/defconfig +nuttx/configs/sama5d3x-ek/norboot/defconfig +nuttx/configs/sama5d3x-ek/hello/defconfig +nuttx/configs/sama5d3x-ek/nxplayer/defconfig +nuttx/configs/sama5d3x-ek/demo/defconfig +nuttx/configs/micropendous3/hello/defconfig +nuttx/configs/compal_e99/nsh_compalram/defconfig +nuttx/configs/compal_e99/nsh_highram/defconfig + +nuttx/configs/c5471evm/nsh/defconfig +nuttx/configs/c5471evm/nettest/defconfig +nuttx/configs/c5471evm/httpd/defconfig +nuttx/configs/sam4l-xplained/nsh/defconfig +nuttx/configs/ntosd-dm320/thttpd/defconfig +nuttx/configs/ntosd-dm320/webserver/defconfig +nuttx/configs/ntosd-dm320/nettest/defconfig +nuttx/configs/ntosd-dm320/poll/defconfig +nuttx/configs/mirtoo/nxffs/defconfig +nuttx/configs/mirtoo/nsh/defconfig +nuttx/configs/olimex-strp711/nsh/defconfig +nuttx/configs/olimex-strp711/nettest/defconfig +nuttx/configs/ea3131/pgnsh/defconfig +nuttx/configs/ea3131/usbserial/defconfig +nuttx/configs/ea3131/nsh/defconfig +nuttx/configs/nucleus2g/nsh/defconfig +nuttx/configs/nucleus2g/usbmsc/defconfig +nuttx/configs/open1788/knsh/defconfig +nuttx/configs/sama5d4-ek/nxwm/defconfig +nuttx/configs/sama5d4-ek/ramtest/defconfig +nuttx/configs/sama5d4-ek/at25boot/defconfig +nuttx/configs/sama5d4-ek/knsh/defconfig +nuttx/configs/sama5d4-ek/dramboot/defconfig +nuttx/configs/sama5d4-ek/bridge/defconfig +nuttx/configs/sama5d4-ek/elf/defconfig +nuttx/configs/ea3152/ostest/defconfig +nuttx/configs/ne64badge/ostest/defconfig +nuttx/configs/p112/ostest/defconfig +nuttx/configs/demo9s12ne64/ostest/defconfig +nuttx/configs/mx1ads/ostest/defconfig +nuttx/configs/mikroe-stm32f4/fulldemo/defconfig +nuttx/configs/mikroe-stm32f4/kostest/defconfig +nuttx/configs/mikroe-stm32f4/nxtext/defconfig +nuttx/configs/mikroe-stm32f4/nx/defconfig +nuttx/configs/mikroe-stm32f4/nsh/defconfig +# The moteino configs need the ATMEL IDE installed +nuttx/configs/moteino-mega/hello/defconfig +nuttx/configs/moteino-mega/nsh/defconfig +nuttx/configs/amber/hello/defconfig +nuttx/configs/qemu-i486/nsh/defconfig +nuttx/configs/qemu-i486/ostest/defconfig +nuttx/configs/ez80f910200zco/nsh/defconfig +nuttx/configs/ez80f910200zco/httpd/defconfig +nuttx/configs/ez80f910200zco/nettest/defconfig +nuttx/configs/ez80f910200zco/dhcpd/defconfig +nuttx/configs/ez80f910200zco/poll/defconfig +nuttx/configs/ekk-lm3s9b96/nsh/defconfig +nuttx/configs/olimex-lpc1766stk/thttpd/defconfig +nuttx/configs/shenzhou/thttpd/defconfig +nuttx/configs/shenzhou/nxwm/defconfig +nuttx/configs/shenzhou/nsh/defconfig +nuttx/configs/samd20-xplained/nsh/defconfig +nuttx/configs/sam4s-xplained-pro/nsh/defconfig +nuttx/configs/sam4e-ek/nxwm/defconfig +nuttx/configs/sam3u-ek/nxwm/defconfig +nuttx/configs/sam3u-ek/knsh/defconfig +nuttx/configs/pic32mx7mmb/nsh/defconfig +nuttx/configs/pic32mx-starterkit/nsh2/defconfig +nuttx/configs/pic32mx-starterkit/nsh/defconfig +nuttx/configs/pcduino-a10/nsh/defconfig +nuttx/configs/pcblogic-pic32mx/nsh/defconfig +nuttx/configs/olimex-lpc1766stk/zmodem/defconfig +nuttx/configs/olimex-lpc1766stk/usbmsc/defconfig +nuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig +nuttx/configs/olimex-lpc1766stk/nettest/defconfig +nuttx/configs/olimex-lpc1766stk/hidkbd/defconfig +nuttx/configs/olimex-lpc-h3131/nsh/defconfig +nuttx/configs/lm4f120-launchpad/nsh/defconfig +nuttx/configs/lm3s6965-ek/tcpecho/defconfig +nuttx/configs/lm3s6965-ek/nx/defconfig +nuttx/configs/lm3s6965-ek/nsh/defconfig +nuttx/configs/lm3s6965-ek/discover/defconfig +nuttx/configs/hymini-stm32v/usbmsc/defconfig +nuttx/configs/hymini-stm32v/nsh2/defconfig +nuttx/configs/fire-stm32v2/nsh/defconfig + +# Configs which build, but are exceeding the 50 minute time limit: +nuttx/configs/stm32f4discovery/elf/defconfig +nuttx/configs/stm3210e-eval/buttons/defconfig +nuttx/configs/zkit-arm-1769/nxhello/defconfig +nuttx/configs/viewtool-stm32f107/highpri/defconfig +nuttx/configs/stm32f4discovery/nsh/defconfig +nuttx/configs/stm32f429i-disco/nsh/defconfig +nuttx/configs/stm3240g-eval/nxterm/defconfig +nuttx/configs/stm3220g-eval/nsh/defconfig +nuttx/configs/stm3210e-eval/nx/defconfig +nuttx/configs/olimex-lpc1766stk/nx/defconfig +nuttx/configs/hymini-stm32v/buttons/defconfig +nuttx/configs/maple/nx/defconfig +nuttx/configs/freedom-kl25z/minnsh/defconfig +nuttx/configs/ntosd-dm320/nsh/defconfig +nuttx/configs/mbed/nsh/defconfig +nuttx/configs/sim/traveler/defconfig +nuttx/configs/sim/touchscreen/defconfig +nuttx/configs/sim/pashello/defconfig +# XXX enable the ostest config as soon as the env setup +# issue has been resolved +nuttx/configs/sim/ostest/defconfig +nuttx/configs/sim/nxwm/defconfig +nuttx/configs/sim/nxlines/defconfig +nuttx/configs/sim/nsh2/defconfig +# CONFIG sim/nettest: Has an actual compile error +nuttx/configs/sim/nettest/defconfig +# CONFIG sim/mtdpart, CONFIG sim/mtdrwb: +# +# the tool build step fails with this error, I have not yet worked out how to fix this. +# +# make[1]: Entering directory `/home/travis/build/PX4/NuttX/nuttx/tools' +# In file included from /usr/include/string.h:27:0, +# from mkconfig.c:40: +# /usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory +# compilation terminated. +# In file included from /usr/include/string.h:27:0, +# from cfgdefine.c:40: +# /usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory +# compilation terminated. +# make[1]: *** [mkconfig] Error 1 +# make[1]: Leaving directory `/home/travis/build/PX4/NuttX/nuttx/tools' +# make: *** [tools/mkconfig] Error 2 +nuttx/configs/sim/mtdrwb/defconfig +nuttx/configs/sim/mtdpart/defconfig +#nuttx/configs/sim/mount/defconfig +# CONFIG sim/cxxtest: unmet uclibC++ depencendy (or rather, missing ./install.sh +# step). +nuttx/configs/sim/cxxtest/defconfig +#nuttx/configs/sim/configdata/defconfig + +# These need osmocom to build: +nuttx/configs/compal_e88/nsh_highram/defconfig +nuttx/configs/compal_e86/nsh_highram/defconfig diff --git a/README.md b/README.md new file mode 100644 index 000000000..c6ec626d2 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +## NuttX Operating System ## + +Website at: http://nuttx.org \ No newline at end of file diff --git a/nuttx/tools/autobuild.sh b/nuttx/tools/autobuild.sh new file mode 100755 index 000000000..d8ae8c3e2 --- /dev/null +++ b/nuttx/tools/autobuild.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Build job count +BUILDJOBS=${BUILDJOBS:-2} +BUILDJOBID=${BUILDJOBID:-a} + +# Config count +CONFCOUNT=`find nuttx/configs -name \*defconfig -print | wc -l` +# Number of non-commented (#) and non-empty lines in ignore file +IGNORECOUNT=`cat .travis_ignored_configs.txt | sed '/^\s*#/d;/^\s*$/d' | wc -l` +# Get rid of whitespace +CONFCOUNT=$(echo $CONFCOUNT ) +IGNORECOUNT=$(echo $IGNORECOUNT ) + +echo -e "\n" +echo -e "\0033[34mNuttX Configs: $CONFCOUNT total, $IGNORECOUNT excluded from build\0033[0m" +echo -e "(Add or remove configs to file .travis_ignored_configs to exclude)" +echo -e "----------------------------------------------------------------------------\n" + +CONFIGS=configs.txt + +find nuttx/configs -name \*defconfig -print > $CONFIGS + +# Lines per file +LINES_TOTAL=$(wc -l <${CONFIGS}) +((LINES_PER_FILE = (LINES_TOTAL + BUILDJOBS - 1) / BUILDJOBS)) + +# Perform the split +split -a1 -l${LINES_PER_FILE} ${CONFIGS} configparts. + +echo -e "Operating total $BUILDJOBS build jobs" +echo -e "Running job: configparts.$BUILDJOBID" + +cat "configparts.$BUILDJOBID" | xargs -L1 nuttx/tools/build_config.sh diff --git a/nuttx/tools/build_config.sh b/nuttx/tools/build_config.sh new file mode 100755 index 000000000..16a927139 --- /dev/null +++ b/nuttx/tools/build_config.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +CONFIGPATH=$1 +BASE=`pwd` + +CONFIGBASEPATH=`dirname $CONFIGPATH` +PREFIX=nuttx\/configs\/ +LOGSDIR=$BASE/travis_output + +IGNORED=`cat .travis_ignored_configs.txt | grep $CONFIGPATH` + +if [[ $IGNORED ]] && [[ $IGNORED != "#"* ]] +then + echo -e "\0033[90mIgnoring config $CONFIGPATH\0033[0m" + exit 0 +fi + +# Config is valid, build it + +CONFIG=${CONFIGBASEPATH#$PREFIX} +LOGDIR="$LOGSDIR/${CONFIG//\//_}" +BUILDLOG="$LOGDIR/buildlog.txt" +FAILED_CONFIGS="$LOGSDIR/failed_configs.txt" +SUCCESSFUL_CONFIGS="$LOGSDIR/successful_configs.txt" + +echo -e "\nBUILDING CONFIG $CONFIG" +echo -e "BUILD ARTIFACTS: $LOGDIR" +echo -e "LOG: $BUILDLOG" +mkdir -p $LOGDIR + +# Manually reconfigure for Linux toolchain +# XXX this should be menuconfig, but doing this headless isn't trivial +sed -i"" 's/# CONFIG_HOST_LINUX is not set.*/CONFIG_HOST_LINUX=y/g' $CONFIGPATH +sed -i"" 's/CONFIG_HOST_WINDOWS=y.*/# CONFIG_HOST_WINDOWS is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_HOST_OSX=y.*/# CONFIG_HOST_OSX is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_HOST_OTHER=y.*/# CONFIG_HOST_OTHER is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_WINDOWS_NATIVE=y.*/# CONFIG_WINDOWS_NATIVE is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_WINDOWS_CYGWIN=y.*/# CONFIG_WINDOWS_CYGWIN is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_WINDOWS_MSYS=y.*/# CONFIG_WINDOWS_MSYS is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_WINDOWS_OTHER=y.*/# CONFIG_WINDOWS_OTHER is not set/g' $CONFIGPATH + +sed -i"" 's/CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y.*/# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7M_TOOLCHAIN_CODEREDL=y.*/# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y.*/# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y.*/# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7M_TOOLCHAIN_CODEREDW=y.*/# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y.*/# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y.*/# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW=y.*/# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y.*/# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7M_TOOLCHAIN_GNU_OABI=y.*/# CONFIG_ARMV7M_TOOLCHAIN_GNU_OABI is not set/g' $CONFIGPATH +sed -i"" 's/# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set.*/CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y/g' $CONFIGPATH + +sed -i"" 's/CONFIG_ARMV7A_TOOLCHAIN_BUILDROOT=y.*/# CONFIG_ARMV7A_TOOLCHAIN_BUILDROOT is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7A_TOOLCHAIN_CODEREDL=y.*/# CONFIG_ARMV7A_TOOLCHAIN_CODEREDL is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7A_TOOLCHAIN_CODESOURCERYL=y.*/# CONFIG_ARMV7A_TOOLCHAIN_CODESOURCERYL is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7A_TOOLCHAIN_ATOLLIC=y.*/# CONFIG_ARMV7A_TOOLCHAIN_ATOLLIC is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7A_TOOLCHAIN_CODEREDW=y.*/# CONFIG_ARMV7A_TOOLCHAIN_CODEREDW is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7A_TOOLCHAIN_CODESOURCERYW=y.*/# CONFIG_ARMV7A_TOOLCHAIN_CODESOURCERYW is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7A_TOOLCHAIN_DEVKITARM=y.*/# CONFIG_ARMV7A_TOOLCHAIN_DEVKITARM is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7A_TOOLCHAIN_GNU_EABIW=y.*/# CONFIG_ARMV7A_TOOLCHAIN_GNU_EABIW is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7A_TOOLCHAIN_RAISONANCE=y.*/# CONFIG_ARMV7A_TOOLCHAIN_RAISONANCE is not set/g' $CONFIGPATH +sed -i"" 's/CONFIG_ARMV7A_TOOLCHAIN_GNU_OABI=y.*/# CONFIG_ARMV7A_TOOLCHAIN_GNU_OABI is not set/g' $CONFIGPATH +sed -i"" 's/# CONFIG_ARMV7A_TOOLCHAIN_GNU_EABIL is not set.*/CONFIG_ARMV7A_TOOLCHAIN_GNU_EABIL=y/g' $CONFIGPATH + + +sed -i"" 's/# CONFIG_AVR_LINUXGCC is not set.*/CONFIG_AVR_LINUXGCC=y/g' $CONFIGPATH +sed -i"" 's/CONFIG_AVR_BUILDROOT=y.*/# CONFIG_AVR_BUILDROOT is not set/g' $CONFIGPATH + +sed -i"" 's/CONFIG_MIPS32_TOOLCHAIN_MICROCHIPW_LITE=y.*/# CONFIG_MIPS32_TOOLCHAIN_MICROCHIPW_LITE is not set/g' $CONFIGPATH +sed -i"" 's/# CONFIG_MIPS32_TOOLCHAIN_PINGUINOW is not set.*/CONFIG_MIPS32_TOOLCHAIN_PINGUINOW=y/g' $CONFIGPATH + +# Simulation target configs + +# Force 64bit host build +sed -i"" 's/# CONFIG_HOST_X86_64 is not set.*/CONFIG_HOST_X86_64=y/g' $CONFIGPATH +echo "CONFIG_HOST_X86_64=y" >> $CONFIGPATH + +# Clean build dir +cd nuttx +git clean -d -f -x > /dev/null +cd .. + +cd nuttx/tools +./configure.sh $CONFIG +cd .. +make oldconfig &> $BUILDLOG +cp .config $LOGDIR/config +if ! (make &> $BUILDLOG); then + echo -e "\0033[31mCONFIG $CONFIG: FAILED BUILD\0033[0m\n" + make distclean &> /dev/null + echo $CONFIGPATH >> $FAILED_CONFIGS + exit 1; +else + echo -e "\0033[32mCONFIG $CONFIG: SUCCESSFUL BUILD\0033[0m\n" + cp nuttx $LOGDIR/. + make distclean &> /dev/null + echo $CONFIGPATH >> $SUCCESSFUL_CONFIGS + exit 0; +fi -- cgit v1.2.3