Merge pull request #30 from GruelingPine185/0.6.0

Mac Support
This commit is contained in:
2022-09-24 14:52:43 +10:00
committed by GitHub
16 changed files with 35 additions and 18 deletions

2
.gitignore vendored
View File

@@ -4,6 +4,7 @@
*.suo
*.ncb
*.user
compile_commands.json
#Directories
Release/
@@ -12,6 +13,7 @@ Out/
release/
debug/
out/
.cache/
#Project generated files
*.db

View File

@@ -19,11 +19,9 @@ Special thanks to http://craftinginterpreters.com/ for their fantastic book that
## Building
For windows, simply run `make` in the root directory.
For Windows and MacOS, simply run `make` in the root directory.
For linux, run `make repl-static` in the root directory (see [this issue for details](https://github.com/Ratstail91/Toy/issues/26)).
For mac, good luck.
For Linux, run `make repl-static` in the root directory (see [this issue for details](https://github.com/Ratstail91/Toy/issues/26)).
## Syntax

View File

@@ -45,6 +45,16 @@ else ifeq ($(shell uname),Linux)
find . -empty -type d -delete
else ifeq ($(OS),Windows_NT)
$(RM) *.o *.a *.exe
else ifeq ($(shell uname),Darwin)
find . -type f -name '*.o' -exec rm -f -r -v {} \;
find . -type f -name '*.a' -exec rm -f -r -v {} \;
find . -type f -name '*.exe' -exec rm -f -r -v {} \;
find . -type f -name '*.dll' -exec rm -f -r -v {} \;
find . -type f -name '*.lib' -exec rm -f -r -v {} \;
find . -type f -name '*.dylib' -exec rm -f -r -v {} \;
find . -type f -name '*.so' -exec rm -f -r -v {} \;
rm -rf out
find . -empty -type d -delete
else
@echo "Deletion failed - what platform is this?"
endif

View File

@@ -96,4 +96,3 @@ int hookStandard(Interpreter* interpreter, Literal identifier, Literal alias) {
return 0;
}

View File

@@ -7,11 +7,16 @@ LIBS+=-ltoy
ODIR = obj
SRC = $(wildcard *.c)
OBJ = $(addprefix $(ODIR)/,$(SRC:.c=.o))
OUTNAME=toy
OUT=../$(TOY_OUTDIR)/toyrepl
all: $(OBJ)
ifeq ($(shell uname),Darwin)
cp $(PWD)/$(TOY_OUTDIR)/lib$(OUTNAME).dylib /usr/local/lib/
$(CC) -DTOY_IMPORT $(CFLAGS) -o $(OUT) $(OBJ) $(LIBS)
else
$(CC) -DTOY_IMPORT $(CFLAGS) -o $(OUT) $(OBJ) -L$(realpath $(shell pwd)/../$(TOY_OUTDIR)) $(LIBS)
endif
$(OBJ): | $(ODIR)
@@ -25,3 +30,4 @@ $(ODIR)/%.o: %.c
clean:
$(RM) $(ODIR)
rm /usr/local/lib/lib$(OUTNAME).dylib

View File

@@ -9,4 +9,3 @@ int _push(Interpreter* interpreter, LiteralArray* arguments);
int _pop(Interpreter* interpreter, LiteralArray* arguments);
int _length(Interpreter* interpreter, LiteralArray* arguments);
int _clear(Interpreter* interpreter, LiteralArray* arguments);

View File

@@ -21,6 +21,9 @@ else ifeq ($(shell uname),Linux)
else ifeq ($(OS),Windows_NT)
LIBLINE =-Wl,--out-implib=../$(TOY_OUTDIR)/lib$(OUTNAME).dll.a -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive $(OBJ) -Wl,--no-whole-archive
OUT=../$(TOY_OUTDIR)/$(OUTNAME).dll
else ifeq ($(shell uname),Darwin)
LIBLINE = $(OBJ)
OUT=../$(TOY_OUTDIR)/lib$(OUTNAME).dylib
else
@echo "Platform test failed - what platform is this?"
exit 1