CI: streamline compilation commands
— add “-s” to LDFLAGS instead of manually calling strip — on GNU/Linux, do not pass “-static” to LDFLAGS. We can dynamically link against glibc, since in Artifacts.toml we explicitly mention that we compile for a glibc system (and not musl) — use --host=i686-linux-gnu to compile for GNU/Linux 32-bit, instead of passing “-m32” N.B.: Under Debian, g++-i686-linux-gnu must be installed. Otherwise this will silently use the 64-bit compiler — for symmetry, use --host=x86_64-linux-gnu for GNU/Linux 64-bit — on macOS, pass “-static-libgcc” through LDFLAGS rather than CXXFLAGS; this requires setting CC to gcc-10 — use better names for the jobsissue#70
parent
e6194afd7b
commit
9f6df25a52
|
@ -9,33 +9,31 @@ stages:
|
|||
- build
|
||||
- deploy
|
||||
|
||||
build_linux_32:
|
||||
build_linux_i686:
|
||||
stage: build
|
||||
script:
|
||||
- autoreconf -si
|
||||
- './configure LDFLAGS="-m32 -static -static-libgcc -static-libstdc++" CXXFLAGS=-m32'
|
||||
- './configure --host=i686-linux-gnu LDFLAGS="-static-libstdc++ -static-libgcc -s"'
|
||||
- make -j$(nproc)
|
||||
- strip src/dynare-preprocessor
|
||||
- mkdir -p $CI_COMMIT_SHA/linux-i686
|
||||
- tar -caf $CI_COMMIT_SHA/linux-i686/dynare-preprocessor.tar.gz -C src dynare-preprocessor
|
||||
artifacts:
|
||||
paths:
|
||||
- $CI_COMMIT_SHA/linux-i686/*
|
||||
|
||||
build_linux_64:
|
||||
build_linux_x86_64:
|
||||
stage: build
|
||||
script:
|
||||
- autoreconf -si
|
||||
- './configure LDFLAGS="-static -static-libgcc -static-libstdc++"'
|
||||
- './configure --host=x86_64-linux-gnu LDFLAGS="-static-libstdc++ -static-libgcc -s"'
|
||||
- make -j$(nproc)
|
||||
- strip src/dynare-preprocessor
|
||||
- mkdir -p $CI_COMMIT_SHA/linux-x86_64
|
||||
- tar -caf $CI_COMMIT_SHA/linux-x86_64/dynare-preprocessor.tar.gz -C src dynare-preprocessor
|
||||
artifacts:
|
||||
paths:
|
||||
- $CI_COMMIT_SHA/linux-x86_64/*
|
||||
|
||||
build_windows_32:
|
||||
build_windows_i686:
|
||||
stage: build
|
||||
script:
|
||||
- mkdir -p ~/tarballs
|
||||
|
@ -43,16 +41,15 @@ build_windows_32:
|
|||
- mkdir -p deps
|
||||
- tar xf ~/tarballs/mingw-w64-i686-boost-$MINGW32_BOOST_VERSION-any.pkg.tar.zst --directory deps
|
||||
- autoreconf -si
|
||||
- './configure --host=i686-w64-mingw32 --with-boost=$(pwd)/deps/mingw32/include LDFLAGS="-static -static-libgcc -static-libstdc++"'
|
||||
- './configure --host=i686-w64-mingw32 --with-boost=$(pwd)/deps/mingw32/include LDFLAGS="-static -static-libgcc -static-libstdc++ -s"'
|
||||
- make -j$(nproc)
|
||||
- i686-w64-mingw32-strip src/dynare-preprocessor.exe
|
||||
- mkdir -p $CI_COMMIT_SHA/windows-i686
|
||||
- tar -caf $CI_COMMIT_SHA/windows-i686/dynare-preprocessor.tar.gz -C src dynare-preprocessor.exe
|
||||
artifacts:
|
||||
paths:
|
||||
- $CI_COMMIT_SHA/windows-i686/*
|
||||
|
||||
build_windows_64:
|
||||
build_windows_x86_64:
|
||||
stage: build
|
||||
script:
|
||||
- mkdir -p ~/tarballs
|
||||
|
@ -60,24 +57,22 @@ build_windows_64:
|
|||
- mkdir -p deps
|
||||
- tar xf ~/tarballs/mingw-w64-x86_64-boost-$MINGW64_BOOST_VERSION-any.pkg.tar.zst --directory deps
|
||||
- autoreconf -si
|
||||
- './configure --host=x86_64-w64-mingw32 --with-boost=$(pwd)/deps/mingw64/include LDFLAGS="-static -static-libgcc -static-libstdc++"'
|
||||
- './configure --host=x86_64-w64-mingw32 --with-boost=$(pwd)/deps/mingw64/include LDFLAGS="-static -static-libgcc -static-libstdc++ -s"'
|
||||
- make -j$(nproc)
|
||||
- x86_64-w64-mingw32-strip src/dynare-preprocessor.exe
|
||||
- mkdir -p $CI_COMMIT_SHA/windows-x86_64
|
||||
- tar -caf $CI_COMMIT_SHA/windows-x86_64/dynare-preprocessor.tar.gz -C src dynare-preprocessor.exe
|
||||
artifacts:
|
||||
paths:
|
||||
- $CI_COMMIT_SHA/windows-x86_64/*
|
||||
|
||||
build_macOS:
|
||||
build_macos_x86_64:
|
||||
stage: build
|
||||
tags:
|
||||
- macOS
|
||||
script:
|
||||
- autoreconf -si
|
||||
- './configure CXX=g++-10 CXXFLAGS=-static-libgcc LEX=/usr/local/opt/flex/bin/flex YACC=/usr/local/opt/bison/bin/bison'
|
||||
- './configure CC=gcc-10 CXX=g++-10 LDFLAGS="-static-libgcc -s" LEX=/usr/local/opt/flex/bin/flex YACC=/usr/local/opt/bison/bin/bison'
|
||||
- make -j$(nproc)
|
||||
- strip src/dynare-preprocessor
|
||||
- mkdir -p $CI_COMMIT_SHA/macos-x86_64
|
||||
- tar -caf $CI_COMMIT_SHA/macos-x86_64/dynare-preprocessor.tar.gz -C src dynare-preprocessor
|
||||
artifacts:
|
||||
|
|
Loading…
Reference in New Issue