tinyscheme: fix the build on macOS
This commit is contained in:
parent
17fb7518ff
commit
8f0ec82696
@ -0,0 +1,24 @@
|
||||
diff --git a/scheme.c b/scheme.c
|
||||
index 6186ef0..5a43592 100644
|
||||
--- a/scheme.c
|
||||
+++ b/scheme.c
|
||||
@@ -4949,19 +4949,7 @@ pointer scheme_eval(scheme *sc, pointer obj)
|
||||
|
||||
#if STANDALONE
|
||||
|
||||
-#if defined(__APPLE__) && !defined (OSX)
|
||||
-int main()
|
||||
-{
|
||||
- extern MacTS_main(int argc, char **argv);
|
||||
- char** argv;
|
||||
- int argc = ccommand(&argv);
|
||||
- MacTS_main(argc,argv);
|
||||
- return 0;
|
||||
-}
|
||||
-int MacTS_main(int argc, char **argv) {
|
||||
-#else
|
||||
int main(int argc, char **argv) {
|
||||
-#endif
|
||||
scheme sc;
|
||||
FILE *fin;
|
||||
char *file_name=InitFile;
|
@ -0,0 +1,13 @@
|
||||
diff --git a/makefile b/makefile
|
||||
index 4c111a1..8d9e02e 100644
|
||||
--- a/makefile
|
||||
+++ b/makefile
|
||||
@@ -21,7 +21,7 @@
|
||||
CC := $(CC) -fpic -pedantic
|
||||
DEBUG=-g -Wall -Wno-char-subscripts -O
|
||||
Osuf=o
|
||||
-SOsuf=so
|
||||
+SOsuf=dylib
|
||||
LIBsuf=a
|
||||
EXE_EXT=
|
||||
LIBPREFIX=lib
|
@ -13,9 +13,19 @@ stdenv.mkDerivation rec {
|
||||
|
||||
prePatch = "dos2unix makefile";
|
||||
patches = [
|
||||
# The alternate macOS main makes use of `ccommand` which seems to be
|
||||
# `MetroWerks CodeWarrier` specific:
|
||||
# https://ptgmedia.pearsoncmg.com/imprint_downloads/informit/downloads/9780201703535/macfix.html
|
||||
#
|
||||
# In any case, this is not needed to build on macOS.
|
||||
./01-remove-macOS-main.patch
|
||||
|
||||
# We want to have the makefile pick up $CC, etc. so that we don't have
|
||||
# to unnecessarily tie this package to the GCC stdenv.
|
||||
./02-use-toolchain-env-vars.patch
|
||||
] ++ lib.optionals stdenv.targetPlatform.isDarwin [
|
||||
# On macOS the library suffix is .dylib:
|
||||
./03-macOS-SOsuf.patch
|
||||
];
|
||||
postPatch = ''
|
||||
substituteInPlace scheme.c --replace "init.scm" "$out/lib/init.scm"
|
||||
@ -29,7 +39,6 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
broken = stdenv.isDarwin;
|
||||
description = "Lightweight Scheme implementation";
|
||||
longDescription = ''
|
||||
TinyScheme is a lightweight Scheme interpreter that implements as large a
|
||||
@ -40,6 +49,5 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.bsdOriginal;
|
||||
maintainers = [ maintainers.ebzzry ];
|
||||
platforms = platforms.unix;
|
||||
badPlatforms = [ "aarch64-darwin" ];
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user