Make use of build-args and one Dockerfile instead of multiple
This commit is contained in:
parent
af2aa2a2b9
commit
5fe3c30b1c
|
@ -1,9 +1,12 @@
|
||||||
FROM amigadev/morphos-cross-toolchain:warpos as build-env
|
ARG BUILD_OS
|
||||||
|
ARG BUILD_PFX
|
||||||
|
|
||||||
|
FROM amigadev/${BUILD_PFX}:latest as build-env
|
||||||
|
|
||||||
FROM amigadev/docker-base:latest
|
FROM amigadev/docker-base:latest
|
||||||
|
|
||||||
ENV CROSS_PFX ppc-warpos
|
ENV CROSS_PFX ${BUILD_PFX}
|
||||||
ENV OS_NAME WarpOS
|
ENV OS_NAME ${BUILD_OS}
|
||||||
|
|
||||||
COPY --from=build-env /opt/${CROSS_PFX} /opt/${CROSS_PFX}
|
COPY --from=build-env /opt/${CROSS_PFX} /opt/${CROSS_PFX}
|
||||||
|
|
|
@ -4,29 +4,27 @@
|
||||||
"DockerRoot": "amigadev",
|
"DockerRoot": "amigadev",
|
||||||
"DockerImage": "crosstools",
|
"DockerImage": "crosstools",
|
||||||
"DockerTag": "m68k-amigaos",
|
"DockerTag": "m68k-amigaos",
|
||||||
"Dockerfile": "m68k-amigaos.docker",
|
"Dockerfile": "Dockerfile",
|
||||||
"BuildIfSuccessful": ""
|
"BuildIfSuccessful": "",
|
||||||
|
"BuildParam": "AmigaOS"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DockerRoot": "amigadev",
|
"DockerRoot": "amigadev",
|
||||||
"DockerImage": "crosstools",
|
"DockerImage": "crosstools",
|
||||||
"DockerTag": "ppc-amigaos",
|
"DockerTag": "ppc-amigaos",
|
||||||
"Dockerfile": "ppc-amigaos.docker",
|
"Dockerfile": "Dockerfile",
|
||||||
"BuildIfSuccessful": ""
|
"BuildIfSuccessful": "",
|
||||||
|
"BuildParam": "AmigaOS"
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DockerRoot": "amigadev",
|
"DockerRoot": "amigadev",
|
||||||
"DockerImage": "crosstools",
|
"DockerImage": "crosstools",
|
||||||
"DockerTag": "ppc-morphos",
|
"DockerTag": "ppc-morphos",
|
||||||
"Dockerfile": "ppc-morphos.docker",
|
"Dockerfile": "Dockerfile",
|
||||||
"BuildIfSuccessful": ""
|
"BuildIfSuccessful": "",
|
||||||
},
|
"BuildParam": "MorphOS"
|
||||||
{
|
|
||||||
"DockerRoot": "amigadev",
|
|
||||||
"DockerImage": "crosstools",
|
|
||||||
"DockerTag": "x86_64-aros",
|
|
||||||
"Dockerfile": "x86_64-aros.docker",
|
|
||||||
"BuildIfSuccessful": ""
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,37 +9,37 @@ def notify(status){
|
||||||
replyTo: '$DEFAULT_REPLYTO',
|
replyTo: '$DEFAULT_REPLYTO',
|
||||||
subject: '$DEFAULT_SUBJECT',
|
subject: '$DEFAULT_SUBJECT',
|
||||||
to: '$DEFAULT_RECIPIENTS'
|
to: '$DEFAULT_RECIPIENTS'
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonCPS
|
@NonCPS
|
||||||
def killall_jobs() {
|
def killall_jobs() {
|
||||||
def jobname = env.JOB_NAME
|
def jobname = env.JOB_NAME;
|
||||||
def buildnum = env.BUILD_NUMBER.toInteger()
|
def buildnum = env.BUILD_NUMBER.toInteger();
|
||||||
def killnums = ""
|
def killnums = "";
|
||||||
def job = Jenkins.instance.getItemByFullName(jobname)
|
def job = Jenkins.instance.getItemByFullName(jobname);
|
||||||
def fixed_job_name = env.JOB_NAME.replace('%2F','/')
|
def fixed_job_name = env.JOB_NAME.replace('%2F','/');
|
||||||
|
|
||||||
for (build in job.builds) {
|
for (build in job.builds) {
|
||||||
if (!build.isBuilding()) { continue; }
|
if (!build.isBuilding()) { continue; }
|
||||||
if (buildnum == build.getNumber().toInteger()) { continue; println "equals" }
|
if (buildnum == build.getNumber().toInteger()) { continue; println "equals" }
|
||||||
if (buildnum < build.getNumber().toInteger()) { continue; println "newer" }
|
if (buildnum < build.getNumber().toInteger()) { continue; println "newer" }
|
||||||
|
|
||||||
echo "Kill task = ${build}"
|
echo "Kill task = ${build}";
|
||||||
|
|
||||||
killnums += "#" + build.getNumber().toInteger() + ", "
|
killnums += "#" + build.getNumber().toInteger() + ", ";
|
||||||
|
|
||||||
build.doStop();
|
build.doStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (killnums != "") {
|
if (killnums != "") {
|
||||||
slackSend color: "danger", channel: "#jenkins", message: "Killing task(s) ${fixed_job_name} ${killnums} in favor of #${buildnum}, ignore following failed builds for ${killnums}"
|
slackSend color: "danger", channel: "#jenkins", message: "Killing task(s) ${fixed_job_name} ${killnums} in favor of #${buildnum}, ignore following failed builds for ${killnums}";
|
||||||
}
|
}
|
||||||
echo "Done killing"
|
echo "Done killing";
|
||||||
}
|
}
|
||||||
|
|
||||||
def buildStep(DOCKER_ROOT, DOCKERIMAGE, DOCKERTAG, DOCKERFILE, BUILD_NEXT) {
|
def buildStep(DOCKER_ROOT, DOCKERIMAGE, DOCKERTAG, DOCKERFILE, BUILD_NEXT, BUILD_OS) {
|
||||||
def fixed_job_name = env.JOB_NAME.replace('%2F','/')
|
def fixed_job_name = env.JOB_NAME.replace('%2F','/');
|
||||||
try {
|
try {
|
||||||
checkout scm;
|
checkout scm;
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ def buildStep(DOCKER_ROOT, DOCKERIMAGE, DOCKERTAG, DOCKERFILE, BUILD_NEXT) {
|
||||||
docker.withRegistry("https://index.docker.io/v1/", "dockerhub") {
|
docker.withRegistry("https://index.docker.io/v1/", "dockerhub") {
|
||||||
def customImage
|
def customImage
|
||||||
stage("Building ${DOCKERIMAGE}:${tag}...") {
|
stage("Building ${DOCKERIMAGE}:${tag}...") {
|
||||||
customImage = docker.build("${DOCKER_ROOT}/${DOCKERIMAGE}:${tag}", "--build-arg BUILDENV=${buildenv} --network=host --pull -f ${DOCKERFILE} .");
|
customImage = docker.build("${DOCKER_ROOT}/${DOCKERIMAGE}:${tag}", "--build-arg BUILDENV=${buildenv} --build-arg BUILD_OS=${BUILD_OS} --build-arg BUILD_PFX=${tag} --network=host --pull -f ${DOCKERFILE} .");
|
||||||
}
|
}
|
||||||
|
|
||||||
stage("Pushing to docker hub registry...") {
|
stage("Pushing to docker hub registry...") {
|
||||||
|
@ -90,14 +90,14 @@ node('master') {
|
||||||
|
|
||||||
checkout scm;
|
checkout scm;
|
||||||
|
|
||||||
def branches = [:]
|
def branches = [:];
|
||||||
def project = readJSON file: "JenkinsEnv.json";
|
def project = readJSON file: "JenkinsEnv.json";
|
||||||
|
|
||||||
if (BUILD_IMAGE.equals('all')) {
|
if (BUILD_IMAGE.equals('all')) {
|
||||||
project.builds.each { v ->
|
project.builds.each { v ->
|
||||||
branches["Build ${v.DockerRoot}/${v.DockerImage}:${v.DockerTag}"] = {
|
branches["Build ${v.DockerRoot}/${v.DockerImage}:${v.DockerTag}"] = {
|
||||||
node {
|
node {
|
||||||
buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.BuildIfSuccessful)
|
buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.BuildIfSuccessful, v.BuildParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -107,7 +107,7 @@ node('master') {
|
||||||
if ("${v.DockerTag}".equals("${BUILD_IMAGE}")) {
|
if ("${v.DockerTag}".equals("${BUILD_IMAGE}")) {
|
||||||
branches["Build ${v.DockerRoot}/${v.DockerImage}:${v.DockerTag}"] = {
|
branches["Build ${v.DockerRoot}/${v.DockerImage}:${v.DockerTag}"] = {
|
||||||
node {
|
node {
|
||||||
buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.BuildIfSuccessful)
|
buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.BuildIfSuccessful, v.BuildParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
16
README.md
16
README.md
|
@ -17,17 +17,17 @@ ## Supported toolchains
|
||||||
|
|
||||||
## Build the Docker container
|
## Build the Docker container
|
||||||
|
|
||||||
Example for AROSv1 x86_64
|
Example for AmigaOS 4.x toolchain:
|
||||||
|
```
|
||||||
|
docker build -t "amigadev/crosstools:ppc-amigaos" --build-arg BUILD_OS=AmigaOS --build-arg BUILD_PFX=ppc-amigaos -f Dockerfile .
|
||||||
|
```
|
||||||
|
For other toolchains, use the appropriate parameters:
|
||||||
|
|
||||||
docker build -t "amigadev/crosstools:x86_64-aros" --rm -f x86_64-aros.docker .
|
- AmigaOS 3.x (M680x0): `--build-arg BUILD_OS=AmigaOS --build-arg BUILD_PFX=m68k-amigaos`
|
||||||
|
|
||||||
For other toolchains, use the appropriate Dockerfile:
|
- AmigaOS 4.x (PPC): `--build-arg BUILD_OS=AmigaOS --build-arg BUILD_PFX=ppc-amigaos`
|
||||||
|
|
||||||
- AmigaOS 3.x (M680x0): m68k-amigaos.docker
|
- MorphOS (PPC): `--build-arg BUILD_OS=MorphOS --build-arg BUILD_PFX=ppc-morphos`
|
||||||
|
|
||||||
- AmigaOS 4.x (PPC): ppc-amigaos.docker
|
|
||||||
|
|
||||||
- MorphOS (PPC): ppc-morphos.docker
|
|
||||||
|
|
||||||
## Run the Docker container for compiling a third party application
|
## Run the Docker container for compiling a third party application
|
||||||
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
# START COMMON
|
|
||||||
MAINTAINER Marlon Beijer "marlon@amigadev.com"
|
|
||||||
RUN apt purge -y gcc g++ flex bison gettext texinfo binutils libgmp-dev libmpfr-dev libmpc-dev libncurses-dev && apt autoremove -y
|
|
||||||
RUN echo "root:root" | chpasswd
|
|
||||||
RUN ln -s /opt/${CROSS_PFX} /tools
|
|
||||||
ENV CROSS_ROOT /opt/${CROSS_PFX}
|
|
||||||
|
|
||||||
WORKDIR /work
|
|
||||||
ENTRYPOINT ["/entry/entrypoint.sh"]
|
|
||||||
|
|
||||||
COPY imagefiles/cmake.sh /usr/local/bin/cmake
|
|
||||||
COPY imagefiles/ccmake.sh /usr/local/bin/ccmake
|
|
||||||
COPY imagefiles/entrypoint.sh /entry/
|
|
||||||
|
|
||||||
ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \
|
|
||||||
LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \
|
|
||||||
AR=${CROSS_ROOT}/bin/${CROSS_PFX}-ar \
|
|
||||||
CC=${CROSS_ROOT}/bin/${CROSS_PFX}-gcc \
|
|
||||||
CXX=${CROSS_ROOT}/bin/${CROSS_PFX}-g++ \
|
|
||||||
RANLIB=${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib
|
|
||||||
|
|
||||||
RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ar /usr/bin/ar && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ld /usr/bin/ld && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-gcc /usr/bin/gcc && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-g++ /usr/bin/g++ && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib /usr/bin/ranlib
|
|
||||||
|
|
||||||
COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/
|
|
||||||
COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules
|
|
||||||
RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/
|
|
||||||
RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake
|
|
||||||
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake
|
|
||||||
ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr
|
|
||||||
ENV PATH ${PATH}:${CROSS_ROOT}/bin
|
|
||||||
# END COMMON
|
|
|
@ -1,48 +0,0 @@
|
||||||
FROM amigadev/m68k-amigaos-gcc:latest as build-env
|
|
||||||
|
|
||||||
FROM amigadev/docker-base:latest
|
|
||||||
|
|
||||||
ENV CROSS_PFX m68k-amigaos
|
|
||||||
ENV OS_NAME AmigaOS
|
|
||||||
|
|
||||||
# Temporary fix
|
|
||||||
COPY --from=build-env /opt/amiga /opt/${CROSS_PFX}
|
|
||||||
RUN ln -s /opt/${CROSS_PFX} /opt/amiga
|
|
||||||
|
|
||||||
# START COMMON
|
|
||||||
MAINTAINER Marlon Beijer "marlon@amigadev.com"
|
|
||||||
RUN apt update && apt install -y libtool automake autoconf && apt autoremove -y
|
|
||||||
RUN echo "root:root" | chpasswd
|
|
||||||
RUN chmod 777 -R /opt/${CROSS_PFX}
|
|
||||||
RUN ln -s /opt/${CROSS_PFX} /tools
|
|
||||||
ENV CROSS_ROOT /opt/${CROSS_PFX}
|
|
||||||
|
|
||||||
WORKDIR /work
|
|
||||||
ENTRYPOINT ["/entry/entrypoint.sh"]
|
|
||||||
|
|
||||||
COPY imagefiles/cmake.sh /usr/local/bin/cmake
|
|
||||||
COPY imagefiles/ccmake.sh /usr/local/bin/ccmake
|
|
||||||
COPY imagefiles/entrypoint.sh /entry/
|
|
||||||
|
|
||||||
ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \
|
|
||||||
LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \
|
|
||||||
AR=${CROSS_ROOT}/bin/${CROSS_PFX}-ar \
|
|
||||||
CC=${CROSS_ROOT}/bin/${CROSS_PFX}-gcc \
|
|
||||||
CXX=${CROSS_ROOT}/bin/${CROSS_PFX}-g++ \
|
|
||||||
RANLIB=${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib
|
|
||||||
|
|
||||||
RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ar /usr/bin/ar && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ld /usr/bin/ld && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-gcc /usr/bin/gcc && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-g++ /usr/bin/g++ && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib /usr/bin/ranlib
|
|
||||||
|
|
||||||
COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/
|
|
||||||
COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules
|
|
||||||
RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/
|
|
||||||
RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake
|
|
||||||
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake
|
|
||||||
ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr
|
|
||||||
ENV PATH ${PATH}:${CROSS_ROOT}/bin
|
|
||||||
# END COMMON
|
|
|
@ -1,46 +0,0 @@
|
||||||
FROM amigadev/adtools:latest as build-env
|
|
||||||
|
|
||||||
FROM amigadev/docker-base:latest
|
|
||||||
|
|
||||||
ENV CROSS_PFX ppc-amigaos
|
|
||||||
ENV OS_NAME AmigaOS
|
|
||||||
|
|
||||||
COPY --from=build-env /opt/${CROSS_PFX} /opt/${CROSS_PFX}
|
|
||||||
|
|
||||||
# START COMMON
|
|
||||||
MAINTAINER Marlon Beijer "marlon@amigadev.com"
|
|
||||||
RUN apt update && apt install -y libtool automake autoconf && apt autoremove -y
|
|
||||||
RUN echo "root:root" | chpasswd
|
|
||||||
RUN chmod 777 -R /opt/${CROSS_PFX}
|
|
||||||
RUN ln -s /opt/${CROSS_PFX} /tools
|
|
||||||
ENV CROSS_ROOT /opt/${CROSS_PFX}
|
|
||||||
|
|
||||||
WORKDIR /work
|
|
||||||
ENTRYPOINT ["/entry/entrypoint.sh"]
|
|
||||||
|
|
||||||
COPY imagefiles/cmake.sh /usr/local/bin/cmake
|
|
||||||
COPY imagefiles/ccmake.sh /usr/local/bin/ccmake
|
|
||||||
COPY imagefiles/entrypoint.sh /entry/
|
|
||||||
|
|
||||||
ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \
|
|
||||||
LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \
|
|
||||||
AR=${CROSS_ROOT}/bin/${CROSS_PFX}-ar \
|
|
||||||
CC=${CROSS_ROOT}/bin/${CROSS_PFX}-gcc \
|
|
||||||
CXX=${CROSS_ROOT}/bin/${CROSS_PFX}-g++ \
|
|
||||||
RANLIB=${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib
|
|
||||||
|
|
||||||
RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ar /usr/bin/ar && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ld /usr/bin/ld && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-gcc /usr/bin/gcc && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-g++ /usr/bin/g++ && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib /usr/bin/ranlib
|
|
||||||
|
|
||||||
COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/
|
|
||||||
COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules
|
|
||||||
RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/
|
|
||||||
RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake
|
|
||||||
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake
|
|
||||||
ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr
|
|
||||||
ENV PATH ${PATH}:${CROSS_ROOT}/bin
|
|
||||||
# END COMMON
|
|
|
@ -1,46 +0,0 @@
|
||||||
FROM amigadev/morphos-cross-toolchain:latest as build-env
|
|
||||||
|
|
||||||
FROM amigadev/docker-base:latest
|
|
||||||
|
|
||||||
ENV CROSS_PFX ppc-morphos
|
|
||||||
ENV OS_NAME MorphOS
|
|
||||||
|
|
||||||
COPY --from=build-env /opt/${CROSS_PFX} /opt/${CROSS_PFX}
|
|
||||||
|
|
||||||
# START COMMON
|
|
||||||
MAINTAINER Marlon Beijer "marlon@amigadev.com"
|
|
||||||
RUN apt update && apt install -y libtool automake autoconf && apt autoremove -y
|
|
||||||
RUN echo "root:root" | chpasswd
|
|
||||||
RUN chmod 777 -R /opt/${CROSS_PFX}
|
|
||||||
RUN ln -s /opt/${CROSS_PFX} /tools
|
|
||||||
ENV CROSS_ROOT /opt/${CROSS_PFX}
|
|
||||||
|
|
||||||
WORKDIR /work
|
|
||||||
ENTRYPOINT ["/entry/entrypoint.sh"]
|
|
||||||
|
|
||||||
COPY imagefiles/cmake.sh /usr/local/bin/cmake
|
|
||||||
COPY imagefiles/ccmake.sh /usr/local/bin/ccmake
|
|
||||||
COPY imagefiles/entrypoint.sh /entry/
|
|
||||||
|
|
||||||
ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \
|
|
||||||
LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \
|
|
||||||
AR=${CROSS_ROOT}/bin/${CROSS_PFX}-ar \
|
|
||||||
CC=${CROSS_ROOT}/bin/${CROSS_PFX}-gcc \
|
|
||||||
CXX=${CROSS_ROOT}/bin/${CROSS_PFX}-g++ \
|
|
||||||
RANLIB=${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib
|
|
||||||
|
|
||||||
RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ar /usr/bin/ar && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ld /usr/bin/ld && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-gcc /usr/bin/gcc && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-g++ /usr/bin/g++ && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib /usr/bin/ranlib
|
|
||||||
|
|
||||||
COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/
|
|
||||||
COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules
|
|
||||||
RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/
|
|
||||||
RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake
|
|
||||||
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake
|
|
||||||
ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr
|
|
||||||
ENV PATH ${PATH}:${CROSS_ROOT}/bin
|
|
||||||
# END COMMON
|
|
|
@ -1,46 +0,0 @@
|
||||||
FROM amigadev/arosv1-cross-toolchain:x86_64 as build-env
|
|
||||||
|
|
||||||
FROM amigadev/docker-base:latest
|
|
||||||
|
|
||||||
ENV CROSS_PFX x86_64-aros
|
|
||||||
ENV OS_NAME AROS
|
|
||||||
|
|
||||||
COPY --from=build-env /opt/${CROSS_PFX} /opt/${CROSS_PFX}
|
|
||||||
|
|
||||||
# START COMMON
|
|
||||||
MAINTAINER Marlon Beijer "marlon@amigadev.com"
|
|
||||||
RUN apt update && apt install -y libtool automake autoconf && apt autoremove -y
|
|
||||||
RUN echo "root:root" | chpasswd
|
|
||||||
RUN chmod 777 -R /opt/${CROSS_PFX}
|
|
||||||
RUN ln -s /opt/${CROSS_PFX} /tools
|
|
||||||
ENV CROSS_ROOT /opt/${CROSS_PFX}
|
|
||||||
|
|
||||||
WORKDIR /work
|
|
||||||
ENTRYPOINT ["/entry/entrypoint.sh"]
|
|
||||||
|
|
||||||
COPY imagefiles/cmake.sh /usr/local/bin/cmake
|
|
||||||
COPY imagefiles/ccmake.sh /usr/local/bin/ccmake
|
|
||||||
COPY imagefiles/entrypoint.sh /entry/
|
|
||||||
|
|
||||||
ENV AS=${CROSS_ROOT}/bin/${CROSS_PFX}-as \
|
|
||||||
LD=${CROSS_ROOT}/bin/${CROSS_PFX}-ld \
|
|
||||||
AR=${CROSS_ROOT}/bin/${CROSS_PFX}-ar \
|
|
||||||
CC=${CROSS_ROOT}/bin/${CROSS_PFX}-gcc \
|
|
||||||
CXX=${CROSS_ROOT}/bin/${CROSS_PFX}-g++ \
|
|
||||||
RANLIB=${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib
|
|
||||||
|
|
||||||
RUN ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-as /usr/bin/as && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ar /usr/bin/ar && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ld /usr/bin/ld && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-gcc /usr/bin/gcc && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-g++ /usr/bin/g++ && \
|
|
||||||
ln -sf ${CROSS_ROOT}/bin/${CROSS_PFX}-ranlib /usr/bin/ranlib
|
|
||||||
|
|
||||||
COPY dependencies/toolchains/${CROSS_PFX}.cmake ${CROSS_ROOT}/lib/
|
|
||||||
COPY dependencies/toolchains/Modules/${CROSS_PFX} /CMakeModules
|
|
||||||
RUN mv -fv /CMakeModules/* /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/
|
|
||||||
RUN ln -s /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/Generic.cmake /usr/share/cmake-`cmake --version|awk '{ print $3;exit }'|awk -F. '{print $1"."$2}'`/Modules/Platform/${OS_NAME}.cmake
|
|
||||||
ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/lib/${CROSS_PFX}.cmake
|
|
||||||
ENV CMAKE_PREFIX_PATH /opt/${CROSS_PFX}:/opt/${CROSS_PFX}/usr
|
|
||||||
ENV PATH ${PATH}:${CROSS_ROOT}/bin
|
|
||||||
# END COMMON
|
|
Loading…
Reference in New Issue