Compare commits

...

6 Commits

Author SHA1 Message Date
Jonathan Schleifer
72ea21b9b8
Merge ad0dce421b into 4ff2d7d902 2024-01-31 18:47:34 -07:00
Wolfgang Thaller
4ff2d7d902
Merge pull request #227 from mcayland/fix/update-ubuntu-version
Dockerfile: update Ubuntu base image from 20.04 to 22.04
2024-01-24 03:08:39 +01:00
Mark Cave-Ayland
9facdaf3c1 Dockerfile: update Ubuntu base image from 20.04 to 22.04
The current CI build for Linux fails with the following error:

2791.4 Scanning dependencies of target ResourceFiles
2791.4 [ 68%] Building CXX object ResourceFiles/CMakeFiles/ResourceFiles.dir/ResourceFork.cc.o
2791.4 [ 69%] Building CXX object ResourceFiles/CMakeFiles/ResourceFiles.dir/BinaryIO.cc.o
2791.4 [ 69%] Building CXX object ResourceFiles/CMakeFiles/ResourceFiles.dir/ResType.cc.o
2791.4 [ 70%] Building CXX object ResourceFiles/CMakeFiles/ResourceFiles.dir/ResourceFile.cc.o
------
Dockerfile:21
--------------------
  20 |
  21 | >>> RUN mkdir /Retro68-build && \
  22 | >>>     mkdir /Retro68-build/bin && \
  23 | >>>     bash -c "cd /Retro68-build && bash /Retro68/build-toolchain.bash"

Looking back through the logs there is no sign of any specific error, however
the CI history indicates that the problem was introduced via commit e187bd21c2
("honor SOURCE_DATE_EPOCH variable when timestamping MacBinary files").

A bit of searching suggests a couple of possible reasons as to why commit e187bd21c2
could introduce a build failure: 1) the version of gcc being used may have a
buggy/incomplete implementation of std::chrono or 2) a bug in the version of cmake.

On this basis updating the Ubuntu base image from 20.04 (old LTS) to 22.04 (current
LTS) should resolve these issues, and indeed with this change applied I can
successfully build the container image from current Retro68 git as well as one of
the sample applications.
2024-01-23 20:55:56 +00:00
Wolfgang Thaller
e187bd21c2 honor SOURCE_DATE_EPOCH variable when timestamping MacBinary files 2024-01-21 11:52:12 +01:00
Wolfgang Thaller
e43fee2701 move standalone nix build experiments to separate module 2024-01-21 11:12:34 +01:00
Jonathan Schleifer
ad0dce421b
Build cc1obj
This does not build libobjc, as it is broken in several ways. However,
it doesn't matter, since libobjc is basically not used by anyone anyway
and everybody uses a different runtime such as the ObjFW runtime.
2022-11-24 23:36:04 +01:00
6 changed files with 56 additions and 42 deletions

View File

@ -1,12 +1,12 @@
# vim:ft=dockerfile # vim:ft=dockerfile
# Base image # Base image
FROM ubuntu:20.04 AS base FROM ubuntu:22.04 AS base
RUN apt-get update && \ RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \ DEBIAN_FRONTEND=noninteractive apt-get install -y \
cmake libgmp-dev libmpfr-dev libmpc-dev \ cmake libgmp-dev libmpfr-dev libmpc-dev \
libboost-all-dev bison texinfo \ libboost-all-dev bison texinfo bzip2 \
ruby flex curl g++ git macutils ruby flex curl g++ git macutils
# Add toolchain to default PATH # Add toolchain to default PATH

View File

@ -75,6 +75,19 @@ static void writeMacBinary(std::ostream& out, std::string filename,
const std::string& rsrcBytes = resstream.str(); const std::string& rsrcBytes = resstream.str();
// MacBinary files contain mandatory timestamps (creation date and modification date)
// We set both of them, but to make reproducible builds possible, this optionally
// takes the time from the $SOURCE_DATE_EPOCH environment variable instead of the system clock.
// When building under `nix`, this is automatically set to the modification date of the newest source
// file.
auto timestamp = std::invoke([&] -> std::chrono::system_clock::time_point {
const char *sourceDateEpochEnvVar = getenv("SOURCE_DATE_EPOCH");
if (sourceDateEpochEnvVar && *sourceDateEpochEnvVar)
return std::chrono::system_clock::from_time_t((time_t)std::atoll(sourceDateEpochEnvVar));
else
return std::chrono::system_clock::now();
});
// Calculate Mac-style timestamp (seconds since 1 January 1904 00:00:00) // Calculate Mac-style timestamp (seconds since 1 January 1904 00:00:00)
std::tm mac_epoch_tm = { std::tm mac_epoch_tm = {
0, 0, 0, // 00:00:00 0, 0, 0, // 00:00:00

View File

@ -237,7 +237,7 @@ if [ $SKIP_THIRDPARTY != true ]; then
cd gcc-build cd gcc-build
export target_configargs="--disable-nls --enable-libstdcxx-dual-abi=no --disable-libstdcxx-verbose" export target_configargs="--disable-nls --enable-libstdcxx-dual-abi=no --disable-libstdcxx-verbose"
$SRC/gcc/configure --target=m68k-apple-macos --prefix=$PREFIX \ $SRC/gcc/configure --target=m68k-apple-macos --prefix=$PREFIX \
--enable-languages=c,c++ --with-arch=m68k --with-cpu=m68000 \ --enable-languages=c,c++,objc,obj-c++ --with-arch=m68k --with-cpu=m68000 \
--disable-libssp MAKEINFO=missing --disable-libssp MAKEINFO=missing
# There seems to be a build failure in parallel builds; ignore any errors and try again without -j8. # There seems to be a build failure in parallel builds; ignore any errors and try again without -j8.
make -j8 || make make -j8 || make
@ -280,7 +280,7 @@ if [ $SKIP_THIRDPARTY != true ]; then
cd gcc-build-ppc cd gcc-build-ppc
export target_configargs="--disable-nls --enable-libstdcxx-dual-abi=no --disable-libstdcxx-verbose" export target_configargs="--disable-nls --enable-libstdcxx-dual-abi=no --disable-libstdcxx-verbose"
$SRC/gcc/configure --target=powerpc-apple-macos --prefix=$PREFIX \ $SRC/gcc/configure --target=powerpc-apple-macos --prefix=$PREFIX \
--enable-languages=c,c++ --disable-libssp --disable-lto MAKEINFO=missing --enable-languages=c,c++,objc,obj-c++ --disable-libssp --disable-lto MAKEINFO=missing
make -j8 make -j8
make install make install
unset target_configargs unset target_configargs

View File

@ -10,6 +10,9 @@
outputs = inputs@{ flake-parts, nixpkgs, multiversal, ... }: outputs = inputs@{ flake-parts, nixpkgs, multiversal, ... }:
flake-parts.lib.mkFlake { inherit inputs; } ({ self, lib, retroPlatforms, ... }: { flake-parts.lib.mkFlake { inherit inputs; } ({ self, lib, retroPlatforms, ... }: {
imports = [
./nix/standalone.nix
];
_module.args.lib = import (nixpkgs + "/lib"); _module.args.lib = import (nixpkgs + "/lib");
_module.args.retroPlatforms = import ./nix/platforms.nix; _module.args.retroPlatforms = import ./nix/platforms.nix;
@ -55,26 +58,6 @@
tools = pkgs.retro68.tools; tools = pkgs.retro68.tools;
hfsutils = pkgs.retro68.hfsutils; hfsutils = pkgs.retro68.hfsutils;
default = pkgs.runCommand "Retro68" { } ''
mkdir $out
mkdir $out/m68k-apple-macos
mkdir $out/powerpc-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.libretro}/. $out/m68k-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.multiversal}/. $out/m68k-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.libretro}/. $out/powerpc-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.multiversal}/. $out/powerpc-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.libretro}/. $out/powerpc-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.multiversal}/. $out/powerpc-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.tools}/. $out
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.hfsutils}/. $out
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.cmake}/. $out
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.gnumake}/. $out
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.ninja}/. $out
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.m68k.buildPackages.retro68.gcc_unwrapped}/. $out
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.powerpc.buildPackages.retro68.gcc_unwrapped}/. $out
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.carbon.buildPackages.retro68.gcc_unwrapped}/. $out
'';
samples = pkgs.linkFarm "Retro68-Samples" [ samples = pkgs.linkFarm "Retro68-Samples" [
{ name = "m68k"; path = self'.legacyPackages.pkgsCross.m68k.retro68.samples; } { name = "m68k"; path = self'.legacyPackages.pkgsCross.m68k.retro68.samples; }

View File

@ -1126,7 +1126,6 @@ configure-target: \
maybe-configure-target-libbacktrace \ maybe-configure-target-libbacktrace \
maybe-configure-target-libquadmath \ maybe-configure-target-libquadmath \
maybe-configure-target-libgfortran \ maybe-configure-target-libgfortran \
maybe-configure-target-libobjc \
maybe-configure-target-libgo \ maybe-configure-target-libgo \
maybe-configure-target-libphobos \ maybe-configure-target-libphobos \
maybe-configure-target-libtermcap \ maybe-configure-target-libtermcap \
@ -1316,7 +1315,6 @@ all-target: maybe-all-target-libbacktrace
@endif target-libbacktrace-no-bootstrap @endif target-libbacktrace-no-bootstrap
all-target: maybe-all-target-libquadmath all-target: maybe-all-target-libquadmath
all-target: maybe-all-target-libgfortran all-target: maybe-all-target-libgfortran
all-target: maybe-all-target-libobjc
all-target: maybe-all-target-libgo all-target: maybe-all-target-libgo
@if target-libphobos-no-bootstrap @if target-libphobos-no-bootstrap
all-target: maybe-all-target-libphobos all-target: maybe-all-target-libphobos
@ -1419,7 +1417,6 @@ info-target: maybe-info-target-libgcc
info-target: maybe-info-target-libbacktrace info-target: maybe-info-target-libbacktrace
info-target: maybe-info-target-libquadmath info-target: maybe-info-target-libquadmath
info-target: maybe-info-target-libgfortran info-target: maybe-info-target-libgfortran
info-target: maybe-info-target-libobjc
info-target: maybe-info-target-libgo info-target: maybe-info-target-libgo
info-target: maybe-info-target-libphobos info-target: maybe-info-target-libphobos
info-target: maybe-info-target-libtermcap info-target: maybe-info-target-libtermcap
@ -1509,7 +1506,6 @@ dvi-target: maybe-dvi-target-libgcc
dvi-target: maybe-dvi-target-libbacktrace dvi-target: maybe-dvi-target-libbacktrace
dvi-target: maybe-dvi-target-libquadmath dvi-target: maybe-dvi-target-libquadmath
dvi-target: maybe-dvi-target-libgfortran dvi-target: maybe-dvi-target-libgfortran
dvi-target: maybe-dvi-target-libobjc
dvi-target: maybe-dvi-target-libgo dvi-target: maybe-dvi-target-libgo
dvi-target: maybe-dvi-target-libphobos dvi-target: maybe-dvi-target-libphobos
dvi-target: maybe-dvi-target-libtermcap dvi-target: maybe-dvi-target-libtermcap
@ -1599,7 +1595,6 @@ pdf-target: maybe-pdf-target-libgcc
pdf-target: maybe-pdf-target-libbacktrace pdf-target: maybe-pdf-target-libbacktrace
pdf-target: maybe-pdf-target-libquadmath pdf-target: maybe-pdf-target-libquadmath
pdf-target: maybe-pdf-target-libgfortran pdf-target: maybe-pdf-target-libgfortran
pdf-target: maybe-pdf-target-libobjc
pdf-target: maybe-pdf-target-libgo pdf-target: maybe-pdf-target-libgo
pdf-target: maybe-pdf-target-libphobos pdf-target: maybe-pdf-target-libphobos
pdf-target: maybe-pdf-target-libtermcap pdf-target: maybe-pdf-target-libtermcap
@ -1689,7 +1684,6 @@ html-target: maybe-html-target-libgcc
html-target: maybe-html-target-libbacktrace html-target: maybe-html-target-libbacktrace
html-target: maybe-html-target-libquadmath html-target: maybe-html-target-libquadmath
html-target: maybe-html-target-libgfortran html-target: maybe-html-target-libgfortran
html-target: maybe-html-target-libobjc
html-target: maybe-html-target-libgo html-target: maybe-html-target-libgo
html-target: maybe-html-target-libphobos html-target: maybe-html-target-libphobos
html-target: maybe-html-target-libtermcap html-target: maybe-html-target-libtermcap
@ -1779,7 +1773,6 @@ TAGS-target: maybe-TAGS-target-libgcc
TAGS-target: maybe-TAGS-target-libbacktrace TAGS-target: maybe-TAGS-target-libbacktrace
TAGS-target: maybe-TAGS-target-libquadmath TAGS-target: maybe-TAGS-target-libquadmath
TAGS-target: maybe-TAGS-target-libgfortran TAGS-target: maybe-TAGS-target-libgfortran
TAGS-target: maybe-TAGS-target-libobjc
TAGS-target: maybe-TAGS-target-libgo TAGS-target: maybe-TAGS-target-libgo
TAGS-target: maybe-TAGS-target-libphobos TAGS-target: maybe-TAGS-target-libphobos
TAGS-target: maybe-TAGS-target-libtermcap TAGS-target: maybe-TAGS-target-libtermcap
@ -1869,7 +1862,6 @@ install-info-target: maybe-install-info-target-libgcc
install-info-target: maybe-install-info-target-libbacktrace install-info-target: maybe-install-info-target-libbacktrace
install-info-target: maybe-install-info-target-libquadmath install-info-target: maybe-install-info-target-libquadmath
install-info-target: maybe-install-info-target-libgfortran install-info-target: maybe-install-info-target-libgfortran
install-info-target: maybe-install-info-target-libobjc
install-info-target: maybe-install-info-target-libgo install-info-target: maybe-install-info-target-libgo
install-info-target: maybe-install-info-target-libphobos install-info-target: maybe-install-info-target-libphobos
install-info-target: maybe-install-info-target-libtermcap install-info-target: maybe-install-info-target-libtermcap
@ -2049,7 +2041,6 @@ install-pdf-target: maybe-install-pdf-target-libgcc
install-pdf-target: maybe-install-pdf-target-libbacktrace install-pdf-target: maybe-install-pdf-target-libbacktrace
install-pdf-target: maybe-install-pdf-target-libquadmath install-pdf-target: maybe-install-pdf-target-libquadmath
install-pdf-target: maybe-install-pdf-target-libgfortran install-pdf-target: maybe-install-pdf-target-libgfortran
install-pdf-target: maybe-install-pdf-target-libobjc
install-pdf-target: maybe-install-pdf-target-libgo install-pdf-target: maybe-install-pdf-target-libgo
install-pdf-target: maybe-install-pdf-target-libphobos install-pdf-target: maybe-install-pdf-target-libphobos
install-pdf-target: maybe-install-pdf-target-libtermcap install-pdf-target: maybe-install-pdf-target-libtermcap
@ -2139,7 +2130,6 @@ install-html-target: maybe-install-html-target-libgcc
install-html-target: maybe-install-html-target-libbacktrace install-html-target: maybe-install-html-target-libbacktrace
install-html-target: maybe-install-html-target-libquadmath install-html-target: maybe-install-html-target-libquadmath
install-html-target: maybe-install-html-target-libgfortran install-html-target: maybe-install-html-target-libgfortran
install-html-target: maybe-install-html-target-libobjc
install-html-target: maybe-install-html-target-libgo install-html-target: maybe-install-html-target-libgo
install-html-target: maybe-install-html-target-libphobos install-html-target: maybe-install-html-target-libphobos
install-html-target: maybe-install-html-target-libtermcap install-html-target: maybe-install-html-target-libtermcap
@ -2229,7 +2219,6 @@ installcheck-target: maybe-installcheck-target-libgcc
installcheck-target: maybe-installcheck-target-libbacktrace installcheck-target: maybe-installcheck-target-libbacktrace
installcheck-target: maybe-installcheck-target-libquadmath installcheck-target: maybe-installcheck-target-libquadmath
installcheck-target: maybe-installcheck-target-libgfortran installcheck-target: maybe-installcheck-target-libgfortran
installcheck-target: maybe-installcheck-target-libobjc
installcheck-target: maybe-installcheck-target-libgo installcheck-target: maybe-installcheck-target-libgo
installcheck-target: maybe-installcheck-target-libphobos installcheck-target: maybe-installcheck-target-libphobos
installcheck-target: maybe-installcheck-target-libtermcap installcheck-target: maybe-installcheck-target-libtermcap
@ -2319,7 +2308,6 @@ mostlyclean-target: maybe-mostlyclean-target-libgcc
mostlyclean-target: maybe-mostlyclean-target-libbacktrace mostlyclean-target: maybe-mostlyclean-target-libbacktrace
mostlyclean-target: maybe-mostlyclean-target-libquadmath mostlyclean-target: maybe-mostlyclean-target-libquadmath
mostlyclean-target: maybe-mostlyclean-target-libgfortran mostlyclean-target: maybe-mostlyclean-target-libgfortran
mostlyclean-target: maybe-mostlyclean-target-libobjc
mostlyclean-target: maybe-mostlyclean-target-libgo mostlyclean-target: maybe-mostlyclean-target-libgo
mostlyclean-target: maybe-mostlyclean-target-libphobos mostlyclean-target: maybe-mostlyclean-target-libphobos
mostlyclean-target: maybe-mostlyclean-target-libtermcap mostlyclean-target: maybe-mostlyclean-target-libtermcap
@ -2409,7 +2397,6 @@ clean-target: maybe-clean-target-libgcc
clean-target: maybe-clean-target-libbacktrace clean-target: maybe-clean-target-libbacktrace
clean-target: maybe-clean-target-libquadmath clean-target: maybe-clean-target-libquadmath
clean-target: maybe-clean-target-libgfortran clean-target: maybe-clean-target-libgfortran
clean-target: maybe-clean-target-libobjc
clean-target: maybe-clean-target-libgo clean-target: maybe-clean-target-libgo
clean-target: maybe-clean-target-libphobos clean-target: maybe-clean-target-libphobos
clean-target: maybe-clean-target-libtermcap clean-target: maybe-clean-target-libtermcap
@ -2499,7 +2486,6 @@ distclean-target: maybe-distclean-target-libgcc
distclean-target: maybe-distclean-target-libbacktrace distclean-target: maybe-distclean-target-libbacktrace
distclean-target: maybe-distclean-target-libquadmath distclean-target: maybe-distclean-target-libquadmath
distclean-target: maybe-distclean-target-libgfortran distclean-target: maybe-distclean-target-libgfortran
distclean-target: maybe-distclean-target-libobjc
distclean-target: maybe-distclean-target-libgo distclean-target: maybe-distclean-target-libgo
distclean-target: maybe-distclean-target-libphobos distclean-target: maybe-distclean-target-libphobos
distclean-target: maybe-distclean-target-libtermcap distclean-target: maybe-distclean-target-libtermcap
@ -2589,7 +2575,6 @@ maintainer-clean-target: maybe-maintainer-clean-target-libgcc
maintainer-clean-target: maybe-maintainer-clean-target-libbacktrace maintainer-clean-target: maybe-maintainer-clean-target-libbacktrace
maintainer-clean-target: maybe-maintainer-clean-target-libquadmath maintainer-clean-target: maybe-maintainer-clean-target-libquadmath
maintainer-clean-target: maybe-maintainer-clean-target-libgfortran maintainer-clean-target: maybe-maintainer-clean-target-libgfortran
maintainer-clean-target: maybe-maintainer-clean-target-libobjc
maintainer-clean-target: maybe-maintainer-clean-target-libgo maintainer-clean-target: maybe-maintainer-clean-target-libgo
maintainer-clean-target: maybe-maintainer-clean-target-libphobos maintainer-clean-target: maybe-maintainer-clean-target-libphobos
maintainer-clean-target: maybe-maintainer-clean-target-libtermcap maintainer-clean-target: maybe-maintainer-clean-target-libtermcap
@ -2737,7 +2722,6 @@ check-target: \
maybe-check-target-libbacktrace \ maybe-check-target-libbacktrace \
maybe-check-target-libquadmath \ maybe-check-target-libquadmath \
maybe-check-target-libgfortran \ maybe-check-target-libgfortran \
maybe-check-target-libobjc \
maybe-check-target-libgo \ maybe-check-target-libgo \
maybe-check-target-libphobos \ maybe-check-target-libphobos \
maybe-check-target-libtermcap \ maybe-check-target-libtermcap \
@ -2929,7 +2913,6 @@ install-target: \
maybe-install-target-libbacktrace \ maybe-install-target-libbacktrace \
maybe-install-target-libquadmath \ maybe-install-target-libquadmath \
maybe-install-target-libgfortran \ maybe-install-target-libgfortran \
maybe-install-target-libobjc \
maybe-install-target-libgo \ maybe-install-target-libgo \
maybe-install-target-libphobos \ maybe-install-target-libphobos \
maybe-install-target-libtermcap \ maybe-install-target-libtermcap \
@ -3039,7 +3022,6 @@ install-strip-target: \
maybe-install-strip-target-libbacktrace \ maybe-install-strip-target-libbacktrace \
maybe-install-strip-target-libquadmath \ maybe-install-strip-target-libquadmath \
maybe-install-strip-target-libgfortran \ maybe-install-strip-target-libgfortran \
maybe-install-strip-target-libobjc \
maybe-install-strip-target-libgo \ maybe-install-strip-target-libgo \
maybe-install-strip-target-libphobos \ maybe-install-strip-target-libphobos \
maybe-install-strip-target-libtermcap \ maybe-install-strip-target-libtermcap \

36
nix/standalone.nix Normal file
View File

@ -0,0 +1,36 @@
# flake part to add a 'standalone' build of retro68 for all archs,
# i.e. a build that does not rely on nixpkgs's wrapper setup.
# this might be what should be put into a docker image.
# Warning: does not yet work.
{ ... }: {
perSystem = { self', pkgs, ... }: {
packages.standalone = pkgs.runCommand "Retro68" { } ''
mkdir -p $out/m68k-apple-macos/cmake
mkdir -p $out/powerpc-apple-macos/cmake
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.libretro}/. $out/m68k-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.m68k.retro68.multiversal}/. $out/m68k-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.libretro}/. $out/powerpc-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.powerpc.retro68.multiversal}/. $out/powerpc-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.libretro}/. $out/powerpc-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${self'.legacyPackages.pkgsCross.carbon.retro68.multiversal}/. $out/powerpc-apple-macos
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.tools}/. $out
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.retro68.hfsutils}/. $out
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.cmake}/. $out
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.gnumake}/. $out
${pkgs.xorg.lndir}/bin/lndir -silent ${pkgs.ninja}/. $out
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.m68k.buildPackages.retro68.gcc_unwrapped}/. $out
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.powerpc.buildPackages.retro68.gcc_unwrapped}/. $out
${pkgs.rsync}/bin/rsync -a ${self'.legacyPackages.pkgsCross.carbon.buildPackages.retro68.gcc_unwrapped}/. $out
substitute ${../cmake/retro68.toolchain.cmake.in} $out/m68k-apple-macos/cmake/retro68.toolchain.cmake --subst-var-by RETRO68_ROOT $out
substitute ${../cmake/retroppc.toolchain.cmake.in} $out/powerpc-apple-macos/cmake/retroppc.toolchain.cmake --subst-var-by RETRO68_ROOT $out
substitute ${../cmake/retrocarbon.toolchain.cmake.in} $out/powerpc-apple-macos/cmake/retrocarbon.toolchain.cmake --subst-var-by RETRO68_ROOT $out
cp ${../cmake/add_application.cmake} $out/m68k-apple-macos/cmake/add_application.cmake
cp -r ${../cmake/Platform} $out/m68k-apple-macos/cmake/Platform
cp -r ${../cmake/Platform} $out/powerpc-apple-macos/cmake/Platform
'';
};
}