language: c dist: xenial cache: ccache addons: apt: packages: - gcc-aarch64-linux-gnu - libc6-dev-arm64-cross - gcc-arm-linux-gnueabihf - libc6-dev-armhf-cross - patch - quilt - wget env: global: - KDIR=/tmp/kernel - USE_CCACHE=1 - CCACHE_MAXSIZE=400M install: - if [[ "${KERNEL_VERSION}" == *-rc* ]]; then KERNEL_URL=https://git.kernel.org/torvalds/t/linux-${KERNEL_VERSION}.tar.gz; else KERNEL_URL=https://www.kernel.org/pub/linux/kernel/v${KERNEL_VERSION::1}.x/linux-${KERNEL_VERSION}.tar.xz; fi - wget -O kernel.tar.xz ${KERNEL_URL} && mkdir ${KDIR} && tar -C ${KDIR} --strip=1 -xf kernel.tar.xz - wget -O /tmp/ipipe.patch ${IPIPE_URL} before_script: - case "${ARCH}" in "arm64") export CROSS_COMPILE=aarch64-linux-gnu- export CONFIGURE_OPTS="--host=aarch64-linux-gnu --with-cc=aarch64-linux-gnu-gcc" ;; "arm" ) export CROSS_COMPILE=arm-linux-gnueabihf- export CONFIGURE_OPTS="--host=arm-linux-gnueabihf --with-cc=arm-linux-gnueabihf-gcc" ;; "x86" ) export CROSS_COMPILE= export CONFIGURE_OPTS="--enable-dlopen-libs --enable-lazy-setsched" ;; esac - mkdir ~/ccache - ln -s /usr/bin/ccache ~/ccache/aarch64-linux-gnu-gcc - ln -s /usr/bin/ccache ~/ccache/arm-linux-gnueabihf-gcc - export PATH=~/ccache:$PATH - pushd ${KDIR} - make -j $(nproc) ${KERNEL_DEFCONFIG} - ./scripts/config -e IPIPE - ./scripts/config -e XENOMAI - ./scripts/config -e XENO_OPT_SCHED_CLASSES - ./scripts/config -e XENO_OPT_SCHED_WEAK - ./scripts/config -e XENO_OPT_SCHED_TP - ./scripts/config -e XENO_OPT_SCHED_SPORADIC - ./scripts/config -e XENO_OPT_SCHED_QUOTA - ./scripts/config -e XENO_OPT_SHIRQ - ./scripts/config -e XENO_OPT_SCALABLE_SCHED - ./scripts/config -e XENO_OPT_DEBUG - ./scripts/config -e XENO_OPT_DEBUG_COBALT - ./scripts/config -e XENO_OPT_DEBUG_MEMORY - ./scripts/config -e XENO_OPT_DEBUG_CONTEXT - ./scripts/config -e XENO_OPT_DEBUG_USER - ./scripts/config -e XENO_OPT_DEBUG_POSIX_SYNCHRO - ./scripts/config -e XENO_OPT_DEBUG_LEGACY - ./scripts/config -e XENO_OPT_DEBUG_TRACE_RELAX - ./scripts/config -e XENO_DRIVERS_16550A - ./scripts/config -e XENO_DRIVERS_16550A_ANY - ./scripts/config -e XENO_DRIVERS_16550A_PCI - ./scripts/config -e XENO_DRIVERS_16550A_PCI_MOXA - ./scripts/config -e XENO_DRIVERS_IMX_UART - ./scripts/config -e XENO_DRIVERS_RTDMTEST - ./scripts/config -e XENO_DRIVERS_CAN - ./scripts/config -e XENO_DRIVERS_CAN_LOOPBACK - ./scripts/config -e XENO_DRIVERS_CAN_VIRT - ./scripts/config -e XENO_DRIVERS_CAN_FLEXCAN - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000 - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_ISA - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_MEM - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_PEAK_PCI - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_IXXAT_PCI - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_ADV_PCI - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_PLX_PCI - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_EMS_PCI - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_ESD_PCI - ./scripts/config -e XENO_DRIVERS_CAN_SJA1000_PEAK_DNG - ./scripts/config -m XENO_DRIVERS_NET - ./scripts/config -e XENO_DRIVERS_RTNET_CHECKED - ./scripts/config -e XENO_DRIVERS_NET_ETH_P_ALL - ./scripts/config -e XENO_DRIVERS_NET_RTIPV4_NETROUTING - ./scripts/config -e XENO_DRIVERS_NET_RTIPV4_ROUTER - ./scripts/config -e XENO_DRIVERS_NET_RTIPV4_DEBUG - ./scripts/config -m XENO_DRIVERS_NET_RTIPV4_TCP - ./scripts/config -e XENO_DRIVERS_NET_RTIPV4_TCP_ERROR_INJECTION - ./scripts/config -m XENO_DRIVERS_NET_NOMAC - ./scripts/config -e XENO_DRIVERS_NET_RTCFG_DEBUG - ./scripts/config -m XENO_DRIVERS_NET_DRV_PCNET32 - ./scripts/config -m XENO_DRIVERS_NET_DRV_TULIP - ./scripts/config -e XENO_DRIVERS_NET_DRV_EEPRO100_DBG - ./scripts/config -m XENO_DRIVERS_NET_DRV_E1000E - ./scripts/config -m XENO_DRIVERS_NET_DRV_NATSEMI - ./scripts/config -m XENO_DRIVERS_NET_DRV_VIA_RHINE - ./scripts/config -m XENO_DRIVERS_NET_DRV_IGB - ./scripts/config -m XENO_DRIVERS_NET_DRV_R8169 - ./scripts/config -m XENO_DRIVERS_NET_DRV_SMC91111 - ./scripts/config -e XENO_DRIVERS_NET_EXP_DRIVERS - ./scripts/config -m XENO_DRIVERS_NET_DRV_3C59X - ./scripts/config -m XENO_DRIVERS_NET_DRV_E1000_NEW - ./scripts/config -m XENO_DRIVERS_NET_DRV_RT2500 - ./scripts/config -m XENO_DRIVERS_NET_ADDON_RTCAP - ./scripts/config -m XENO_DRIVERS_NET_ADDON_PROXY - ./scripts/config -e XENO_DRIVERS_NET_ADDON_PROXY_ARP - ./scripts/config -e XENO_DRIVERS_ANALOGY - ./scripts/config -e XENO_DRIVERS_ANALOGY_DEBUG - ./scripts/config -e XENO_DRIVERS_ANALOGY_DEBUG_FTRACE - ./scripts/config -e XENO_DRIVERS_ANALOGY_FAKE - ./scripts/config -e XENO_DRIVERS_ANALOGY_NI_PCIMIO - ./scripts/config -e XENO_DRIVERS_ANALOGY_S526 - ./scripts/config -e XENO_DRIVERS_RTIPC - ./scripts/config -e XENO_DRIVERS_UDD - ./scripts/config -e XENO_DRIVERS_GPIO - ./scripts/config -e XENO_DRIVERS_GPIO_BCM2835 - ./scripts/config -e XENO_DRIVERS_GPIO_MXC - ./scripts/config -e XENO_DRIVERS_GPIO_SUN8I_H3 - ./scripts/config -e XENO_DRIVERS_GPIO_ZYNQ7000 - ./scripts/config -e XENO_DRIVERS_GPIO_XILINX - ./scripts/config -e XENO_DRIVERS_GPIO_DEBUG - ./scripts/config -e XENO_DRIVERS_GPIOPWM - ./scripts/config -e XENO_DRIVERS_SPI_BCM2835 - ./scripts/config -e XENO_DRIVERS_SPI_SUN6I - ./scripts/config -e XENO_DRIVERS_SPI_DEBUG - popd script: - scripts/prepare-kernel.sh --ipipe=/tmp/ipipe.patch --arch=${ARCH} --linux=${KDIR} - pushd ${KDIR} - make -j $(nproc) olddefconfig - make -j $(nproc) all - popd - scripts/bootstrap - ./configure --enable-smp ${CONFIGURE_OPTS} - make -j $(nproc) - ccache -s matrix: include: - env: - ARCH: arm KERNEL_VERSION: 4.14.85 KERNEL_DEFCONFIG: multi_v7_defconfig IPIPE_URL: https://xenomai.org/downloads/ipipe/v4.x/arm/ipipe-core-4.14.85-arm-6.patch - env: - ARCH: arm KERNEL_VERSION: 4.1.18 KERNEL_DEFCONFIG: multi_v7_defconfig IPIPE_URL: https://xenomai.org/downloads/ipipe/v4.x/arm/older/ipipe-core-4.1.18-arm-9.patch - env: - ARCH: x86 KERNEL_VERSION: 4.14.89 KERNEL_DEFCONFIG: x86_64_defconfig IPIPE_URL: https://xenomai.org/downloads/ipipe/v4.x/x86/ipipe-core-4.14.89-x86-2.patch - env: - ARCH: x86 KERNEL_VERSION: 4.4.166 KERNEL_DEFCONFIG: i386_defconfig IPIPE_URL: https://xenomai.org/downloads/ipipe/v4.x/x86/ipipe-core-4.4.166-x86-12.patch