Merge pull request #3 from AmigaPorts/add-x86_64-aros-v1-docker
Add AROSv1 x86_64 Docker recipe
This commit is contained in:
commit
3d535f1b06
73
README.md
73
README.md
|
@ -1,10 +1,10 @@
|
|||
# AmigDev Docker Crosstools
|
||||
|
||||
Currently AmigaOS 3.x, AmigaOS 4.x and MorphOS 3.9+ are supported.
|
||||
Currently AmigaOS 3.x, AmigaOS 4.x and MorphOS 3.9+ are supported.
|
||||
WarpOS and AROS will get supported in the forseeable future
|
||||
|
||||
## Supported toolchains
|
||||
Platform | Toolchain | Supported
|
||||
Platform | Toolchain | Supported
|
||||
------------ | ------------ | -------------
|
||||
AmigaOS 3.x | @bebbo toolchain - gcc 6 | **Yes**
|
||||
AmigaOS 4.x | @sba1 adtools - gcc 8 | **Yes**
|
||||
|
@ -12,34 +12,77 @@ ## Supported toolchains
|
|||
~WarpOS~ | ~gcc 6~ | Not yet
|
||||
~AROS ABIv1 x86_64~ | ~AROS Team Official - gcc 9~ | Not yet
|
||||
~AROS ABIv1 x86~ | ~AROS Team Official - gcc 9~ | Not yet
|
||||
~AROS ABIv0 x86~ | ~AROS Team Official - gcc 9~ | Not yet
|
||||
~AROS ABIv1 ARM BE (RasPi)~ | ~AROS Team Official - gcc 9~ | Not yet
|
||||
|
||||
## Build the Docker container
|
||||
|
||||
Example for AROSv1 x86_64
|
||||
|
||||
docker build -t "amigadev/crosstools:x86_64-aros" --rm -f x86_64-aros.docker .
|
||||
|
||||
For other toolchains, use the appropriate Dockerfile:
|
||||
|
||||
- AmigaOS 3.x (M680x0): m68k-amigaos.docker
|
||||
|
||||
- AmigaOS 4.x (PPC): ppc-amigaos.docker
|
||||
|
||||
- MorphOS (PPC): ppc-morphos.docker
|
||||
|
||||
## Run the Docker container for compiling a third party application
|
||||
|
||||
### AmigaOS4.x example:
|
||||
```bash
|
||||
docker run --rm \
|
||||
-v ${PWD}:/work \
|
||||
-v /path/to/extra/ppc-amigaos/lib:/tools/usr/lib \
|
||||
-v /path/to/extra/ppc-amigaos/include:/tools/usr/include \
|
||||
-it amigadev/crosstools:ppc-amigaos bash
|
||||
docker run
|
||||
|
||||
# Destroy the container, once exited.
|
||||
# Comment this line out if you want to keep container after execution
|
||||
# for debugging
|
||||
--rm \
|
||||
|
||||
# expose to the container the following local directories
|
||||
# format is:
|
||||
# <local_dir>:<container_dir>
|
||||
-v ${PWD}:/work \
|
||||
-v /path/to/extra/ppc-amigaos/lib:/tools/usr/lib \
|
||||
-v /path/to/extra/ppc-amigaos/include:/tools/usr/include \
|
||||
|
||||
# Pass current UID and GID to container, so that it can change the
|
||||
# ownership of output files which are otherwise writen to outdir as
|
||||
# root
|
||||
-e USER=$( id -u ) -e GROUP=$( id -g ) \
|
||||
|
||||
# Use this Docker image and then enter into it using the shell
|
||||
-it amigadev/crosstools:ppc-amigaos /bin/bash
|
||||
```
|
||||
|
||||
### AmigaOS3.x example
|
||||
```bash
|
||||
docker run --rm \
|
||||
-v ${PWD}:/work \
|
||||
-v /path/to/extra/m68k-amigaos/lib:/tools/usr/lib \
|
||||
-v /path/to/extra/m68k-amigaos/include:/tools/usr/include \
|
||||
-it amigadev/crosstools:m68k-amigaos bash
|
||||
-v ${PWD}:/work \
|
||||
-v /path/to/extra/m68k-amigaos/lib:/tools/usr/lib \
|
||||
-v /path/to/extra/m68k-amigaos/include:/tools/usr/include \
|
||||
-e USER=$( id -u ) -e GROUP=$( id -g ) \
|
||||
-it amigadev/crosstools:m68k-amigaos bash
|
||||
```
|
||||
|
||||
### MorphOS example
|
||||
```bashS
|
||||
docker run --rm \
|
||||
-v ${PWD}:/work \
|
||||
-v /path/to/extra/ppc-morphos/lib:/tools/usr/lib \
|
||||
-v /path/to/extra/ppc-morphos/include:/tools/usr/include \
|
||||
-it amigadev/crosstools:ppc-morphos bash
|
||||
-v ${PWD}:/work \
|
||||
-v /path/to/extra/ppc-morphos/lib:/tools/usr/lib \
|
||||
-v /path/to/extra/ppc-morphos/include:/tools/usr/include \
|
||||
-e USER=$( id -u ) -e GROUP=$( id -g ) \
|
||||
-it amigadev/crosstools:ppc-morphos bash
|
||||
```
|
||||
|
||||
### AROS (v1) x86_64 example
|
||||
```bashS
|
||||
docker run --rm \
|
||||
-v ${PWD}:/work \
|
||||
-v /tmp/aros:/tmp/aros \
|
||||
-e USER=$( id -u ) -e GROUP=$( id -g ) \
|
||||
-it amigadev/crosstools:x86_64-aros bash
|
||||
```
|
||||
|
||||
* *${PWD}* is the current dir
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit a1395e7201abb016728ef4ed5b474347be140e00
|
||||
Subproject commit 43c5eff7ee4a0249ab15345165127fee48eff270
|
|
@ -0,0 +1,45 @@
|
|||
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 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
|
Loading…
Reference in New Issue