@@ -9,6 +9,7 @@ INIT_LOC ?= D1A87F
9
9
USE_FLASH_FUNCTIONS ?= YES
10
10
OUTPUT_MAP ?= YES
11
11
ARCHIVED ?= NO
12
+ OPT_MODE ?= -optsize
12
13
#----------------------------
13
14
SRCDIR ?= src
14
15
OBJDIR ?= obj
@@ -37,7 +38,7 @@ CCDEBUGFLAG = -nodebug
37
38
# get the os specific items
38
39
ifeq ($(OS),Windows_NT)
39
40
SHELL := cmd.exe
40
- CURDIR := $(shell cmd /c for %%I in ("$( CURDIR)") do @echo %%~sI )
41
+ MAKEDIR := $(CURDIR)
41
42
NATIVEPATH = $(subst /,\,$(1))
42
43
WINPATH = $(NATIVEPATH)
43
44
WINRELPATH = $(subst /,\,$(1))
@@ -108,8 +109,8 @@ LINK_ASMSOURCES := $(ASMSOURCES)
108
109
LINK_FILES += $(call TOLOWER,$(LINK_CSOURCES))
109
110
LINK_FILES += $(call TOLOWER,$(LINK_CPPSOURCES))
110
111
LINK_FILES += $(LINK_ASMSOURCES)
111
- LINK_FILES += $(wildcard $(CEDEV)/lib/shared/*.src)
112
- LINK_LIBLOAD := $(wildcard $(CEDEV)/lib/libload/*.asm)
112
+ LINK_FILES += $(call NATIVEPATH,$( wildcard $(CEDEV)/lib/shared/*.src) )
113
+ LINK_LIBLOAD := $(call NATIVEPATH,$( wildcard $(CEDEV)/lib/libload/*.asm) )
113
114
114
115
# check if there is an icon present that we can convert; if so, generate a recipe to build it properly
115
116
ifneq ("$(wildcard $(ICONPNG))","")
@@ -141,14 +142,18 @@ endif
141
142
142
143
# define the nesassary headers, along with any the user may have defined, where modification should just trigger a build
143
144
HEADERS :=$(strip $(subst $(space),;,$(call WINPATH,$(sort $(dir $(USERHEADERS))))))
145
+ ifeq ($(words $(HEADERS)),0)
146
+ HEADERS :=$(call WINPATH,$(CEDEV)/include);$(call WINPATH,$(CEDEV)/include/compat)
147
+ else
144
148
HEADERS +=$(strip ;$(call WINPATH,$(CEDEV)/include);$(call WINPATH,$(CEDEV)/include/compat))
149
+ endif
145
150
HEADERS :=$(subst \;,;,$(HEADERS))
146
151
HEADERS :=$(subst \;,;,$(HEADERS))
147
152
HEADERS :=$(subst /;,;,$(HEADERS))
148
153
149
154
# define the C flags used by the Zilog compiler
150
155
CFLAGS ?= \
151
- -noasm $(CCDEBUGFLAG) -nogenprint -keepasm -quiet -optsize -cpu:EZ80F91 -noreduceopt -nolistinc -nomodsect \
156
+ -noasm $(CCDEBUGFLAG) -nogenprint -keepasm -quiet $(OPT_MODE) -cpu:EZ80F91 -noreduceopt -nolistinc -nomodsect \
152
157
-stdinc:"$(HEADERS)" -define:_EZ80F91 -define:_EZ80 -define:$(DEBUGMODE)
153
158
154
159
# these are the linker flags, basically organized to properly set up the environment
@@ -165,8 +170,8 @@ LDFLAGS ?= \
165
170
-i 'locate header at $$$(INIT_LOC)' \
166
171
-i 'libs $(LINK_LIBLOAD)' \
167
172
-i 'order header,icon,launcher,libs,startup,cleanup,exit,code,data,strsect,text' \
168
- -i 'sources " $(F_LAUNCHER)" if libs.length, " $(F_ICON)" if $(U_ICON), " $(F_CLEANUP)" if $(U_CLEANUP)' \
169
- -i 'sources " $(F_STARTUP)" ' \
173
+ -i 'sources ' $(F_LAUNCHER)' if libs.length, ' $(F_ICON)' if $(U_ICON), ' $(F_CLEANUP)' if $(U_CLEANUP)' \
174
+ -i 'sources ' $(F_STARTUP)' ' \
170
175
-i 'deps $(call NATIVEPATH,$(LINK_FILES))'
171
176
172
177
ifneq ($(OS),Windows_NT)
@@ -204,15 +209,15 @@ $(OBJDIR)/$(ICON_ASM): $(ICONPNG)
204
209
205
210
# these rules compile the source files into object files
206
211
$(OBJDIR)/%.src: */%.c $(USERHEADERS)
207
- @$(call SAFEMKDIR,$(@D)) && \
208
- $(CD) $(call NATIVEPATH,$(@D)) && \
209
- $(CC) $(CFLAGS) "$(call WINPATH,$(addprefix $(CURDIR )/,$<))"
212
+ @( $(call SAFEMKDIR,$(@D) )) && \
213
+ ( $(CD) $(call NATIVEPATH,$(@D) )) && \
214
+ $(CC) $(CFLAGS) "$(call WINPATH,$(addprefix $(MAKEDIR )/,$<))"
210
215
211
216
# these rules compile the source files into object files
212
217
$(OBJDIR)/%.src: **/*/%.c $(USERHEADERS)
213
- @$(call SAFEMKDIR,$(@D)) && \
214
- $(CD) $(call NATIVEPATH,$(@D)) && \
215
- $(CC) $(CFLAGS) "$(call WINPATH,$(addprefix $(CURDIR )/,$<))"
218
+ @( $(call SAFEMKDIR,$(@D) )) && \
219
+ ( $(CD) $(call NATIVEPATH,$(@D) )) && \
220
+ $(CC) $(CFLAGS) "$(call WINPATH,$(addprefix $(MAKEDIR )/,$<))"
216
221
217
222
clean:
218
223
@$(RMDIR) $(call NATIVEPATH,$(OBJDIR))
0 commit comments