mirror of
https://github.com/pspdev/pspsdk.git
synced 2025-10-03 16:51:27 +00:00
Add build script and update build.txt
This commit is contained in:
6
.github/workflows/compilation.yml
vendored
6
.github/workflows/compilation.yml
vendored
@@ -19,11 +19,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Compile PSPSDK
|
- name: Compile PSPSDK
|
||||||
run: |
|
run: |
|
||||||
./bootstrap
|
./build-and-install.sh
|
||||||
./configure
|
|
||||||
make clean
|
|
||||||
make -j $(getconf _NPROCESSORS_ONLN)
|
|
||||||
make install
|
|
||||||
|
|
||||||
- name: Get short SHA
|
- name: Get short SHA
|
||||||
id: slug
|
id: slug
|
||||||
|
7
.github/workflows/docker.yml
vendored
7
.github/workflows/docker.yml
vendored
@@ -15,12 +15,6 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Login to Github registry
|
- name: Login to Github registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
@@ -30,6 +24,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: docker/build-push-action@v5
|
- uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
|
context: .
|
||||||
push: true
|
push: true
|
||||||
tags: ghcr.io/${{ github.repository }}:latest
|
tags: ghcr.io/${{ github.repository }}:latest
|
||||||
build-args: |
|
build-args: |
|
||||||
|
22
Dockerfile
22
Dockerfile
@@ -5,26 +5,8 @@ FROM $BASE_DOCKER_IMAGE
|
|||||||
|
|
||||||
COPY . /src
|
COPY . /src
|
||||||
|
|
||||||
RUN apk add build-base autoconf automake zlib-dev
|
RUN apk add build-base autoconf automake zlib-dev bash git && \
|
||||||
RUN cd /src && \
|
/src/build-and-install.sh
|
||||||
./bootstrap && \
|
|
||||||
./configure && \
|
|
||||||
make -j $(getconf _NPROCESSORS_ONLN) clean && \
|
|
||||||
make -j $(getconf _NPROCESSORS_ONLN) && \
|
|
||||||
make -j $(getconf _NPROCESSORS_ONLN) install
|
|
||||||
|
|
||||||
## gcc needs to include libcglue libpthreadglue libpsputility libpsprtc libpspnet_inet libpspnet_resolver libpspsdk libpspmodinfo libpspuser libpspkernel
|
|
||||||
## from pspsdk to be able to build executables, because they are part of the standard libraries
|
|
||||||
RUN ln -sf "$PSPDEV/psp/sdk/lib/libcglue.a" "$PSPDEV/psp/lib/libcglue.a" || { exit 1; }
|
|
||||||
RUN ln -sf "$PSPDEV/psp/sdk/lib/libpthreadglue.a" "$PSPDEV/psp/lib/libpthreadglue.a" || { exit 1; }
|
|
||||||
RUN ln -sf "$PSPDEV/psp/sdk/lib/libpsputility.a" "$PSPDEV/psp/lib/libpsputility.a" || { exit 1; }
|
|
||||||
RUN ln -sf "$PSPDEV/psp/sdk/lib/libpsprtc.a" "$PSPDEV/psp/lib/libpsprtc.a" || { exit 1; }
|
|
||||||
RUN ln -sf "$PSPDEV/psp/sdk/lib/libpspnet_inet.a" "$PSPDEV/psp/lib/libpspnet_inet.a" || { exit 1; }
|
|
||||||
RUN ln -sf "$PSPDEV/psp/sdk/lib/libpspnet_resolver.a" "$PSPDEV/psp/lib/libpspnet_resolver.a" || { exit 1; }
|
|
||||||
RUN ln -sf "$PSPDEV/psp/sdk/lib/libpspsdk.a" "$PSPDEV/psp/lib/libpspsdk.a" || { exit 1; }
|
|
||||||
RUN ln -sf "$PSPDEV/psp/sdk/lib/libpspmodinfo.a" "$PSPDEV/psp/lib/libpspmodinfo.a" || { exit 1; }
|
|
||||||
RUN ln -sf "$PSPDEV/psp/sdk/lib/libpspuser.a" "$PSPDEV/psp/lib/libpspuser.a" || { exit 1; }
|
|
||||||
RUN ln -sf "$PSPDEV/psp/sdk/lib/libpspkernel.a" "$PSPDEV/psp/lib/libpspkernel.a" || { exit 1; }
|
|
||||||
|
|
||||||
# Second stage
|
# Second stage
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
|
44
build-and-install.sh
Executable file
44
build-and-install.sh
Executable file
@@ -0,0 +1,44 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Fail script if an error happens
|
||||||
|
set -e
|
||||||
|
|
||||||
|
## Enter the pspsdk directory.
|
||||||
|
cd "$(dirname "$0")" || { echo "ERROR: Could not enter the pspsdk directory."; exit 1; }
|
||||||
|
|
||||||
|
## Make sure PSPDEV is set
|
||||||
|
if [ -z "${PSPDEV}" ]; then
|
||||||
|
echo "The PSPDEV environment variable has not been set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Build pspsdk
|
||||||
|
./bootstrap
|
||||||
|
./configure
|
||||||
|
make clean
|
||||||
|
make -j $(getconf _NPROCESSORS_ONLN)
|
||||||
|
|
||||||
|
## Install pspsdk
|
||||||
|
make install
|
||||||
|
|
||||||
|
## gcc needs to include libcglue libpthreadglue libpsputility libpsprtc libpspnet_inet libpspnet_resolver libpspsdk libpspmodinfo libpspuser libpspkernel
|
||||||
|
## from pspsdk to be able to build executables, because they are part of the standard libraries
|
||||||
|
cd "$PSPDEV/psp/lib"
|
||||||
|
ln -sf "../sdk/lib/libcglue.a" "libcglue.a" || { exit 1; }
|
||||||
|
ln -sf "../sdk/lib/libpthreadglue.a" "libpthreadglue.a" || { exit 1; }
|
||||||
|
ln -sf "../sdk/lib/libpsputility.a" "libpsputility.a" || { exit 1; }
|
||||||
|
ln -sf "../sdk/lib/libpsprtc.a" "libpsprtc.a" || { exit 1; }
|
||||||
|
ln -sf "../sdk/lib/libpspnet_inet.a" "libpspnet_inet.a" || { exit 1; }
|
||||||
|
ln -sf "../sdk/lib/libpspnet_resolver.a" "libpspnet_resolver.a" || { exit 1; }
|
||||||
|
ln -sf "../sdk/lib/libpspsdk.a" "libpspsdk.a" || { exit 1; }
|
||||||
|
ln -sf "../sdk/lib/libpspmodinfo.a" "libpspmodinfo.a" || { exit 1; }
|
||||||
|
ln -sf "../sdk/lib/libpspuser.a" "libpspuser.a" || { exit 1; }
|
||||||
|
ln -sf "../sdk/lib/libpspkernel.a" "libpspkernel.a" || { exit 1; }
|
||||||
|
cd -
|
||||||
|
|
||||||
|
## Store build information
|
||||||
|
BUILD_FILE="${PSPDEV}/build.txt"
|
||||||
|
if [[ -f "${BUILD_FILE}" ]]; then
|
||||||
|
sed -i='' '/^pspsdk /d' "${BUILD_FILE}"
|
||||||
|
fi
|
||||||
|
git log -1 --format="pspsdk %H %cs %s" >> "${BUILD_FILE}"
|
Reference in New Issue
Block a user