@@ -23,14 +23,17 @@ ifeq ($(OS),Windows_NT)
2323NATIVEPATH = $(subst /,\,$(1))
2424WINPATH = $(NATIVEPATH)
2525WINRELPATH = $(subst /,\,$(1))
26+ WINCHKDIR = if not exist $(1)
2627RM = del /q /f 2>nul
2728CEDEV ?= $(call NATIVEPATH,$(realpath ..\..))
28- BIN = $(CEDEV)/bin
29+ BIN ? = $(call NATIVEPATH,$( CEDEV)/bin)
2930AS = $(call NATIVEPATH,$(BIN)/ez80asm.exe)
3031LD = $(call NATIVEPATH,$(BIN)/ez80link.exe)
3132CC = $(call NATIVEPATH,$(BIN)/ez80cc.exe)
3233CD = cd
3334CP = copy /Y
35+ CV = $(call NATIVEPATH,$(BIN)/convhex.exe)
36+ PG = $(call NATIVEPATH,$(BIN)/convpng.exe)
3437NULL = >nul 2>&1
3538RMDIR = rmdir /s /q
3639MKDIR = mkdir
@@ -41,15 +44,15 @@ WINPATH = $(subst \,\\,$(shell winepath --windows $(1)))
4144WINRELPATH = $(subst /,\,$(1))
4245RM = rm --force
4346CEDEV ?= $(call NATIVEPATH,$(realpath ..\..))
44- BIN = $(CEDEV)/bin
47+ BIN ? = $(call NATIVEPATH,$( CEDEV)/bin)
4548AS = $(call NATIVEPATH,wine $(BIN)/ez80asm.exe)
4649LD = $(call NATIVEPATH,wine $(BIN)/ez80link.exe)
4750CC = $(call NATIVEPATH,wine $(BIN)/ez80cc.exe)
4851CD = cd
4952CP = cp
5053CV = $(call NATIVEPATH,$(BIN)/convhex)
5154PG = $(call NATIVEPATH,$(BIN)/convpng)
52- NULL = >nul 2>&1
55+ NULL =
5356RMDIR = rm -rf
5457MKDIR = mkdir -p
5558chain := ;
@@ -73,7 +76,7 @@ LIBHEADER_OBJ := $(LIBHEADER_ASM:%.asm=%.obj)
7376
7477
7578#Find all the directories in the source input
76- ALLDIRS := $(call NATIVEPATH,$( sort $(dir $(wildcard $(SRCDIR)/*/) )))
79+ ALLDIRS := $(sort $(dir $(wildcard $(SRCDIR)/*/)))
7780
7881#Determine if output should be archived or compressed
7982ifeq ($(ARCHIVED),YES)
@@ -217,11 +220,20 @@ LDFLAGS := \
217220
218221ifneq ($(OS),Windows_NT)
219222 LDFLAGS := '$(LDFLAGS)'
223+ else
224+ WINCHKBINDIR := $(WINCHKDIR)$(BINDIR)
225+ WINCHKOBJDIR := $(WINCHKDIR)$(OBJDIR)
220226endif
221227
222228#This rule is trigged to build everything
223- all: $(BINDIR) $(OBJDIR) $(BINDIR)/$(TARGET8XP)
224-
229+ all: add_dirs $(BINDIR)/$(TARGET8XP)
230+ @echo "Finished."
231+
232+ add_dirs:
233+ @$(WINCHKBINDIR) $(MKDIR) $(BINDIR)
234+ @$(WINCHKOBJDIR) $(MKDIR) $(OBJDIR)
235+ @echo "Looking for changes..."
236+
225237$(BINDIR)/$(TARGET8XP): $(BINDIR)/$(TARGETHEX)
226238 $(CD) $(BINDIR) $(chain) \
227239 $(CV) $(CVFLAGS) $(notdir $<)
@@ -230,13 +242,6 @@ $(BINDIR)/$(TARGETHEX): $(CSTARTUPOBJ) $(LIBHOBJ) $(OBJECTS)
230242 echo C CE SDK Version $(VERSION)
231243 $(LD) $(LDFLAGS) $@ = "$(subst $(space),$(comma),$(call WINRELPATH,$^) $(LOBJECTS) $(LIBRARIES))"
232244
233- $(OBJDIR):
234- echo $(OBJECTS)
235- $(MKDIR) $(OBJDIR)
236-
237- $(BINDIR):
238- $(MKDIR) $(BINDIR)
239-
240245#This rule handles conversion of the icon, if it is ever updated
241246$(OBJDIR)/$(ICON_OBJ): $(ICONPNG)
242247 $(ICON_CONV) $(chain) \
@@ -274,5 +279,5 @@ clean:
274279version:
275280 @echo C SDK Version $(VERSION)
276281
277- .PHONY: all clean version
278-
282+ .PHONY: all clean version add_dirs
283+
0 commit comments