From 378cb2749a39a85e72748b28a281e4cda678ff19 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Tue, 7 Jul 2015 22:04:16 -0400 Subject: [PATCH] Bootstrapping --- Makefile | 14 ++++++++++--- Makefile-bootstrap | 49 ++++++++++++++++++++++++++-------------------- 2 files changed, 39 insertions(+), 24 deletions(-) diff --git a/Makefile b/Makefile index ae8eedef..50d9b30c 100644 --- a/Makefile +++ b/Makefile @@ -75,6 +75,7 @@ self: ./cyclone scheme/cyclone/libraries.sld ./cyclone scheme/cyclone/transforms.sld ./cyclone scheme/cyclone/cgen.sld + ./cyclone scheme/cyclone/util.sld ./cyclone cyclone-self.scm .PHONY: self2 @@ -90,6 +91,7 @@ self2: ./cyclone-self scheme/cyclone/libraries.sld ./cyclone-self scheme/cyclone/transforms.sld ./cyclone-self scheme/cyclone/cgen.sld + ./cyclone-self scheme/cyclone/util.sld ./cyclone-self cyclone-self.scm # TODO: this is ugly and needs lots of work yet... @@ -100,9 +102,13 @@ self2: # which can be done from a fixed location) .PHONY: bootstrap bootstrap: - $(MAKE) self2 +# $(MAKE) self2 rm -rf tmp mkdir -p tmp/scheme/cyclone + cp cyclone.h tmp + cp runtime-main.h tmp + cp runtime.h tmp + cp runtime.c tmp cp scheme/base.c tmp/scheme cp scheme/read.c tmp/scheme cp scheme/write.c tmp/scheme @@ -110,11 +116,13 @@ bootstrap: cp scheme/eval.c tmp/scheme cp scheme/file.c tmp/scheme cp scheme/cyclone/common.c tmp/scheme/cyclone - cp icyc.c tmp +# cp icyc.c tmp + cp icyc.scm tmp cp scheme/cyclone/libraries.c tmp/scheme/cyclone cp scheme/cyclone/transforms.c tmp/scheme/cyclone cp scheme/cyclone/cgen.c tmp/scheme/cyclone - cp cyclone-self.c tmp + cp scheme/cyclone/util.c tmp/scheme/cyclone + cp cyclone-self.c tmp/cyclone.c cp Makefile-bootstrap tmp/Makefile diff --git a/Makefile-bootstrap b/Makefile-bootstrap index 77290177..5a545093 100644 --- a/Makefile-bootstrap +++ b/Makefile-bootstrap @@ -1,31 +1,38 @@ # TODO -"gcc test2.c -I/home/justin/Documents/cyclone/ -g -c -o test2.o""gcc test2.o /home/justin/Documents/cyclone/scheme/base.o /home/justin/Documents/cyclone/scheme/write.o /home/justin/Documents/cyclone/scheme/file.o -L/home/justin/Documents/cyclone/ -lcyclone -lm -I/home/justin/Documents/cyclone/ -g -o test2 +#gcc test2.c -I/home/justin/Documents/cyclone/ -g -c -o test2.o +#gcc test2.o /home/justin/Documents/cyclone/scheme/base.o /home/justin/Documents/cyclone/scheme/write.o /home/justin/Documents/cyclone/scheme/file.o -L/home/justin/Documents/cyclone/ -lcyclone -lm -I/home/justin/Documents/cyclone/ -g -o test2 +#"gcc cyclone-self.o /home/justin/Documents/cyclone/scheme/base.o /home/justin/Documents/cyclone/scheme/char.o /home/justin/Documents/cyclone/scheme/file.o /home/justin/Documents/cyclone/scheme/read.o /home/justin/Documents/cyclone/scheme/cyclone/util.o /home/justin/Documents/cyclone/scheme/write.o /home/justin/Documents/cyclone/scheme/cyclone/common.o /home/justin/Documents/cyclone/scheme/cyclone/libraries.o /home/justin/Documents/cyclone/scheme/eval.o /home/justin/Documents/cyclone/scheme/cyclone/transforms.o /home/justin/Documents/cyclone/scheme/cyclone/cgen.o -L/home/justin/Documents/cyclone/ -lcyclone -lm -I/home/justin/Documents/cyclone/ -g -o cyclone-self" # TODO: let's pretty this up, then port some of that back to the main makefile: -#CC = gcc -#CSTD = -std=c99 -#CFLAGS = $(CSTD) -g -#LIBS = -lcurl -ljson -# -#COBJ = se-api util main http entities -#CFILES = $(addsuffix .c, $(COBJ)) -#COBJECTS=$(CFILES:.c=.o) -# -#TOBJ = se-api util test entities -#TFILES = $(addsuffix .c, $(TOBJ)) -#TOBJECTS=$(TFILES:.c=.o) -# -#%.o: %.c %.h -# $(CC) $(CFLAGS) $< -c -o $@ -# -#stack-watch: $(COBJECTS) config.h -# $(CC) $(CFLAGS) $(COBJECTS) $(LIBS) -o stack-watch -# +CC = gcc +CFLAGS = -g -I. +LIBS = -lcyclone -lm + +COBJ = scheme/base scheme/read scheme/write scheme/char scheme/eval scheme/file scheme/cyclone/common scheme/cyclone/libraries scheme/cyclone/transforms scheme/cyclone/cgen scheme/cyclone/util +CFILES = $(addsuffix .c, $(COBJ)) +COBJECTS=$(CFILES:.c=.o) + +%.o: %.c %.h + $(CC) $(CFLAGS) $< -c -o $@ + +all: cyclone icyc + +libcyclone.a: runtime.c runtime.h + $(CC) -g -c runtime.c -o runtime.o + ar rcs libcyclone.a runtime.o + +cyclone: $(COBJECTS) libcyclone.a + $(CC) cyclone.c $(CFLAGS) -c -o cyclone.o + $(CC) cyclone.o $(COBJECTS) -L. $(LIBS) $(CFLAGS) -o cyclone + +icyc: cyclone + ./cyclone icyc.scm + #test: $(TOBJECTS) config.h # $(CC) $(CFLAGS) $(TOBJECTS) $(LIBS) -o stack-tests # ./stack-tests -# + #.PHONY: clean #clean: # rm -rf a.out http stack-watch stack-tests *.o