mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-19 16:54:08 +10:00
2
.gitignore
vendored
2
.gitignore
vendored
@@ -4,6 +4,7 @@
|
|||||||
*.suo
|
*.suo
|
||||||
*.ncb
|
*.ncb
|
||||||
*.user
|
*.user
|
||||||
|
compile_commands.json
|
||||||
|
|
||||||
#Directories
|
#Directories
|
||||||
Release/
|
Release/
|
||||||
@@ -12,6 +13,7 @@ Out/
|
|||||||
release/
|
release/
|
||||||
debug/
|
debug/
|
||||||
out/
|
out/
|
||||||
|
.cache/
|
||||||
|
|
||||||
#Project generated files
|
#Project generated files
|
||||||
*.db
|
*.db
|
||||||
|
|||||||
@@ -19,11 +19,9 @@ Special thanks to http://craftinginterpreters.com/ for their fantastic book that
|
|||||||
|
|
||||||
## Building
|
## 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 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.
|
|
||||||
|
|
||||||
## Syntax
|
## Syntax
|
||||||
|
|
||||||
|
|||||||
10
makefile
10
makefile
@@ -45,6 +45,16 @@ else ifeq ($(shell uname),Linux)
|
|||||||
find . -empty -type d -delete
|
find . -empty -type d -delete
|
||||||
else ifeq ($(OS),Windows_NT)
|
else ifeq ($(OS),Windows_NT)
|
||||||
$(RM) *.o *.a *.exe
|
$(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
|
else
|
||||||
@echo "Deletion failed - what platform is this?"
|
@echo "Deletion failed - what platform is this?"
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -96,4 +96,3 @@ int hookStandard(Interpreter* interpreter, Literal identifier, Literal alias) {
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,16 @@ LIBS+=-ltoy
|
|||||||
ODIR = obj
|
ODIR = obj
|
||||||
SRC = $(wildcard *.c)
|
SRC = $(wildcard *.c)
|
||||||
OBJ = $(addprefix $(ODIR)/,$(SRC:.c=.o))
|
OBJ = $(addprefix $(ODIR)/,$(SRC:.c=.o))
|
||||||
|
OUTNAME=toy
|
||||||
OUT=../$(TOY_OUTDIR)/toyrepl
|
OUT=../$(TOY_OUTDIR)/toyrepl
|
||||||
|
|
||||||
all: $(OBJ)
|
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)
|
$(CC) -DTOY_IMPORT $(CFLAGS) -o $(OUT) $(OBJ) -L$(realpath $(shell pwd)/../$(TOY_OUTDIR)) $(LIBS)
|
||||||
|
endif
|
||||||
|
|
||||||
$(OBJ): | $(ODIR)
|
$(OBJ): | $(ODIR)
|
||||||
|
|
||||||
@@ -25,3 +30,4 @@ $(ODIR)/%.o: %.c
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) $(ODIR)
|
$(RM) $(ODIR)
|
||||||
|
rm /usr/local/lib/lib$(OUTNAME).dylib
|
||||||
|
|||||||
@@ -9,4 +9,3 @@ int _push(Interpreter* interpreter, LiteralArray* arguments);
|
|||||||
int _pop(Interpreter* interpreter, LiteralArray* arguments);
|
int _pop(Interpreter* interpreter, LiteralArray* arguments);
|
||||||
int _length(Interpreter* interpreter, LiteralArray* arguments);
|
int _length(Interpreter* interpreter, LiteralArray* arguments);
|
||||||
int _clear(Interpreter* interpreter, LiteralArray* arguments);
|
int _clear(Interpreter* interpreter, LiteralArray* arguments);
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,9 @@ else ifeq ($(shell uname),Linux)
|
|||||||
else ifeq ($(OS),Windows_NT)
|
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
|
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
|
OUT=../$(TOY_OUTDIR)/$(OUTNAME).dll
|
||||||
|
else ifeq ($(shell uname),Darwin)
|
||||||
|
LIBLINE = $(OBJ)
|
||||||
|
OUT=../$(TOY_OUTDIR)/lib$(OUTNAME).dylib
|
||||||
else
|
else
|
||||||
@echo "Platform test failed - what platform is this?"
|
@echo "Platform test failed - what platform is this?"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user