@@ -7,7 +7,7 @@ CCLEANUP_OBJ ?= ccleanup.obj
7
7
CLEANUP ?= YES
8
8
#----------------------------
9
9
10
- VERSION := 7.4
10
+ VERSION := 7.5
11
11
12
12
#----------------------------
13
13
# try not to edit anything below these lines unless you know what you are doing
@@ -16,10 +16,6 @@ VERSION := 7.4
16
16
#----------------------------
17
17
18
18
# define some common makefile things
19
-
20
- # source: http://blog.jgc.org/2011/07/gnu-make-recursive-wildcard-function.html
21
- rwildcard = $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)$(filter $(subst *,%,$2),$d))
22
-
23
19
empty :=
24
20
space := $(empty) $(empty)
25
21
comma := $(empty),$(empty)
@@ -83,15 +79,15 @@ ICON_OBJ := $(ICON_ASM:%.src=%.obj)
83
79
ALLDIRS := $(sort $(dir $(wildcard $(SRCDIR)/*/)))
84
80
85
81
# find all of the available C, H and ASM files (Remember, you can create C <-> assembly routines easily this way)
86
- CSOURCES := $(call NATIVEPATH,$(call rwildcard ,$(SRCDIR), *.c))
87
- CPPSOURCES := $(call NATIVEPATH,$(call rwildcard ,$(SRCDIR), *.cpp))
88
- USERHEADERS := $(call NATIVEPATH,$(call rwildcard ,$(SRCDIR), *.h))
89
- USERHEADERS += $(call NATIVEPATH,$(call rwildcard ,$(SRCDIR), *.hpp))
90
- ASMSOURCES := $(call NATIVEPATH,$(call rwildcard ,$(SRCDIR), *.asm))
82
+ CSOURCES := $(call NATIVEPATH,$(foreach dir ,$(ALLDIRS),$(wildcard $(dir) *.c) ))
83
+ CPPSOURCES := $(call NATIVEPATH,$(foreach dir ,$(ALLDIRS),$(wildcard $(dir) *.cpp) ))
84
+ USERHEADERS := $(call NATIVEPATH,$(foreach dir ,$(ALLDIRS),$(wildcard $(dir) *.h) ))
85
+ USERHEADERS += $(call NATIVEPATH,$(foreach dir ,$(ALLDIRS),$(wildcard $(dir) *.hpp) ))
86
+ ASMSOURCES := $(call NATIVEPATH,$(foreach dir ,$(ALLDIRS),$(wildcard $(dir) *.asm) ))
91
87
92
88
# figure out what the names of the sources will become once made into objects
93
- OBJECTS : = $(filter %.obj,$(patsubst $(SRCDIR)/%.c,$( OBJDIR)/%.obj ,$(subst \,/, $(CSOURCES) )))
94
- OBJECTS += $(filter %.obj,$(patsubst $(SRCDIR)/%.asm,$( OBJDIR)/%.obj ,$(subst \,/, $(ASMSOURCES) )))
89
+ OBJECTS + = $(addprefix $( OBJDIR)/,$(notdir $(CSOURCES:%.c=%.obj )))
90
+ OBJECTS += $(addprefix $( OBJDIR)/,$(notdir $(ASMSOURCES:%.asm=%.obj )))
95
91
96
92
# check if there is an icon present that we can convert; if so, generate a recipe to build it properly
97
93
ifneq ("$(wildcard $(ICONPNG))","")
@@ -212,11 +208,9 @@ LDFLAGS := \
212
208
213
209
ifneq ($(OS),Windows_NT)
214
210
LDFLAGS := '$(LDFLAGS)'
215
- SAFEMKDIR = $(MKDIR) $(call NATIVEPATH,$1)
216
211
else
217
212
WINCHKBINDIR := $(WINCHKDIR) $(BINDIR)
218
213
WINCHKOBJDIR := $(WINCHKDIR) $(OBJDIR)
219
- SAFEMKDIR = $(WINCHKDIR) $(call NATIVEPATH,$1) $(MKDIR) $(call NATIVEPATH,$1)
220
214
endif
221
215
222
216
# this rule is trigged to build everything
@@ -226,7 +220,7 @@ dirs:
226
220
@echo C CE SDK Version $(VERSION) && \
227
221
$(WINCHKBINDIR) $(MKDIR) $(BINDIR) && \
228
222
$(WINCHKOBJDIR) $(MKDIR) $(OBJDIR)
229
-
223
+
230
224
$(BINDIR)/$(TARGET8XP): $(BINDIR)/$(TARGETHEX)
231
225
@$(CD) $(BINDIR) && \
232
226
$(CV) $(CVFLAGS) $(notdir $<)
@@ -236,43 +230,36 @@ $(BINDIR)/$(TARGETHEX): $(OBJECTS)
236
230
237
231
# this rule handles conversion of the icon, if it is ever updated
238
232
$(OBJDIR)/$(ICON_OBJ): $(ICONPNG)
239
- @$(call SAFEMKDIR,$(@D)) && \
240
- $(ICON_CONV) && \
241
- $(CD) $(call NATIVEPATH,$(@D)) && \
233
+ @$(ICON_CONV) && \
234
+ $(CD) $(OBJDIR) && \
242
235
$(AS) $(ASM_FLAGS) $(ICON_ASM)
243
236
244
237
$(OBJDIR)/%.obj: $(GFXDIR)/%.c $(USERHEADERS)
245
- @$(call SAFEMKDIR,$(@D)) && \
246
- $(CD) $(call NATIVEPATH,$(@D)) && \
238
+ @$(CD) $(OBJDIR) && \
247
239
$(CC) $(CFLAGS) $(call WINPATH,$(addprefix $(CURDIR)/,$<))
248
240
249
241
$(OBJDIR)/%.obj: $(GFXDIR)/%.asm $(USERHEADERS)
250
- @$(call SAFEMKDIR,$(@D)) && \
251
- $(CD) $(call NATIVEPATH,$(@D)) && \
242
+ @$(CD) $(OBJDIR) && \
252
243
$(AS) $(ASM_FLAGS) $(call WINPATH,$(addprefix $(CURDIR)/,$<))
253
244
254
245
# this rule builds the assembly files and places them in the object directory
255
246
$(OBJDIR)/%.obj: $(SRCDIR)/%.asm $(USERHEADERS)
256
- @$(call SAFEMKDIR,$(@D)) && \
257
- $(CD) $(call NATIVEPATH,$(@D)) && \
247
+ @$(CD) $(OBJDIR) && \
258
248
$(AS) $(ASM_FLAGS) $(call WINPATH,$(addprefix $(CURDIR)/,$<))
259
249
260
250
# these rules compile the source files into object files
261
251
$(OBJDIR)/%.obj: $(SRCDIR)/%.c $(USERHEADERS)
262
- @$(call SAFEMKDIR,$(@D)) && \
263
- $(CD) $(call NATIVEPATH,$(@D)) && \
252
+ @$(CD) $(OBJDIR) && \
264
253
$(CC) $(CFLAGS) $(call WINPATH,$(addprefix $(CURDIR)/,$<))
265
254
266
255
# these rules compile the source files into object files
267
256
$(OBJDIR)/%.obj: $(SRCDIR)/*/%.c $(USERHEADERS)
268
- @$(call SAFEMKDIR,$(@D)) && \
269
- $(CD) $(call NATIVEPATH,$(@D)) && \
257
+ @$(CD) $(OBJDIR) && \
270
258
$(CC) $(CFLAGS) $(call WINPATH,$(addprefix $(CURDIR)/,$<))
271
259
272
260
# this rule builds the assembly files and places them in the object directory
273
261
$(OBJDIR)/%.obj: $(SRCDIR)/*/%.asm $(USERHEADERS)
274
- @$(call SAFEMKDIR,$(@D)) && \
275
- $(CD) $(call NATIVEPATH,$(@D)) && \
262
+ @$(CD) $(OBJDIR) && \
276
263
$(AS) $(ASM_FLAGS) $(call WINPATH,$(addprefix $(CURDIR)/,$<))
277
264
278
265
clean:
0 commit comments