diff options
Diffstat (limited to 'bootstrap/Makefile')
-rw-r--r-- | bootstrap/Makefile | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/bootstrap/Makefile b/bootstrap/Makefile index 5e3d9d3..3e0f75e 100644 --- a/bootstrap/Makefile +++ b/bootstrap/Makefile @@ -84,6 +84,12 @@ C_HEADERS = \ $(srcdir)/out.h \ $(srcdir)/compiler.h \ $(srcdir)/token.h +RTL_OBJECTS = \ + $(builddir)/rtl/cli.o \ + $(builddir)/rtl/fail.o \ + $(builddir)/rtl/message.o \ + $(builddir)/rtl/string.o \ + $(builddir)/rtl/writer.o RTL_C_SOURCES = \ $(srcdir)/rtl/cli.c \ $(srcdir)/rtl/fail.c \ @@ -93,10 +99,10 @@ RTL_C_SOURCES = \ RTL_C_HEADERS = \ $(srcdir)/rtlincl/rtl.h \ $(srcdir)/rtl/internal.h -# TODO should use separate compilation for these too -# (but should it use HOST_CC or not? should it be possible to override?) -STAGE2_C_SOURCES = \ - $(RTL_C_SOURCES) \ +STAGE2_OBJECTS = \ + $(RTL_OBJECTS) \ + $(builddir)/stage2_gen.o +STAGE2_C_SOURCE = \ $(builddir)/stage2_gen.c STAGE2_INCLUDE = \ -I$(srcdir)/rtlincl @@ -114,10 +120,13 @@ $(OBJECTS): $(srcdir)/compiler.h out.o outcommon.o outdecl.o outexpr.o outstmt.o: $(srcdir)/out.h ast.o funccall.o out.o parsedecl.o parseexpr.o parsestmt.o \ token.o typechk.o: $(srcdir)/token.h +$(RTL_OBJECTS): $(RTL_C_HEADERS) .SUFFIXES: .c .o +# Note: the stage2 includes (rtlincl/ and rtl/) may only be used in actual +# stage2 code and in the RTL code, not in any other places! .c.o: - $(HOST_CC) $(HOST_CFLAGS) $(BASE_CFLAGS) -c -o $@ $< + $(HOST_CC) $(HOST_CFLAGS) $(BASE_CFLAGS) $(STAGE2_INCLUDE) -c -o $@ $< $(builddir)/stage1: $(OBJECTS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ $(OBJECTS) @@ -125,12 +134,12 @@ $(builddir)/stage1-boundschecked: $(C_SOURCES) $(C_HEADERS) tcc -b -bt24 -o $@ $(C_SOURCES) $(builddir)/stage2_gen.c: $(builddir)/stage1 $(COMPILER_SOURCES) $(builddir)/stage1 $(STAGE1_ARGS) -$(builddir)/stage2: $(STAGE2_C_SOURCES) $(RTL_C_HEADERS) +$(builddir)/stage2: $(STAGE2_OBJECTS) $(RTL_C_HEADERS) $(CC) $(CFLAGS) $(BASE_CFLAGS) $(STAGE2_DISABLED_WARNINGS) \ $(STAGE2_CFLAGS) $(LDFLAGS) \ $(STAGE2_INCLUDE) \ -o $@ \ - $(STAGE2_C_SOURCES) + $(STAGE2_OBJECTS) .PHONY: all check check-all check-boundschecked check-valgrind \ check-pmccabe clang-analyze clean gcc-analyzer gdb-stage1 \ @@ -166,6 +175,7 @@ clean: $(builddir)/stage1-boundschecked \ $(builddir)/stage2_gen.c \ $(builddir)/stage2 \ - $(OBJECTS) + $(OBJECTS) \ + $(STAGE2_OBJECTS) outdirs: - $(MKDIR_P) $(builddir) + $(MKDIR_P) $(builddir) $(builddir)/rtl |