@@ -221,28 +221,29 @@ - os: linux dist: trusty env: - config=amigaos - # Disabled as the devkitPro developers deliberately broke Travis. - ## Nintendo 3DS - #- os: linux - # dist: bionic - # env: - # - config=nintendo_3ds - # - ## Nintendo DS - #- os: linux - # dist: bionic - # env: - # - config=nintendo_ds - # - ## Nintendo Wii - #- os: linux - # dist: bionic - # env: - # - config=wii + # Nintendo 3DS + - os: linux + dist: bionic + env: + - config=nintendo_3ds + + # Nintendo DS + - os: linux + dist: bionic + env: + - config=nintendo_ds + + # Nintendo Wii + - os: linux + dist: bionic + env: + - config=wii + +services: docker before_install: - if [ "$TRAVIS_OS_NAME" = "linux" -a -z "$config" ]; then case "$TRAVIS_CPU_ARCH" in amd64 | s390x) @@ -267,28 +268,16 @@ if grep precise /etc/lsb-release >/dev/null; then sudo ipx_internal_net add 1234 123456; fi; fi - - if [ "$config" = "nintendo_3ds" -o "$config" = "nintendo_ds" - -o "$config" = "wii" ]; then - deb=devkitpro-pacman.amd64.deb; - wget https://github.com/devkitPro/pacman/releases/download/v1.0.2/$deb; - sudo apt install gdebi; - sudo gdebi -n $deb; - fi - - - if [ "$config" = "nintendo_3ds" ]; then - sudo dkp-pacman --noconfirm -Syu 3ds-dev; - fi - - - if [ "$config" = "nintendo_ds" ]; then - sudo dkp-pacman --noconfirm -Syu nds-dev; + - if [ "$config" = "nintendo_3ds" -o "$config" = "nintendo_ds" ]; then + docker pull devkitpro/devkitarm; fi - if [ "$config" = "wii" ]; then - sudo dkp-pacman --noconfirm -Syu wii-dev; + docker pull devkitpro/devkitppc; fi - if [ "$config" = "amigaos" ]; then wget -q https://franke.ms/download/amiga-gcc.tgz; tar -C / -xzf amiga-gcc.tgz; @@ -298,26 +287,12 @@ - build() { if ! git clean -fxd >/tmp/clean_log 2>&1; then cat /tmp/clean_log; exit 1; fi; - echo ">> Configuring with $@"; ./autogen.sh; - if ! ./configure ac_cv_path_TPUT= "$@"; then - cat config.log; - exit 1; - fi; - echo ">> Building (configured with $@)"; - if ! make -j4 >/tmp/make_log 2>&1; then - cat /tmp/make_log; - exit 1; - fi; - echo ">> Installing (configured with $@)"; - if ! sudo PATH="$PATH" make install >/tmp/install_log 2>&1; then - cat /tmp/install_log; - exit 1; - fi; + .travis/build.sh "$@"; } - if [ "$TRAVIS_OS_NAME" = "linux" -a -z "$config" ]; then build_32_64() { build OBJC="$CC" $@; @@ -424,24 +399,28 @@ build --host=m68k-amigaos --disable-amiga-lib; build --host=m68k-amigaos --enable-static; fi - if [ "$config" = "nintendo_3ds" ]; then - export DEVKITPRO="/opt/devkitpro"; - export PATH="$DEVKITPRO/devkitARM/bin:$PATH"; - - build --host=arm-none-eabi --with-3ds; + ./autogen.sh; + docker run -e DEVKITPRO=/opt/devkitpro + -e PATH="/opt/devkitpro/devkitARM/bin:$PATH" + -v $TRAVIS_BUILD_DIR:/objfw devkitpro/devkitarm + /objfw/.travis/build.sh --host=arm-none-eabi --with-3ds; fi - if [ "$config" = "nintendo_ds" ]; then - export DEVKITPRO="/opt/devkitpro"; - export PATH="$DEVKITPRO/devkitARM/bin:$PATH"; - - build --host=arm-none-eabi --with-nds; + ./autogen.sh; + docker run -e DEVKITPRO=/opt/devkitpro + -e PATH="/opt/devkitpro/devkitARM/bin:$PATH" + -v $TRAVIS_BUILD_DIR:/objfw devkitpro/devkitarm + /objfw/.travis/build.sh --host=arm-none-eabi --with-nds; fi - if [ "$config" = "wii" ]; then - export DEVKITPRO="/opt/devkitpro"; - export PATH="$DEVKITPRO/devkitPPC/bin:$PATH"; - - build ac_cv_prog_wiiload= --host=powerpc-eabi --with-wii; + ./autogen.sh; + docker run -e DEVKITPRO=/opt/devkitpro + -e PATH="/opt/devkitpro/devkitPPC/bin:$PATH" + -v $TRAVIS_BUILD_DIR:/objfw devkitpro/devkitppc + /objfw/.travis/build.sh ac_cv_prog_wiiload= + --host=powerpc-eabi --with-wii; fi