1
0
mirror of https://github.com/AmigaPorts/docker-amiga-gcc.git synced 2026-05-09 06:14:58 +00:00

Compare commits

11 Commits

Author SHA1 Message Date
Marlon Beijer
ba2e2d5b91 Add arm64 for ppc-morphos toolchain 2025-06-10 12:43:24 +02:00
Marlon Beijer
f91a11a996 Fix prep.sh for ppc-amigaos target 2025-06-02 12:33:33 +02:00
Marlon Beijer
bb4de40d4b Fix build issues related to newer version of CMake 2025-06-02 12:07:30 +02:00
Marlon Beijer
b8a444b13d Fix amigadev/crosstools:m68k-amigaos-gcc10 2024-09-25 23:38:35 +02:00
Marlon Beijer
dbb0d28bc9 Fix building of ppc-amigaos image + add arm64 version of image 2024-09-25 23:01:37 +02:00
Marlon Beijer
918ce13c79 Fix Jenkinsfile 2024-09-23 20:15:14 +02:00
Marlon Beijer
ef4c275727 Fix Jenkinsfile 2024-09-23 20:09:39 +02:00
Marlon Beijer
02ba44eec1 Add multi-arch build for m68k gcc13.1 build 2024-09-23 20:06:47 +02:00
Marlon Beijer
f57d2e45d8 Fix multi-arch builds 2024-09-23 20:05:13 +02:00
Marlon
a18b24a021 Merge branch 'master' of github.com:AmigaPorts/docker-amiga-gcc 2023-09-21 22:14:53 +02:00
Marlon
ba5755d0ef . 2023-09-21 22:14:42 +02:00
8 changed files with 134 additions and 42 deletions

View File

@@ -1,7 +1,8 @@
ARG BUILD_OS
ARG BUILD_PFX
FROM amigadev/${BUILD_PFX}:latest as build-env
FROM --platform=$TARGETPLATFORM amigadev/${BUILD_PFX}:latest as build-env
ARG TARGETPLATFORM
FROM amigadev/docker-base:latest

View File

@@ -6,7 +6,11 @@
"DockerTag": "m68k-amigaos",
"Prefix": "",
"Dockerfile": "Dockerfile",
"BuildIfSuccessful": "",
"Platforms": [
"amd64",
"arm64"
],
"BuildIfSuccessful": [],
"BuildParam": "AmigaOS"
},
{
@@ -15,7 +19,11 @@
"DockerTag": "m68k-amigaos-gcc10",
"Prefix": "m68k-amigaos",
"Dockerfile": "Dockerfile",
"BuildIfSuccessful": "",
"Platforms": [
"amd64",
"arm64"
],
"BuildIfSuccessful": [],
"BuildParam": "AmigaOS"
},
{
@@ -24,7 +32,11 @@
"DockerTag": "ppc-amigaos",
"Prefix": "",
"Dockerfile": "Dockerfile",
"BuildIfSuccessful": "",
"Platforms": [
"amd64",
"arm64"
],
"BuildIfSuccessful": [],
"BuildParam": "AmigaOS"
},
@@ -34,7 +46,11 @@
"DockerTag": "ppc-morphos",
"Prefix": "",
"Dockerfile": "Dockerfile",
"BuildIfSuccessful": "",
"Platforms": [
"amd64",
"arm64"
],
"BuildIfSuccessful": [],
"BuildParam": "MorphOS"
}

91
Jenkinsfile vendored
View File

@@ -38,9 +38,10 @@ def killall_jobs() {
echo "Done killing";
}
def buildStep(DOCKER_ROOT, DOCKERIMAGE, DOCKERTAG, DOCKERFILE, BUILD_NEXT, BUILD_OS, PREFIX) {
def buildStep(DOCKER_ROOT, DOCKERIMAGE, DOCKERTAG, EXTRATAG, DOCKERFILE, BUILD_NEXT, BUILD_OS, PREFIX) {
def fixed_job_name = env.JOB_NAME.replace('%2F','/');
try {
sh "rm -rfv ./*"
checkout scm;
def buildenv = '';
@@ -62,25 +63,90 @@ def buildStep(DOCKER_ROOT, DOCKERIMAGE, DOCKERTAG, DOCKERFILE, BUILD_NEXT, BUILD
docker.withRegistry("https://index.docker.io/v1/", "dockerhub") {
def customImage
stage("Building ${DOCKERIMAGE}:${tag}...") {
customImage = docker.build("${DOCKER_ROOT}/${DOCKERIMAGE}:${tag}", "--build-arg BUILDENV=${buildenv} --build-arg BUILD_OS=${BUILD_OS} --build-arg BUILD_PFX=${tag} --build-arg PREFIX=${PREFIX} --network=host --pull -f ${DOCKERFILE} .");
customImage = docker.build("${DOCKER_ROOT}/${DOCKERIMAGE}:${tag}_${EXTRATAG}", "--build-arg BUILDENV=${buildenv} --build-arg BUILD_OS=${BUILD_OS} --build-arg BUILD_PFX=${tag} --build-arg PREFIX=${PREFIX} --network=host --pull -f ${DOCKERFILE} .");
}
stage("Pushing to docker hub registry...") {
customImage.push();
}
}
if (!BUILD_NEXT.equals('')) {
build "${BUILD_NEXT}/${env.BRANCH_NAME}";
}
} catch(err) {
//slackSend color: "danger", channel: "#jenkins", message: "Build Failed: ${fixed_job_name} #${env.BUILD_NUMBER} Target: ${DOCKER_ROOT}/${DOCKERIMAGE}:${DOCKERTAG} (<${env.BUILD_URL}|Open>)"
currentBuild.result = 'FAILURE'
notify("Build Failed: ${fixed_job_name} #${env.BUILD_NUMBER} Target: ${DOCKER_ROOT}/${DOCKERIMAGE}:${DOCKERTAG}")
throw err
}
}
def buildManifest(DOCKER_ROOT, DOCKERIMAGE, DOCKERTAG, DOCKERFILE, PLATFORMS, BUILD_NEXT) {
def fixed_job_name = env.JOB_NAME.replace('%2F','/')
try {
checkout scm;
def buildenv = '';
def tag = '';
if (env.BRANCH_NAME.equals('master')) {
buildenv = 'production';
tag = "${DOCKERTAG}";
} else if (env.BRANCH_NAME.equals('dev')) {
buildenv = 'development';
tag = "${DOCKERTAG}-dev";
} else {
throw new Exception("Invalid branch, stopping build!");
}
docker.withRegistry("https://index.docker.io/v1/", "dockerhub") {
stage("Building ${DOCKERIMAGE}:${tag} manifest...") {
sh('docker version');
def platformsString = "";
PLATFORMS.each { p ->
sh("docker pull ${DOCKER_ROOT}/${DOCKERIMAGE}:${tag}_${p}");
platformsString = "${platformsString} ${DOCKER_ROOT}/${DOCKERIMAGE}:${tag}_${p}"
}
sh("docker manifest create ${DOCKER_ROOT}/${DOCKERIMAGE}:${tag} ${platformsString}");
sh("docker manifest push ${DOCKER_ROOT}/${DOCKERIMAGE}:${tag}");
}
}
def branches = [:]
BUILD_NEXT.each { v ->
branches["Build ${v}"] = {
build "${v}/${env.BRANCH_NAME}";
}
}
parallel branches;
} catch(err) {
slackSend color: "danger", channel: "#jenkins", message: "Build Failed: ${fixed_job_name} #${env.BUILD_NUMBER} Target: ${DOCKER_ROOT}/${DOCKERIMAGE}:${tag} (<${env.BUILD_URL}|Open>)"
currentBuild.result = 'FAILURE'
notify("Build Failed: ${fixed_job_name} #${env.BUILD_NUMBER} Target: ${DOCKER_ROOT}/${DOCKERIMAGE}:${tag}")
throw err
}
}
def steps(v) {
def platforms = [:];
v.Platforms.each { p ->
platforms["Build ${v.DockerRoot}/${v.DockerImage}:${v.DockerTag}_${p}"] = {
stage("Build ${p} version") {
node(p) {
buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, p, v.Dockerfile, [], v.BuildParam, v.Prefix);
}
}
}
};
parallel platforms;
stage('Build multi-arch manifest') {
node() {
buildManifest(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.Platforms, v.BuildIfSuccessful);
}
}
}
properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [[$class: 'StringParameterDefinition', name: 'BUILD_IMAGE', defaultValue: 'all']]]])
node('master') {
@@ -90,7 +156,6 @@ node('master') {
}
def fixed_job_name = env.JOB_NAME.replace('%2F','/');
//slackSend color: "good", channel: "#jenkins", message: "Build Started: ${fixed_job_name} #${env.BUILD_NUMBER} (<${env.BUILD_URL}|Open>)";
checkout scm;
@@ -100,9 +165,7 @@ node('master') {
if (BUILD_IMAGE.equals('all')) {
project.builds.each { v ->
branches["Build ${v.DockerRoot}/${v.DockerImage}:${v.DockerTag}"] = {
node {
buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.BuildIfSuccessful, v.BuildParam, v.Prefix);
}
steps(v);
}
}
} else {
@@ -110,15 +173,13 @@ node('master') {
project.builds.each { v ->
if ("${v.DockerTag}".equals("${BUILD_IMAGE}")) {
branches["Build ${v.DockerRoot}/${v.DockerImage}:${v.DockerTag}"] = {
node {
buildStep(v.DockerRoot, v.DockerImage, v.DockerTag, v.Dockerfile, v.BuildIfSuccessful, v.BuildParam, v.Prefix);
}
steps(v);
}
}
}
}
sh "rm -rf ./*"
sh "rm -rf ./*";
parallel branches;
}

View File

@@ -18,13 +18,13 @@ git clone https://github.com/madler/zlib.git "${SUBMODULES}"/zlib
rm -rf "${SUBMODULES}"/zlib/build
mkdir -p "${SUBMODULES}"/zlib/build
cd "${SUBMODULES}"/zlib/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DM68K_CPU=68040 -DM68K_FPU=hard -DM68K_COMMON="${M68K_COMMON} -O3 -fno-exceptions -w -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++14"
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DZLIB_BUILD_TESTING=OFF -DZLIB_BUILD_SHARED=OFF -DM68K_CPU=68040 -DM68K_FPU=hard -DM68K_COMMON="${M68K_COMMON} -O3 -fno-exceptions -w -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++14"
cmake --build . --config Release --target install -- -j$(getconf _NPROCESSORS_ONLN)
cd "${SUBMODULES}"
# SDL1.2
if [ ! -d "${SUBMODULES}/SDL" ]; then
git clone https://github.com/AmigaPorts/SDL.git "${SUBMODULES}"/SDL
git clone https://github.com/AmigaPorts/SDL_old.git "${SUBMODULES}"/SDL
fi
cd "${SUBMODULES}"/SDL
git checkout SDL-1.2-AmigaOS3

View File

@@ -18,13 +18,13 @@ git clone https://github.com/madler/zlib.git "${SUBMODULES}"/zlib
rm -rf "${SUBMODULES}"/zlib/build
mkdir -p "${SUBMODULES}"/zlib/build
cd "${SUBMODULES}"/zlib/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DM68K_CPU=68040 -DM68K_FPU=hard -DM68K_COMMON="${M68K_COMMON} -O3 -fno-exceptions -w -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++14"
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DZLIB_BUILD_TESTING=OFF -DZLIB_BUILD_SHARED=OFF -DM68K_CPU=68040 -DM68K_FPU=hard -DM68K_COMMON="${M68K_COMMON} -O3 -fno-exceptions -w -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++14"
cmake --build . --config Release --target install -- -j$(getconf _NPROCESSORS_ONLN)
cd "${SUBMODULES}"
# SDL1.2
if [ ! -d "${SUBMODULES}/SDL" ]; then
git clone https://github.com/AmigaPorts/SDL.git "${SUBMODULES}"/SDL
git clone https://github.com/AmigaPorts/SDL_old.git "${SUBMODULES}"/SDL
fi
cd "${SUBMODULES}"/SDL
git checkout SDL-1.2-AmigaOS3

View File

@@ -6,8 +6,8 @@ set -e
#set compiler params
export TARGET='ppc-amigaos'
export SYSROOT=/opt/${TARGET}/usr
export M68K_CPU="-mhard-float"
export M68K_COMMON="-s -ffast-math -fomit-frame-pointer -I${SYSROOT}/include -L${SYSROOT}/lib"
export M68K_CPU=""
export M68K_COMMON="-s -athread=single -ffast-math -fomit-frame-pointer -I${SYSROOT}/include -L${SYSROOT}/lib"
export M68K_CFLAGS="${CFLAGS} ${M68K_CPU} ${M68K_COMMON}"
export M68K_CXXFLAGS="${CXXFLAGS} ${M68K_CPU} ${M68K_COMMON}"
export CURPATH="${PWD}"
@@ -18,7 +18,7 @@ git clone https://github.com/madler/zlib.git "${SUBMODULES}"/zlib
rm -rf "${SUBMODULES}"/zlib/build
mkdir -p "${SUBMODULES}"/zlib/build
cd "${SUBMODULES}"/zlib/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DTOOLCHAIN_COMMON="${M68K_COMMON} -O3 -fno-exceptions -w -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++14"
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DZLIB_BUILD_TESTING=OFF -DZLIB_BUILD_SHARED=OFF -DTOOLCHAIN_COMMON="${M68K_COMMON} -O3 -fno-exceptions -w -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++14"
cmake --build . --config Release --target install -- -j$(getconf _NPROCESSORS_ONLN)
cd "${SUBMODULES}"
@@ -28,25 +28,39 @@ mkdir -p "${SUBMODULES}"/MiniGL
cd "${SUBMODULES}"/MiniGL
wget http://os4depot.net/share/driver/graphics/minigl.lha -O minigl.lha
lha -x minigl.lha
mkdir -p ${SYSROOT}/usr/include
mkdir -p ${SYSROOT}/usr/lib
mkdir -p ${SYSROOT}/include
mkdir -p ${SYSROOT}/lib
cp -fvr MiniGL/SDK/local/common/include/* ${SYSROOT}/include/
cp -fvr MiniGL/SDK/local/newlib/lib/* ${SYSROOT}/lib/
cd "${SUBMODULES}"
# SDL1.2
if [ ! -d "${SUBMODULES}/SDL" ]; then
git clone https://github.com/AmigaPorts/SDL.git "${SUBMODULES}"/SDL
fi
mkdir -p "${SUBMODULES}"/SDL
cd "${SUBMODULES}"/SDL
git checkout SDL-1.2-AmigaOS3
git pull
rm -rf "${SUBMODULES}"/SDL/build
mkdir -p "${SUBMODULES}"/SDL/build
cd "${SUBMODULES}"/SDL/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DTOOLCHAIN_COMMON="${M68K_COMMON} -O3 -fno-exceptions -w -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++14"
cmake --build . --config Release --target install -- -j$(getconf _NPROCESSORS_ONLN)
wget https://github.com/AmigaPorts/SDL-1.2/releases/download/v1.2.16-release-amigaos4/SDL.lha -O SDL.lha
lha -x SDL.lha
mkdir -p ${SYSROOT}/include
mkdir -p ${SYSROOT}/lib
cp -fvr SDL/SDK/local/newlib/include/* ${SYSROOT}/include/
cp -fvr SDL/SDK/local/newlib/lib/* ${SYSROOT}/lib/
# SDL2
#if [ ! -d "${SUBMODULES}/SDL" ]; then
# git clone https://github.com/AmigaPorts/SDL.git "${SUBMODULES}"/SDL
#fi
mkdir -p "${SUBMODULES}"/SDL2
cd "${SUBMODULES}"/SDL2
wget https://github.com/AmigaPorts/SDL/releases/download/v2.30.5-amigaos4/SDL2.lha -O SDL2.lha
lha -x SDL2.lha
mkdir -p ${SYSROOT}/include
mkdir -p ${SYSROOT}/lib
cp -fvr SDL2/SDK/local/newlib/include/* ${SYSROOT}/include/
cp -fvr SDL2/SDK/local/newlib/lib/* ${SYSROOT}/lib/
#git pull
#make -f Makefile.amigaos4
##rm -rf "${SUBMODULES}"/SDL-build
##cmake -S"${SUBMODULES}"/SDL -B"${SUBMODULES}"/SDL-build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DHAVE_SDL_TIMERS=TRUE -DHAVE_SDL_THREADS=TRUE -DTOOLCHAIN_COMMON="${M68K_COMMON} -O3 -fno-exceptions -w -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++17"
##cmake --build "${SUBMODULES}"/SDL-build --config Release --target install -- -j$(getconf _NPROCESSORS_ONLN)
cd "${SUBMODULES}"
# Zziplib

View File

@@ -18,7 +18,7 @@ git clone https://github.com/madler/zlib.git "${SUBMODULES}"/zlib
rm -rf "${SUBMODULES}"/zlib/build
mkdir -p "${SUBMODULES}"/zlib/build
cd "${SUBMODULES}"/zlib/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DPPC_COMMON="${PPC_COMMON} -O3 -fno-exceptions -w -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++14"
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${SYSROOT} -DZLIB_BUILD_TESTING=OFF -DZLIB_BUILD_SHARED=OFF -DPPC_COMMON="${PPC_COMMON} -O3 -fno-exceptions -w -DBIG_ENDIAN -DAMIGA -fpermissive -std=c++14"
cmake --build . --config Release --target install -- -j$(getconf _NPROCESSORS_ONLN)
cd "${SUBMODULES}"