11ZGB_PATH_UNIX := $(subst ',,$(subst \,/,'$(ZGB_PATH)'))
22GBDK_HOME := $(ZGB_PATH_UNIX)/../env/gbdk
3- PATH := $(ZGB_PATH_UNIX)/../env/make-3.81-bin/bin;$(ZGB_PATH_UNIX)/../env/gbdk/bin/SDCC/bin ;$(ZGB_PATH_UNIX)/../env/msys/bin;$(PATH)
3+ PATH := $(ZGB_PATH_UNIX)/../env/make-3.81-bin/bin;$(ZGB_PATH_UNIX)/../env/gbdk/bin;$(ZGB_PATH_UNIX)/../env/msys/bin;$(PATH)
44
55#--- Default build will be release. Can be overiden passing BUILD_TYPE = debug as a parameter
66BUILD_TYPE = Release
7- CGB = yes
8-
9- ifneq (,$(findstring Release,$(BUILD_TYPE)))
10- BUILD_DEFS += -DNDEBUG
11- else
12- PROJECT_NAME := $(PROJECT_NAME)_Debug
13- endif
147
158OBJDIR = ../$(BUILD_TYPE)
169OBJDIR_RES_SRC = ../res/src
1710OBJDIR_RES = ../$(BUILD_TYPE)/res
1811OBJDIR_ZGB = ../$(BUILD_TYPE)/zgb
1912BINDIR = ../bin
2013
21- LCC = $(GBDK_HOME)/bin/lcc
2214SDCC = sdcc
2315SDASGB = sdasgb
16+ SDLDGB = sdldgb
17+ MAKEBIN = makebin
18+ IHXCHECK = ihxcheck
19+
2420GBR2C = $(ZGB_PATH_UNIX)/../tools/gbr2c/gbr2c
2521GBM2C = $(ZGB_PATH_UNIX)/../tools/gbm2c/gbm2c
2622PNGB = $(ZGB_PATH_UNIX)/../env/pngb
2723MOD2GBT = $(ZGB_PATH_UNIX)/../env/mod2gbt
2824BGB = $(ZGB_PATH_UNIX)/../env/bgb/bgb
2925ROMVIEW = $(ZGB_PATH_UNIX)/../env/romview/romview.exe
3026
31- ifneq ($(strip $(N_BANKS)),)
32- LFLAGS_NBANKS = -Wl-yt1 -Wl-yo$(N_BANKS)
33- endif
34-
3527CFLAGS = -mgbz80 --no-std-crt0 --fsigned-char --use-stdout -Dnonbanked= -I$(GBDK_HOME)/include -I$(GBDK_HOME)/include/asm $(BUILD_DEFS) -I../include -I$(ZGB_PATH_UNIX)/include
3628CFLAGS += -DFILE_NAME=$(basename $(<F))
3729
30+ #since I am placing my OAM mirror at the end of the ram (0xDF00-0xDFFF) I need to move the stack to 0xDEFF
31+ LNAMES=-g _shadow_OAM=0xC000 -g .STACK=0xDEFF -g .refresh_OAM=0xFF80 -b _DATA=0xc0a0 -b _CODE=0x0200
32+ LFLAGS=-n -m -j -w -i -k $(GBDK_HOME)/lib/small/asxxxx/gbz80/ -l gbz80.lib -k $(GBDK_HOME)/lib/small/asxxxx/gb/ -l gb.lib -k $(OBJDIR_ZGB)/ -l zgb.lib $(LNAMES)
33+
34+ ifneq ($(strip $(N_BANKS)),)
35+ BINFLAGS = -yt 1 -yo $(N_BANKS)
36+ endif
37+
38+ # DMG/Color flags
3839EXTENSION = gb
3940ifneq (,$(findstring Color,$(BUILD_TYPE)))
40- LFLAGS_NBANKS += -Wl-yp0x143=0xC0
41+ BINFLAGS += -yc
4142 CFLAGS += -DCGB
4243 EXTENSION = gbc
4344endif
4445
45- LFLAGS = -Wl-m -Wl-j $(LFLAGS_NBANKS)
46-
47- #since I am placing my OAM mirror at the end of the ram (0xDF00-0xDFFF) I need to move the stack to 0xDEFF
48- LFLAGS += -Wl-g.STACK=0xDEFF
46+ # Release/Debug flags
47+ ifneq (,$(findstring Debug,$(BUILD_TYPE)))
48+ CFLAGS += --debug
49+ LFLAGS += -y
50+ PROJECT_NAME := $(PROJECT_NAME)_Debug
51+ else
52+ CFLAGS += -DNDEBUG
53+ endif
4954
5055current_dir = $(shell pwd)
5156
@@ -127,7 +132,7 @@ $(OBJDIR_ZGB):
127132
128133$(OBJDIR)/zgb/%.o: $(ZGB_PATH_UNIX)/src/%.s
129134 @echo compiling $<
130- @$(SDASGB) -plosgff -I"libc" $(filter --constseg CODE_%, $(subst .b,--constseg CODE_,$(suffix $(<:%.s=%)))) -c -o $@ $<
135+ @$(SDASGB) -plosgff -I"libc" -I$(GBDK_HOME)/lib/small/asxxxx $(filter --constseg CODE_%, $(subst .b,--constseg CODE_,$(suffix $(<:%.s=%)))) -c -o $@ $<
131136
132137$(OBJDIR)/zgb/%.o: $(ZGB_PATH_UNIX)/src/%.c
133138 @echo compiling $<
@@ -149,11 +154,12 @@ $(OBJDIR)/%.o: %.c
149154
150155$(BINDIR)/$(PROJECT_NAME).$(EXTENSION): $(OBJDIR_ZGB)/zgb.lib $(OBJDIR) $(OBJDIR_RES) $(OBJDIR_RES_SRC) $(BINDIR) $(OBJS)
151156 @echo Linking
152- $(LCC) $(LFLAGS) -k$(OBJDIR_ZGB) -lzgb.lib -o $(OBJDIR)/$(PROJECT_NAME).$(EXTENSION) $(OBJS)
153- mv .map $(OBJDIR)/$(PROJECT_NAME).map
154- mv .sym $(OBJDIR)/$(PROJECT_NAME).sym
155- $(ROMVIEW) $(OBJDIR)/$(PROJECT_NAME).$(EXTENSION) 255
156- mv $(OBJDIR)/$(PROJECT_NAME).$(EXTENSION) $(BINDIR)/$(PROJECT_NAME).$(EXTENSION)
157+ @$(SDLDGB) $(LFLAGS) $(OBJDIR)/$(PROJECT_NAME).ihx $(GBDK_HOME)/lib/small/asxxxx/gb/crt0.o $(OBJS)
158+ @$(IHXCHECK) $(OBJDIR)/$(PROJECT_NAME).ihx -e
159+ @$(MAKEBIN) -Z $(BINFLAGS) $(OBJDIR)/$(PROJECT_NAME).ihx $(OBJDIR)/$(PROJECT_NAME).$(EXTENSION)
160+ @$(ROMVIEW) $(OBJDIR)/$(PROJECT_NAME).$(EXTENSION) 255
161+ @mv $(OBJDIR)/$(PROJECT_NAME).$(EXTENSION) $(BINDIR)/$(PROJECT_NAME).$(EXTENSION)
162+ @rm -f *.adb
157163
158164build_lib: $(OBJDIR) $(OBJS)
159165
0 commit comments