diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d3f067c5..833787a5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -305,6 +305,7 @@ jobs: submodules: recursive - name: Set up cache uses: actions/cache@v2 + id: mpb-cache with: path: | ~/mod-workdir @@ -312,23 +313,24 @@ jobs: - name: Set up dependencies run: | sudo apt-get update -qq - sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin + sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev - name: Bootstrap toolchain + if: steps.mpb-cache.outputs.cache-hit != 'true' run: | git clone --depth=1 https://github.com/moddevices/mod-plugin-builder.git deps/mod-plugin-builder sed -i "s/CT_LOG_PROGRESS_BAR=y/CT_LOG_PROGRESS_BAR=n/" deps/mod-plugin-builder/toolchain/*.config $(pwd)/deps/mod-plugin-builder/bootstrap.sh modduo-static minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh modduo-static - #- name: Build for modduo - #run: | - #CFLAGS="-ffat-lto-objects" CXXFLAGS="-ffat-lto-objects" make modduo HAVE_LIBLO=true HEADLESS=true WITH_LTO=true -j $(nproc) - #- name: Pack binaries - #run: | - #tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-modduo-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep lv2) - #- uses: actions/upload-artifact@v2 - #with: - #name: ${{ github.event.repository.name }}-modduo-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }} - #path: | - #*.tar.gz + - name: Build for modduo + run: | + make modduo HEADLESS=true MOD_BUILD=true WITH_LTO=true -j $(nproc) + - name: Pack binaries + run: | + tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-modduo-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep lv2) + - uses: actions/upload-artifact@v2 + with: + name: ${{ github.event.repository.name }}-modduo-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }} + path: | + *.tar.gz modduox: runs-on: ubuntu-20.04 @@ -338,6 +340,7 @@ jobs: submodules: recursive - name: Set up cache uses: actions/cache@v2 + id: mpb-cache with: path: | ~/mod-workdir @@ -345,23 +348,24 @@ jobs: - name: Set up dependencies run: | sudo apt-get update -qq - sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin + sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev - name: Bootstrap toolchain + if: steps.mpb-cache.outputs.cache-hit != 'true' run: | git clone --depth=1 https://github.com/moddevices/mod-plugin-builder.git deps/mod-plugin-builder sed -i "s/CT_LOG_PROGRESS_BAR=y/CT_LOG_PROGRESS_BAR=n/" deps/mod-plugin-builder/toolchain/*.config $(pwd)/deps/mod-plugin-builder/bootstrap.sh modduox-static minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh modduox-static - #- name: Build for modduox - #run: | - #CFLAGS="-ffat-lto-objects" CXXFLAGS="-ffat-lto-objects" make modduox HAVE_LIBLO=true HEADLESS=true WITH_LTO=true -j $(nproc) - #- name: Pack binaries - #run: | - #tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-modduox-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep lv2) - #- uses: actions/upload-artifact@v2 - #with: - #name: ${{ github.event.repository.name }}-modduox-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }} - #path: | - #*.tar.gz + - name: Build for modduox + run: | + make modduox HEADLESS=true MOD_BUILD=true WITH_LTO=true -j $(nproc) + - name: Pack binaries + run: | + tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-modduox-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep lv2) + - uses: actions/upload-artifact@v2 + with: + name: ${{ github.event.repository.name }}-modduox-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }} + path: | + *.tar.gz moddwarf: runs-on: ubuntu-20.04 @@ -371,6 +375,7 @@ jobs: submodules: recursive - name: Set up cache uses: actions/cache@v2 + id: mpb-cache with: path: | ~/mod-workdir @@ -378,23 +383,24 @@ jobs: - name: Set up dependencies run: | sudo apt-get update -qq - sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin + sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev - name: Bootstrap toolchain + if: steps.mpb-cache.outputs.cache-hit != 'true' run: | git clone --depth=1 https://github.com/moddevices/mod-plugin-builder.git deps/mod-plugin-builder sed -i "s/CT_LOG_PROGRESS_BAR=y/CT_LOG_PROGRESS_BAR=n/" deps/mod-plugin-builder/toolchain/*.config $(pwd)/deps/mod-plugin-builder/bootstrap.sh moddwarf minimal && $(pwd)/deps/mod-plugin-builder/.clean-install.sh moddwarf - #- name: Build for moddwarf - #run: | - #CFLAGS="-ffat-lto-objects" CXXFLAGS="-ffat-lto-objects" make moddwarf HAVE_LIBLO=true HEADLESS=true WITH_LTO=true -j $(nproc) - #- name: Pack binaries - #run: | - #tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-moddwarf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep lv2) - #- uses: actions/upload-artifact@v2 - #with: - #name: ${{ github.event.repository.name }}-moddwarf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }} - #path: | - #*.tar.gz + - name: Build for moddwarf + run: | + make moddwarf HEADLESS=true MOD_BUILD=true WITH_LTO=true -j $(nproc) + - name: Pack binaries + run: | + tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-moddwarf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep lv2) + - uses: actions/upload-artifact@v2 + with: + name: ${{ github.event.repository.name }}-moddwarf-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }} + path: | + *.tar.gz win32: runs-on: ubuntu-20.04 diff --git a/deps/Makefile b/deps/Makefile index b1bef049..9f4fa0c2 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -18,6 +18,12 @@ BASE_FLAGS += -DZSTDLIB_VISIBILITY= BASE_FLAGS += -I../include BASE_FLAGS += -I../include/neon-compat +ifeq ($(HEADLESS),true) +ifeq ($(WITH_LTO),true) +BASE_FLAGS += -ffat-lto-objects +endif +endif + ifeq ($(WASM),true) BASE_FLAGS += -msse -msse2 -msse3 -msimd128 else diff --git a/plugins/Makefile b/plugins/Makefile index 01f7268b..cf4e79e1 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -748,6 +748,9 @@ endif ifeq ($(HEADLESS),true) BASE_FLAGS += -DHEADLESS +ifeq ($(WITH_LTO),true) +BASE_FLAGS += -ffat-lto-objects +endif endif ifeq ($(WASM),true) diff --git a/src/Makefile b/src/Makefile index 1b821c43..c6292df0 100644 --- a/src/Makefile +++ b/src/Makefile @@ -62,6 +62,9 @@ endif ifeq ($(HEADLESS),true) BASE_FLAGS += -DHEADLESS +ifeq ($(WITH_LTO),true) +BASE_FLAGS += -ffat-lto-objects +endif endif ifeq ($(WASM),true) diff --git a/src/Makefile.cardinal.mk b/src/Makefile.cardinal.mk index 9ea22c55..9f7b03c5 100644 --- a/src/Makefile.cardinal.mk +++ b/src/Makefile.cardinal.mk @@ -159,6 +159,9 @@ BASE_FLAGS += -pthread ifeq ($(HEADLESS),true) BASE_FLAGS += -DHEADLESS +ifeq ($(WITH_LTO),true) +BASE_FLAGS += -ffat-lto-objects +endif endif ifeq ($(WASM),true) @@ -280,6 +283,10 @@ endif endif # CardinalFX +ifeq ($(MOD_BUILD),true) +all: lv2 resources +endif + # -------------------------------------------------------------- resources: $(PLUGIN_RESOURCES)