BUILDBOT: Add macros to define environment more concisely

This commit is contained in:
Le Philousophe
2019-09-23 20:25:51 +00:00
parent 8f4eca1f87
commit e4255d8461
14 changed files with 140 additions and 145 deletions
+15 -1
View File
@@ -1,5 +1,19 @@
m4_divert(`-1')
m4_define(`fatal_error',
`m4_errprint(m4_ifdef(`m4___program__', `m4___program__', ``m4'')'m4_dnl
`:m4_ifelse(m4___line__, `0', `',
`m4___file__:m4___line__:')` fatal error: $*
')m4_m4exit(`1')')m4_dnl
')m4_m4exit(`1')')
m4_dnl foreachq(x, `item_1, item_2, ..., item_n', stmt)
m4_dnl quoted list, alternate improved version
m4_define(`m4_foreachq', `m4_ifelse(`$2', `', `',
`m4_pushdef(`$1')_$0(`$1', `$3', `', $2)m4_popdef(`$1')')')
m4_define(`_m4_foreachq', `m4_ifelse(`$#', `3', `',
`m4_define(`$1', `$4')$2`'$0(`$1', `$2',
m4_shift(m4_shift(m4_shift($@))))')')
m4_define(`environmentalize', `m4_translit(`$*', `a-z+-', `A-ZX_')')
m4_divert`'m4_dnl
+7 -2
View File
@@ -1,4 +1,9 @@
m4_divert(`-1')
m4_define(`local_package', COPY packages/$1 lib-helpers/packages/$1/
RUN $3 lib-helpers/packages/$1/build.sh $2)m4_dnl
RUN $3 lib-helpers/packages/$1/build.sh $2)
m4_define(`helpers_package', COPY --from=helpers /lib-helpers/packages/$1 lib-helpers/packages/$1/
RUN $3 lib-helpers/packages/$1/build.sh $2)m4_dnl
RUN $3 lib-helpers/packages/$1/build.sh $2)
m4_divert`'m4_dnl
+8
View File
@@ -0,0 +1,8 @@
m4_divert(`-1')
m4_define(`def_binaries', `m4_foreachq(`binary', `$2',`environmentalize(binary)=`$1'binary ')')
m4_define(`def_aclocal', `ACLOCAL_PATH=`$1'/share/aclocal')
m4_define(`def_pkg_config', `PKG_CONFIG_LIBDIR=`$1'/lib PKG_CONFIG_PATH=`$1'/lib/pkgconfig')
m4_divert`'m4_dnl
+12 -15
View File
@@ -1,5 +1,7 @@
FROM toolchains/common AS helpers
m4_include(`paths.m4')m4_dnl
m4_include(`packages.m4')m4_dnl
FROM debian:stable-slim
@@ -47,22 +49,17 @@ local_package(toolchain)
local_package(sdl_psl1ght)
# Define everything at the end because toolchain and sdl_psl1ght handle everything themselves already
ENV HOST=powerpc64-ps3-elf PREFIX=$PS3DEV/ppu
# Define everything now because toolchain and sdl_psl1ght handle everything themselves already
ENV HOST=powerpc64-ps3-elf PREFIX=$PS3DEV/portlibs/ppu
# We add PATH here for *-config and platform specific binaries
ENV \
ACLOCAL_PATH=$PS3DEV/portlibs/ppu/share/aclocal \
PKG_CONFIG_LIBDIR=$PS3DEV/portlibs/ppu/lib \
PKG_CONFIG_PATH=$PS3DEV/portlibs/ppu/lib/pkgconfig \
CC=$PREFIX/bin/$HOST-gcc \
CPP=$PREFIX/bin/$HOST-cpp \
CXX=$PREFIX/bin/$HOST-c++ \
AR=$PREFIX/bin/$HOST-ar \
AS=$PREFIX/bin/$HOST-as \
CXXFILT=$PREFIX/bin/$HOST-c++filt \
LD=$PREFIX/bin/$HOST-ld \
RANLIB=$PREFIX/bin/$HOST-ranlib \
STRIP=$PREFIX/bin/$HOST-strip \
STRINGS=$PREFIX/bin/$HOST-strings
def_binaries(`${PS3DEV}/ppu/bin/${HOST}-', `ar, as, c++filt, ld, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`${PS3DEV}/ppu/bin/${HOST}-', `gcc, cpp, c++') \
CC=${PS3DEV}/ppu/bin/${HOST}-gcc \
def_aclocal(`${PREFIX}') \
def_pkg_config(`${PREFIX}') \
PATH=$PATH:${PS3DEV}/bin:${PS3DEV}/ppu/bin:${PS3DEV}/spu/bin:${PS3DEV}/portlibs/ppu/bin
helpers_package(mpeg2dec)
+9 -14
View File
@@ -1,5 +1,7 @@
FROM toolchains/common AS helpers
m4_include(`paths.m4')m4_dnl
m4_include(`packages.m4')m4_dnl
FROM debian:stable-slim
@@ -46,18 +48,11 @@ COPY --from=helpers /lib-helpers/functions.sh lib-helpers/
local_package(toolchain)
# We add PATH here for *-config and platform specific binaries
ENV \
ACLOCAL_PATH=$PREFIX/share/aclocal \
PKG_CONFIG_LIBDIR=$PREFIX/lib \
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \
PATH=$PATH:$PSPDEV/bin:$PREFIX/bin \
CC=$PSPDEV/bin/$HOST-gcc \
CPP=$PSPDEV/bin/$HOST-cpp \
CXX=$PSPDEV/bin/$HOST-c++ \
AR=$PSPDEV/bin/$HOST-ar \
AS=$PSPDEV/bin/$HOST-as \
CXXFILT=$PSPDEV/bin/$HOST-c++filt \
LD=$PSPDEV/bin/$HOST-ld \
RANLIB=$PSPDEV/bin/$HOST-ranlib \
STRIP=$PSPDEV/bin/$HOST-strip \
STRINGS=$PSPDEV/bin/$HOST-strings
def_binaries(`${PSPDEV}/bin/${HOST}-', `ar, as, c++filt, ld, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`${PSPDEV}/bin/${HOST}-', `gcc, cpp, c++') \
CC=${PSPDEV}/bin/${HOST}-gcc \
def_aclocal(`${PREFIX}') \
def_pkg_config(`${PREFIX}') \
PATH=$PATH:${PSPDEV}/bin:${PREFIX}/bin
+9 -14
View File
@@ -1,5 +1,7 @@
FROM toolchains/common AS helpers
m4_include(`paths.m4')m4_dnl
m4_include(`packages.m4')m4_dnl
FROM debian:stable-slim
@@ -26,21 +28,14 @@ COPY functions-platform.sh lib-helpers/
local_package(toolchain)
# We add PATH here for *-config and platform specific binaries
ENV \
ACLOCAL_PATH=$PREFIX/share/aclocal \
PKG_CONFIG_LIBDIR=$PREFIX/lib \
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \
CC=$VITASDK/bin/$HOST-gcc \
CPP=$VITASDK/bin/$HOST-cpp \
CXX=$VITASDK/bin/$HOST-c++ \
AR=$VITASDK/bin/$HOST-ar \
AS=$VITASDK/bin/$HOST-as \
CXXFILT=$VITASDK/bin/$HOST-c++filt \
GPROF=$VITASDK/bin/$HOST-gprof \
LD=$VITASDK/bin/$HOST-ld \
RANLIB=$VITASDK/bin/$HOST-ranlib \
STRIP=$VITASDK/bin/$HOST-strip \
STRINGS=$VITASDK/bin/$HOST-strings
def_binaries(`${VITASDK}/bin/${HOST}-', `ar, as, c++filt, ld, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`${VITASDK}/bin/${HOST}-', `gcc, cpp, c++') \
CC=${VITASDK}/bin/${HOST}-gcc \
def_aclocal(`${PREFIX}') \
def_pkg_config(`${PREFIX}') \
PATH=$PATH:${VITASDK}/bin:${PREFIX}/bin
local_package(zlib)
+11 -18
View File
@@ -1,5 +1,7 @@
FROM toolchains/common AS helpers
m4_include(`paths.m4')m4_dnl
m4_include(`packages.m4')m4_dnl
FROM debian:stable-slim
@@ -20,25 +22,16 @@ RUN apt-get update && \
rm $PREFIX/lib/libz.dll.a
# Remove dynamic zlib as we never want to link dynamically with it
# We add PATH here for *-config and platform specific binaries
ENV \
ACLOCAL_PATH=$PREFIX/share/aclocal \
PKG_CONFIG_LIBDIR=$PREFIX/lib \
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \
CC=/usr/bin/$HOST-gcc \
CPP=/usr/bin/$HOST-cpp \
CXX=/usr/bin/$HOST-c++ \
AR=/usr/bin/$HOST-ar \
AS=/usr/bin/$HOST-as \
CXXFILT=/usr/bin/$HOST-c++filt \
GPROF=/usr/bin/$HOST-gprof \
LD=/usr/bin/$HOST-ld \
PKG_CONFIG=/usr/bin/$HOST-pkg-config \
RANLIB=/usr/bin/$HOST-ranlib \
STRIP=/usr/bin/$HOST-strip \
STRINGS=/usr/bin/$HOST-strings \
WIDL=/usr/bin/$HOST-widl \
WINDMC=/usr/bin/$HOST-windmc \
WINDRES=/usr/bin/$HOST-windres
def_binaries(`/usr/bin/${HOST}-', `ar, as, c++filt, ld, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`/usr/bin/${HOST}-', `widl, windmc, windres') \
def_binaries(`/usr/bin/${HOST}-', `gcc, cpp, c++') \
def_binaries(`/usr/bin/${HOST}-', `pkg-config') \
CC=/usr/bin/${HOST}-gcc \
def_aclocal(`${PREFIX}') \
def_pkg_config(`${PREFIX}') \
PATH=$PATH:${PREFIX}/bin
# Copy and execute each step separately to avoid invalidating cache
COPY --from=helpers /lib-helpers/prepare.sh lib-helpers/
+15 -1
View File
@@ -1,5 +1,19 @@
m4_divert(`-1')
m4_define(`fatal_error',
`m4_errprint(m4_ifdef(`m4___program__', `m4___program__', ``m4'')'m4_dnl
`:m4_ifelse(m4___line__, `0', `',
`m4___file__:m4___line__:')` fatal error: $*
')m4_m4exit(`1')')m4_dnl
')m4_m4exit(`1')')
m4_dnl foreachq(x, `item_1, item_2, ..., item_n', stmt)
m4_dnl quoted list, alternate improved version
m4_define(`m4_foreachq', `m4_ifelse(`$2', `', `',
`m4_pushdef(`$1')_$0(`$1', `$3', `', $2)m4_popdef(`$1')')')
m4_define(`_m4_foreachq', `m4_ifelse(`$#', `3', `',
`m4_define(`$1', `$4')$2`'$0(`$1', `$2',
m4_shift(m4_shift(m4_shift($@))))')')
m4_define(`environmentalize', `m4_translit(`$*', `a-z+-', `A-ZX_')')
m4_divert`'m4_dnl
+8
View File
@@ -0,0 +1,8 @@
m4_divert(`-1')
m4_define(`def_binaries', `m4_foreachq(`binary', `$2',`environmentalize(binary)=`$1'binary ')')
m4_define(`def_aclocal', `ACLOCAL_PATH=`$1'/share/aclocal')
m4_define(`def_pkg_config', `PKG_CONFIG_LIBDIR=`$1'/lib PKG_CONFIG_PATH=`$1'/lib/pkgconfig')
m4_divert`'m4_dnl
+10 -16
View File
@@ -1,9 +1,11 @@
FROM toolchains/ps3 AS toolchain
m4_include(`paths.m4')m4_dnl
m4_include(`debian-builder-base.m4')m4_dnl
ENV PS3DEV=/usr/local/ps3dev HOST=powerpc64-ps3-elf
ENV PSL1GHT=$PS3DEV PREFIX=$PS3DEV/ppu
ENV PSL1GHT=$PS3DEV PREFIX=$PS3DEV/portlibs/ppu
# Add libraries needed by toolchain to run
# Currently libgmp libssl zlib and python are already installed so don't add them
@@ -15,21 +17,13 @@ RUN apt-get update && \
COPY --from=toolchain $PS3DEV $PS3DEV/
# We add PATH here for *-config and psp specific binaries
# We add PATH here for *-config and platform specific binaries
ENV \
ACLOCAL_PATH=$PS3DEV/portlibs/ppu/share/aclocal \
PKG_CONFIG_LIBDIR=$PS3DEV/portlibs/ppu/lib \
PKG_CONFIG_PATH=$PS3DEV/portlibs/ppu/lib/pkgconfig \
PATH=$PATH:$PS3DEV/bin:$PS3DEV/ppu/bin:$PS3DEV/spu/bin:$PS3DEV/portlibs/ppu/bin \
CC=$PREFIX/bin/$HOST-gcc \
CPP=$PREFIX/bin/$HOST-cpp \
CXX=$PREFIX/bin/$HOST-c++ \
AR=$PREFIX/bin/$HOST-ar \
AS=$PREFIX/bin/$HOST-as \
CXXFILT=$PREFIX/bin/$HOST-c++filt \
LD=$PREFIX/bin/$HOST-ld \
RANLIB=$PREFIX/bin/$HOST-ranlib \
STRIP=$PREFIX/bin/$HOST-strip \
STRINGS=$PREFIX/bin/$HOST-strings
def_binaries(`${PS3DEV}/ppu/bin/${HOST}-', `ar, as, c++filt, ld, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`${PS3DEV}/ppu/bin/${HOST}-', `gcc, cpp, c++') \
CC=${PS3DEV}/ppu/bin/${HOST}-gcc \
def_aclocal(`${PREFIX}') \
def_pkg_config(`${PREFIX}') \
PATH=$PATH:${PS3DEV}/bin:${PS3DEV}/ppu/bin:${PS3DEV}/spu/bin:${PS3DEV}/portlibs/ppu/bin
m4_include(`run-buildbot.m4')m4_dnl
+9 -15
View File
@@ -1,5 +1,7 @@
FROM toolchains/psp AS toolchain
m4_include(`paths.m4')m4_dnl
m4_include(`debian-builder-base.m4')m4_dnl
ENV PSPDEV=/usr/local/pspdev HOST=psp
@@ -7,21 +9,13 @@ ENV PREFIX=$PSPDEV/$HOST
COPY --from=toolchain $PSPDEV $PSPDEV/
# We add PATH here for *-config and psp specific binaries
# We add PATH here for *-config and platform specific binaries
ENV \
ACLOCAL_PATH=$PREFIX/share/aclocal \
PKG_CONFIG_LIBDIR=$PREFIX/lib \
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \
PATH=$PATH:$PSPDEV/bin:$PREFIX/bin \
CC=$PSPDEV/bin/$HOST-gcc \
CPP=$PSPDEV/bin/$HOST-cpp \
CXX=$PSPDEV/bin/$HOST-c++ \
AR=$PSPDEV/bin/$HOST-ar \
AS=$PSPDEV/bin/$HOST-as \
CXXFILT=$PSPDEV/bin/$HOST-c++filt \
LD=$PSPDEV/bin/$HOST-ld \
RANLIB=$PSPDEV/bin/$HOST-ranlib \
STRIP=$PSPDEV/bin/$HOST-strip \
STRINGS=$PSPDEV/bin/$HOST-strings
def_binaries(`${PSPDEV}/bin/${HOST}-', `ar, as, c++filt, ld, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`${PSPDEV}/bin/${HOST}-', `gcc, cpp, c++') \
CC=${PSPDEV}/bin/${HOST}-gcc \
def_aclocal(`${PREFIX}') \
def_pkg_config(`${PREFIX}') \
PATH=$PATH:${PSPDEV}/bin:${PREFIX}/bin
m4_include(`run-buildbot.m4')m4_dnl
+7 -13
View File
@@ -1,3 +1,5 @@
m4_include(`paths.m4')m4_dnl
m4_include(`debian-builder-base.m4')m4_dnl
RUN dpkg --add-architecture armhf && \
@@ -28,19 +30,11 @@ ENV RPI_ROOT=/
ENV HOST=arm-linux-gnueabihf
ENV \
ACLOCAL_PATH=/usr/share/aclocal \
def_binaries(`/usr/bin/${HOST}-', `ar, as, c++filt, ld, link, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`/usr/bin/${HOST}-', `gcc, cpp, c++') \
CC=/usr/bin/${HOST}-gcc \
def_aclocal(`/usr') \
PKG_CONFIG_LIBDIR=/usr/lib/$HOST \
PKG_CONFIG_PATH=/usr/lib/$HOST/pkgconfig \
CC=/usr/bin/$HOST-gcc \
CPP=/usr/bin/$HOST-cpp \
CXX=/usr/bin/$HOST-c++ \
AR=/usr/bin/$HOST-ar \
AS=/usr/bin/$HOST-as \
CXXFILT=/usr/bin/$HOST-c++filt \
GPROF=/usr/bin/$HOST-gprof \
LD=/usr/bin/$HOST-ld \
RANLIB=/usr/bin/$HOST-ranlib \
STRIP=/usr/bin/$HOST-strip \
STRINGS=/usr/bin/$HOST-strings
PKG_CONFIG_PATH=/usr/lib/$HOST/pkgconfig
m4_include(`run-buildbot.m4')m4_dnl
+9 -16
View File
@@ -1,5 +1,7 @@
FROM toolchains/vita AS toolchain
m4_include(`paths.m4')m4_dnl
m4_include(`debian-builder-base.m4')m4_dnl
ENV VITASDK=/usr/local/vitasdk HOST=arm-vita-eabi
@@ -14,22 +16,13 @@ RUN apt-get update && \
COPY --from=toolchain $VITASDK $VITASDK/
# We add PATH here for *-config and vita specific binaries
# We add PATH here for *-config and platform specific binaries
ENV \
ACLOCAL_PATH=$PREFIX/share/aclocal \
PKG_CONFIG_LIBDIR=$PREFIX/lib \
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \
PATH=$PATH:$VITASDK/bin:$PREFIX/bin \
CC=$VITASDK/bin/$HOST-gcc \
CPP=$VITASDK/bin/$HOST-cpp \
CXX=$VITASDK/bin/$HOST-c++ \
AR=$VITASDK/bin/$HOST-ar \
AS=$VITASDK/bin/$HOST-as \
CXXFILT=$VITASDK/bin/$HOST-c++filt \
GPROF=$VITASDK/bin/$HOST-gprof \
LD=$VITASDK/bin/$HOST-ld \
RANLIB=$VITASDK/bin/$HOST-ranlib \
STRIP=$VITASDK/bin/$HOST-strip \
STRINGS=$VITASDK/bin/$HOST-strings
def_binaries(`${VITASDK}/bin/${HOST}-', `ar, as, c++filt, ld, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`${VITASDK}/bin/${HOST}-', `gcc, cpp, c++') \
CC=${VITASDK}/bin/${HOST}-gcc \
def_aclocal(`${PREFIX}') \
def_pkg_config(`${PREFIX}') \
PATH=$PATH:${VITASDK}/bin:${PREFIX}/bin
m4_include(`run-buildbot.m4')m4_dnl
+11 -20
View File
@@ -1,5 +1,7 @@
FROM toolchains/windows-x86_64 AS toolchain
m4_include(`paths.m4')m4_dnl
m4_include(`debian-builder-base.m4')m4_dnl
ENV PREFIX=/usr/x86_64-w64-mingw32 HOST=x86_64-w64-mingw32
@@ -17,26 +19,15 @@ RUN apt-get update && \
COPY --from=toolchain /toolchain/$PREFIX $PREFIX/
# We add PATH here for *-config binaries
# We add PATH here for *-config and platform specific binaries
ENV \
ACLOCAL_PATH=$PREFIX/share/aclocal \
PKG_CONFIG_LIBDIR=$PREFIX/lib \
PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \
PATH=$PATH:$PREFIX/bin \
CC=/usr/bin/$HOST-gcc \
CPP=/usr/bin/$HOST-cpp \
CXX=/usr/bin/$HOST-c++ \
AR=/usr/bin/$HOST-ar \
AS=/usr/bin/$HOST-as \
CXXFILT=/usr/bin/$HOST-c++filt \
GPROF=/usr/bin/$HOST-gprof \
LD=/usr/bin/$HOST-ld \
PKG_CONFIG=/usr/bin/$HOST-pkg-config \
RANLIB=/usr/bin/$HOST-ranlib \
STRIP=/usr/bin/$HOST-strip \
STRINGS=/usr/bin/$HOST-strings \
WIDL=/usr/bin/$HOST-widl \
WINDMC=/usr/bin/$HOST-windmc \
WINDRES=/usr/bin/$HOST-windres
def_binaries(`/usr/bin/${HOST}-', `ar, as, c++filt, ld, nm, objcopy, objdump, ranlib, readelf, strings, strip') \
def_binaries(`/usr/bin/${HOST}-', `widl, windmc, windres') \
def_binaries(`/usr/bin/${HOST}-', `gcc, cpp, c++') \
def_binaries(`/usr/bin/${HOST}-', `pkg-config') \
CC=/usr/bin/${HOST}-gcc \
def_aclocal(`${PREFIX}') \
def_pkg_config(`${PREFIX}') \
PATH=$PATH:${PREFIX}/bin
m4_include(`run-buildbot.m4')m4_dnl