From df9a31caa0f829073e19569f566ffd786d7fcae4 Mon Sep 17 00:00:00 2001 From: mateoconlechuga Date: Tue, 12 Nov 2019 20:23:51 -0700 Subject: [PATCH] remove convhex and convcsv and add convbin --- .gitmodules | 9 ++-- examples/fontlib_font_pack/makefile | 2 +- makefile | 47 ++++++++++--------- src/makefile.mk | 72 ++++++++++++++--------------- tools/convbin | 1 + tools/convcsv | 1 - tools/convhex | 1 - 7 files changed, 65 insertions(+), 68 deletions(-) create mode 160000 tools/convbin delete mode 160000 tools/convcsv delete mode 160000 tools/convhex diff --git a/.gitmodules b/.gitmodules index 4f6b37cc8..861172e12 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +1,12 @@ -[submodule "src/tools/convhex"] - path = tools/convhex - url = https://github.com/mateoconlechuga/convhex [submodule "src/tools/convpng"] path = tools/convpng url = https://github.com/mateoconlechuga/convpng -[submodule "tools/convcsv"] - path = tools/convcsv - url = https://github.com/mateoconlechuga/convcsv.git [submodule "tools/fasmg/fasmg-ez80"] path = tools/fasmg/fasmg-ez80 url = https://github.com/jacobly0/fasmg-ez80.git [submodule "tools/convfont"] path = tools/convfont url = https://github.com/drdnar/convfont.git +[submodule "tools/convbin"] + path = tools/convbin + url = https://github.com/mateoconlechuga/convbin.git diff --git a/examples/fontlib_font_pack/makefile b/examples/fontlib_font_pack/makefile index 828d3754b..7ab25b5a5 100644 --- a/examples/fontlib_font_pack/makefile +++ b/examples/fontlib_font_pack/makefile @@ -28,7 +28,7 @@ $(BINDIR)/$(FONTPACKNAME).bin: $(SRCDIR)/drsans-06-bold.fnt $(SRCDIR)/drsans-06- $(BINDIR)/$(FONTPACKNAME).bin $(BINDIR)/$(FONTPACKNAME).8xv: $(BINDIR)/$(FONTPACKNAME).bin - convhex -a -v -n $(FONTPACKNAME) $(BINDIR)/$(FONTPACKNAME).bin $(BINDIR)/$(FONTPACKNAME).8xv + convbin --iformat bin --input $(BINDIR)/$(FONTPACKNAME).bin --oformat 8xv --output $(BINDIR)/$(FONTPACKNAME).8xv --archive --name $(FONTPACKNAME) all: $(BINDIR)/$(FONTPACKNAME).8xv diff --git a/makefile b/makefile index 9e42e69ac..92d0fb4c5 100644 --- a/makefile +++ b/makefile @@ -55,9 +55,8 @@ APPEND_FILES = $(foreach file,$(addprefix ../../lib/$2/,$(notdir $3)),$(call APP TOOLSDIR := $(call NATIVEPATH,$(CURDIR)/tools) SRCDIR := $(call NATIVEPATH,$(CURDIR)/src) FASMGDIR := $(call NATIVEPATH,$(TOOLSDIR)/fasmg) -CONVHEXDIR := $(call NATIVEPATH,$(TOOLSDIR)/convhex) +CONVBINDIR := $(call NATIVEPATH,$(TOOLSDIR)/convbin) CONVPNGDIR := $(call NATIVEPATH,$(TOOLSDIR)/convpng) -CONVCSVDIR := $(call NATIVEPATH,$(TOOLSDIR)/convcsv) CONVFNTDIR := $(call NATIVEPATH,$(TOOLSDIR)/convfont) CEDIR := $(call NATIVEPATH,$(SRCDIR)/ce) STDDIR := $(call NATIVEPATH,$(SRCDIR)/std) @@ -65,20 +64,10 @@ STARTDIR := $(call NATIVEPATH,$(SRCDIR)/startup) DEVLIBDIR := $(call NATIVEPATH,$(SRCDIR)/devlib) FASMG := $(call NATIVEPATH,$(FASMGDIR)/fasmg) -CONVHEX := $(call NATIVEPATH,$(CONVHEXDIR)/convhex) CONVPNG := $(call NATIVEPATH,$(CONVPNGDIR)/convpng) -CONVCSV := $(call NATIVEPATH,$(CONVCSVDIR)/convcsv) CONVFONT := $(call NATIVEPATH,$(CONVFNTDIR)/convfont) FASMG_EZ80 := $(call NATIVEPATH,$(SRCDIR)/include/ez80.inc) -ifeq ($(OS),Windows_NT) -FASMG := $(call NATIVEPATH,$(FASMGDIR)/fasmg.exe) -CONVHEX := $(call NATIVEPATH,$(CONVHEXDIR)/convhex.exe) -CONVPNG := $(call NATIVEPATH,$(CONVPNGDIR)/convpng.exe) -CONVCSV := $(call NATIVEPATH,$(CONVCSVDIR)/convcsv.exe) -CONVFONT := $(call NATIVEPATH,$(CONVFNTDIR)/convfont.exe) -endif - BIN := $(call NATIVEPATH,$(TOOLSDIR)/zds) LIBRARYDIR = $(call NATIVEPATH,$(SRCDIR)/$1) @@ -95,19 +84,34 @@ INSTALLST := $(call NATIVEPATH,$(CEDEVDIR)/lib/static) INSTALLLI := $(call NATIVEPATH,$(CEDEVDIR)/lib/linked) DIRS := $(CEDEVDIR) $(INSTALLBIN) $(INSTALLLIB) $(INSTALLINC) $(INSTALLBF) $(INSTALLLL) $(INSTALLIO) $(INSTALLSH) $(INSTALLST) $(INSTALLLI) +ifeq ($(OS),Windows_NT) +FASMG := $(call NATIVEPATH,$(FASMGDIR)/fasmg.exe) +CONVBIN := $(call NATIVEPATH,$(CONVBINDIR)/bin/convbin.exe) +CONVPNG := $(call NATIVEPATH,$(CONVPNGDIR)/convpng.exe) +CONVFONT := $(call NATIVEPATH,$(CONVFNTDIR)/convfont.exe) +MAKEBIN := $(call NATIVEPATH,$(TOOLSDIR)/make/make.exe) +CPMAKE := $(CP) $(MAKEBIN) $(INSTALLBIN) +else +FASMG := $(call NATIVEPATH,$(FASMGDIR)/fasmg) +CONVBIN := $(call NATIVEPATH,$(CONVBINDIR)/bin/convbin) +CONVPNG := $(call NATIVEPATH,$(CONVPNGDIR)/convpng) +CONVFONT := $(call NATIVEPATH,$(CONVFNTDIR)/convfont) +MAKEBIN := +CPMAKE := +endif + STATIC_FILES := $(wildcard src/std/static/*.src) $(patsubst src/std/static/%.c,src/std/static/build/%.src,$(wildcard src/std/static/*.c)) LINKED_FILES := $(wildcard src/std/linked/*.src) $(patsubst src/std/linked/%.c,src/std/linked/build/%.src,$(wildcard src/std/linked/*.c)) SHARED_FILES := $(wildcard src/ce/*.src src/std/shared/*.src) $(patsubst src/std/shared/%.c,src/std/shared/build/%.src,$(wildcard src/std/shared/*.c)) FILEIO_FILES := $(wildcard src/std/fileio/*.src) $(patsubst src/std/fileio/%.c,src/std/fileio/build/%.src,$(wildcard src/std/fileio/*.c)) -all: $(CONVHEX) $(CONVPNG) $(CONVCSV) $(CONVFONT) $(LIBRARIES) ce std startup +all: $(CONVBIN) $(CONVPNG) $(CONVFONT) $(LIBRARIES) ce std startup @echo Toolchain built. clean: $(addprefix clean-,$(LIBRARIES)) clean-devlib clean-ce clean-std clean-startup $(MAKE) -C $(FASMGDIR) clean - $(MAKE) -C $(CONVHEXDIR) clean + $(MAKE) -C $(CONVBINDIR) clean $(MAKE) -C $(CONVPNGDIR) clean - $(MAKE) -C $(CONVCSVDIR) clean $(MAKE) -C $(CONVFNTDIR) clean $(RM) linker_script $(call RMDIR,release) @@ -120,12 +124,10 @@ clean: $(addprefix clean-,$(LIBRARIES)) clean-devlib clean-ce clean-std clean-st $(FASMG_EZ80): $(FASMG) $(FASMG): $(MAKE) -C $(FASMGDIR) -$(CONVHEX): - $(MAKE) -C $(CONVHEXDIR) +$(CONVBIN): + $(MAKE) -C $(CONVBINDIR) release $(CONVPNG): $(MAKE) -C $(CONVPNGDIR) -$(CONVCSV): - $(MAKE) -C $(CONVCSVDIR) $(CONVFONT): $(MAKE) -C $(CONVFNTDIR) #---------------------------- @@ -201,9 +203,8 @@ install: $(DIRS) chmod all linker_script $(CP) $(call NATIVEPATH,$(SRCDIR)/makefile.mk) $(call NATIVEPATH,$(INSTALLINC)/.makefile) $(CP) $(call NATIVEPATH,linker_script) $(call NATIVEPATH,$(INSTALLINC)/.linker_script) $(CP) $(FASMG) $(INSTALLBIN) - $(CP) $(CONVHEX) $(INSTALLBIN) + $(CP) $(CONVBIN) $(INSTALLBIN) $(CP) $(CONVPNG) $(INSTALLBIN) - $(CP) $(CONVCSV) $(INSTALLBIN) $(CP) $(CONVFONT) $(INSTALLBIN) $(CP) $(call NATIVEPATH,$(BIN)/*) $(INSTALLBIN) $(MAKE) -C $(FASMGDIR) install PREFIX=$(PREFIX) DESTDIR=$(DESTDIR) @@ -226,9 +227,9 @@ dist release: install #---------------------------- # libraries release rules #---------------------------- -dist-libs release-libs: clibraries $(CONVHEX) $(LIBRARIES) +dist-libs release-libs: clibraries $(CONVBIN) $(LIBRARIES) $(foreach library,$(LIBRARIES),$(CP) $(call NATIVEPATH,$(call LIBRARYDIR,$(library))/$(library).8xv) $(call NATIVEPATH,clibraries/$(library).8xv)$(newline)) - $(CONVHEX) -g $(words $(LIBRARIES)) $(foreach library,$(LIBRARIES),$(call LIBRARYDIR,$(library))/$(library).8xv )$(call NATIVEPATH,clibraries/clibs.8xg) + $(CONVBIN) --oformat 8xg-auto-extract $(foreach library,$(LIBRARIES),$(addprefix --input ,$(call LIBRARYDIR,$(library))/$(library).8xv)) --output $(call NATIVEPATH,clibraries/clibs.8xg) clibraries: $(call MKDIR,clibraries) diff --git a/src/makefile.mk b/src/makefile.mk index 9bf65ab5a..2169d411c 100644 --- a/src/makefile.mk +++ b/src/makefile.mk @@ -17,7 +17,7 @@ BINDIR ?= bin GFXDIR ?= src/gfx #---------------------------- -VERSION := 8.6 +VERSION := 8.7-devel #---------------------------- # try not to edit anything below these lines unless you know what you are doing @@ -50,43 +50,38 @@ MAKEDIR := $(CURDIR) NATIVEPATH = $(subst /,\,$1) WINPATH = $(NATIVEPATH) WINRELPATH = $(subst /,\,$1) -RM = del /q /f 2>nul CEDEV ?= $(call NATIVEPATH,$(realpath ..\..)) BIN ?= $(call NATIVEPATH,$(CEDEV)/bin) LD = $(call NATIVEPATH,$(BIN)/fasmg.exe) CC = $(call NATIVEPATH,$(BIN)/ez80cc.exe) -CV = $(call NATIVEPATH,$(BIN)/convhex.exe) -PG = $(call NATIVEPATH,$(BIN)/convpng.exe) +CONVBIN = $(call NATIVEPATH,$(BIN)/convbin.exe) +CONVPNG = $(call NATIVEPATH,$(BIN)/convpng.exe) CD = cd -CP = copy /y -MV = move /y >nul -NULL = >nul 2>&1 +RM = del /q /f >nul 2>&1 RMDIR = call && (if exist $1 rmdir /s /q $1) MKDIR = call && (if not exist $1 mkdir $1) QUOTE_ARG = "$(subst ",',$1)"#' -TO_LOWER = $1 else MAKEDIR := $(CURDIR) NATIVEPATH = $(subst \,/,$1) WINPATH = $(shell winepath -w $1) WINRELPATH = $(subst /,\,$1) -RM = rm -f CEDEV ?= $(call NATIVEPATH,$(realpath ..\..)) BIN ?= $(call NATIVEPATH,$(CEDEV)/bin) CC = $(call NATIVEPATH,wine "$(BIN)/ez80cc.exe") LD = $(call NATIVEPATH,$(BIN)/fasmg) -CV = $(call NATIVEPATH,$(BIN)/convhex) -PG = $(call NATIVEPATH,$(BIN)/convpng) +CONVBIN = $(call NATIVEPATH,$(BIN)/convbin) +CONVPNG = $(call NATIVEPATH,$(BIN)/convpng) CD = cd -CP = cp -MV = mv +RM = rm -f RMDIR = rm -rf $1 MKDIR = mkdir -p $1 QUOTE_ARG = '$(subst ','\'',$1)'#' -TO_LOWER = $(shell printf %s $(call QUOTE_ARG,$1) | tr [:upper:] [:lower:]) endif -FASMG_FILES = $(subst $(space),$(comma) ,$(patsubst %,"%",$(subst ",\",$(subst \,\\,$(call NATIVEPATH,$1)))))#" +MKDIR_NATIVE = $(call MKDIR,$(call QUOTE_ARG,$(call NATIVEPATH,$1))) + +FASMG_FILES = $(subst $(space),$(comma) ,$(patsubst %,"%",$(subst ",\",$(subst \,\\,$(call NATIVEPATH,$1)))))#" LINKER_SCRIPT ?= $(CEDEV)/include/.linker_script # ensure native paths @@ -127,21 +122,28 @@ LINK_LIBLOAD := $(CEDEV)/lib/libload.lib # check if there is an icon present that we can convert; if so, generate a recipe to build it properly ifneq ("$(wildcard $(ICONPNG))","") -F_ICON := $(OBJDIR)/$(ICON_ASM) -ICON_CONV := $(PG) -c $(ICONPNG)$(comma)$(call NATIVEPATH,$(F_ICON))$(comma)$(DESCRIPTION) -LINK_ICON = , $(call FASMG_FILES,$(F_ICON)) used +F_ICON := $(OBJDIR)/$(ICON_ASM) +ICON_CONV := $(CONVPNG) -c $(ICONPNG)$(comma)$(call NATIVEPATH,$(F_ICON))$(comma)$(DESCRIPTION) +LINK_ICON = , $(call FASMG_FILES,$(F_ICON)) used endif -# determine if output should be archived or compressed +# determine output target flags ifeq ($(ARCHIVED),YES) -CVFLAGS += -a +CONVBINFLAGS += --archive endif ifeq ($(COMPRESSED),YES) -CVFLAGS += -x +CONVBINFLAGS += --oformat 8xp-auto-decompress +else +CONVBINFLAGS += --oformat 8xp endif +CONVBINFLAGS += --name $(TARGET) + +# link cleanup source ifeq ($(CLEANUP),YES) LINK_CLEANUP = , $(call FASMG_FILES,$(F_CLEANUP)) used endif + +# output debug map file ifeq ($(OUTPUT_MAP),YES) LDMAPFLAG = -i map endif @@ -175,45 +177,43 @@ LDFLAGS ?= \ -i $(call QUOTE_ARG,libs $(call FASMG_FILES,$(LINK_LIBLOAD)) used if libs.length$(comma) $(call FASMG_FILES,$(LINK_LIBS))) # this rule is trigged to build everything -all: dirs $(BINDIR)/$(TARGET8XP) ; +all: $(BINDIR)/$(TARGET8XP) ; # this rule is trigged to build debug everything debug: LDDEBUGFLAG = -i dbg debug: DEBUGMODE = DEBUG debug: CCDEBUGFLAG = -debug -debug: dirs $(BINDIR)/$(TARGET8XP) ; - -dirs: - @echo C CE SDK Version $(VERSION) && \ - $(call MKDIR,$(BINDIR)) && \ - $(call MKDIR,$(OBJDIR)) +debug: $(BINDIR)/$(TARGET8XP) ; $(BINDIR)/$(TARGET8XP): $(BINDIR)/$(TARGETBIN) - $(Q)$(CD) $(BINDIR) && \ - $(CV) $(CVFLAGS) $(notdir $<) $(notdir $@) + $(Q)$(call MKDIR_NATIVE,$(@D)) + $(Q)$(CONVBIN) $(CONVBINFLAGS) --input $(call QUOTE_ARG,$(call NATIVEPATH,$<)) --output $(call QUOTE_ARG,$(call NATIVEPATH,$@)) $(BINDIR)/$(TARGETBIN): $(LINK_FILES) $(F_ICON) - $(Q)$(LD) $(LDFLAGS) $@ + $(Q)$(call MKDIR_NATIVE,$(@D)) + $(Q)$(LD) $(LDFLAGS) $(call NATIVEPATH,$@) # this rule handles conversion of the icon, if it is ever updated $(OBJDIR)/$(ICON_ASM): $(ICONPNG) + $(Q)$(call MKDIR_NATIVE,$(@D)) $(Q)$(ICON_CONV) # these rules compile the source files into object files $(OBJDIR)/%.src: $(SRCDIR)/%.c $(USERHEADERS) - $(Q)$(call MKDIR,$(call NATIVEPATH,$(@D))) && \ + $(Q)$(call MKDIR_NATIVE,$(@D)) + $(Q)echo $(addprefix $(MAKEDIR)/,$<) $(CC) $(CFLAGS) $(call QUOTE_ARG,$(call WINPATH,$(addprefix $(MAKEDIR)/,$<))) && \ $(MV) $(call QUOTE_ARG,$(call TO_LOWER,$(@F))) $(call QUOTE_ARG,$@) clean: $(Q)$(call RMDIR,$(OBJDIR)) $(Q)$(call RMDIR,$(BINDIR)) - @echo Cleaned build files. + @echo Removed build objects and binaries. gfx: - $(Q)$(CD) $(GFXDIR) && convpng + $(Q)$(CD) $(GFXDIR) && $(CONVPNG) version: - @echo C SDK Version $(VERSION) + $(Q)echo CE C SDK Version $(VERSION) -.PHONY: all clean version gfx dirs debug +.PHONY: all clean version gfx debug diff --git a/tools/convbin b/tools/convbin new file mode 160000 index 000000000..cfed9dc37 --- /dev/null +++ b/tools/convbin @@ -0,0 +1 @@ +Subproject commit cfed9dc374025a4fc29eedddc5be2131c4cb7ef1 diff --git a/tools/convcsv b/tools/convcsv deleted file mode 160000 index 8c9a96fa3..000000000 --- a/tools/convcsv +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8c9a96fa31e18e9481b65f4c833f3e4a11279c5f diff --git a/tools/convhex b/tools/convhex deleted file mode 160000 index aa7fe580e..000000000 --- a/tools/convhex +++ /dev/null @@ -1 +0,0 @@ -Subproject commit aa7fe580ed7e930f25a90fe4e0637a97b3b33100