language: c os: - linux - osx addons: apt: packages: # packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise - iptables-dev - libevent-dev - libnfnetlink-dev - libmnl-dev - libnftnl-dev - uuid-dev - cmake - doxygen - graphviz # container-based builds sudo: false # https://docs.travis-ci.com/user/reference/xenial/ dist: xenial env: - 'PROJECT=minissdpd' - 'PROJECT=miniupnpc' - 'PROJECT=miniupnpc-async' - 'PROJECT=miniupnpc-libevent' - 'PROJECT=miniupnpd' matrix: exclude: - os: osx env: PROJECT=miniupnpd - os: osx compiler: gcc compiler: - gcc - clang before_install: - 'if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$CC" == "gcc" ] ; then CC=gcc-4.9; fi' script: - 'cd $TRAVIS_BUILD_DIR && cd $PROJECT' - MAKEFILE=Makefile && if [ -f Makefile.linux -a "$TRAVIS_OS_NAME" = "linux" ]; then MAKEFILE=Makefile.linux ; elif [ -f Makefile.macosx -a "$TRAVIS_OS_NAME" = "osx" ]; then MAKEFILE=Makefile.macosx; fi - if [ "$MAKEFILE" = "Makefile.macosx" ]; then make -f $MAKEFILE depend; fi - 'CONFIG_OPTIONS="--ipv6 --igd2" make -f $MAKEFILE -j3' - make -f $MAKEFILE check - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$PROJECT" = "miniupnpd" ]; then make -f Makefile.linux_nft clean ; CONFIG_OPTIONS="--ipv6 --igd2" make -f Makefile.linux_nft -j3 ; fi - 'if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$PROJECT" = "miniupnpd" ]; then make -f $MAKEFILE dox ; fi' - if [ "$PROJECT" = "miniupnpc" ]; then INSTALLPREFIX="$HOME/_pythonmodule" make -f $MAKEFILE pythonmodule; fi - if [ -f "CMakeLists.txt" ] ; then mkdir cmake-build && cd cmake-build && cmake .. && make ; fi after_success: - 'INSTALLPREFIX="$HOME/$PROJECT" make -f $MAKEFILE install'