# DVX Tools Makefile # # Builds native (host) utilities and cross-compiled DOS tools. CC = gcc CFLAGS = -O2 -Wall -Wextra -Werror -Wno-format-truncation -I../core -I../core/platform DJGPP_PREFIX = $(HOME)/djgpp/djgpp DOSCC = $(DJGPP_PREFIX)/bin/i586-pc-msdosdjgpp-gcc EXE2COFF = $(DJGPP_PREFIX)/i586-pc-msdosdjgpp/bin/exe2coff CWSDSTUB = $(DJGPP_PREFIX)/i586-pc-msdosdjgpp/bin/CWSDSTUB.EXE DOSCFLAGS = -O2 -Wall -Wextra -Werror -Wno-format-truncation -march=i486 -mtune=i586 -I../core -I../core/platform BINDIR = ../bin CONFIGDIR = ../bin/config SYSTEMDIR = ../bin/system .PHONY: all clean deploy-helpsrc all: $(BINDIR)/dvxres $(BINDIR)/mkicon $(BINDIR)/mktbicon $(BINDIR)/mkwgticon $(BINDIR)/bmp2raw $(BINDIR)/dvxhlpc $(SYSTEMDIR)/SPLASH.RAW $(SYSTEMDIR)/DVXHLPC.EXE $(SYSTEMDIR)/DVXRES.EXE $(BINDIR)/dvxres: dvxres.c ../core/dvxResource.c ../core/dvxResource.h | $(BINDIR) $(CC) $(CFLAGS) -o $@ dvxres.c ../core/dvxResource.c $(BINDIR)/mkicon: mkicon.c | $(BINDIR) $(CC) $(CFLAGS) -o $@ mkicon.c -lm $(BINDIR)/mktbicon: mktbicon.c | $(BINDIR) $(CC) $(CFLAGS) -o $@ mktbicon.c $(BINDIR)/mkwgticon: mkwgticon.c | $(BINDIR) $(CC) $(CFLAGS) -o $@ mkwgticon.c $(BINDIR)/bmp2raw: bmp2raw.c | $(BINDIR) $(CC) $(CFLAGS) -o $@ bmp2raw.c $(BINDIR)/dvxhlpc: dvxhlpc.c ../apps/dvxhelp/hlpformat.h | $(BINDIR) $(CC) $(CFLAGS) -o $@ dvxhlpc.c $(SYSTEMDIR)/SPLASH.RAW: $(BINDIR)/bmp2raw ../assets/splash.bmp | $(SYSTEMDIR) $(BINDIR)/bmp2raw ../assets/splash.bmp $@ $(BINDIR): mkdir -p $(BINDIR) $(CONFIGDIR): mkdir -p $(CONFIGDIR) $(SYSTEMDIR)/DVXHLPC.EXE: dvxhlpc.c ../apps/dvxhelp/hlpformat.h | $(SYSTEMDIR) $(DOSCC) $(DOSCFLAGS) -o $(SYSTEMDIR)/dvxhlpc.exe dvxhlpc.c $(EXE2COFF) $(SYSTEMDIR)/dvxhlpc.exe cat $(CWSDSTUB) $(SYSTEMDIR)/dvxhlpc > $@ rm -f $(SYSTEMDIR)/dvxhlpc $(SYSTEMDIR)/dvxhlpc.exe $(SYSTEMDIR)/DVXRES.EXE: dvxres.c ../core/dvxResource.c ../core/dvxResource.h | $(SYSTEMDIR) $(DOSCC) $(DOSCFLAGS) -o $(SYSTEMDIR)/dvxres.exe dvxres.c ../core/dvxResource.c $(EXE2COFF) $(SYSTEMDIR)/dvxres.exe cat $(CWSDSTUB) $(SYSTEMDIR)/dvxres > $@ rm -f $(SYSTEMDIR)/dvxres $(SYSTEMDIR)/dvxres.exe $(SYSTEMDIR): mkdir -p $(SYSTEMDIR) deploy-helpsrc: @echo "Deploying help source files..." @for pair in \ "../core/*.dhs:$(BINDIR)/libs/kpunch/libdvx" \ "../tasks/*.dhs:$(BINDIR)/libs/kpunch/libtasks" \ "../shell/*.dhs:$(BINDIR)/libs/kpunch/dvxshell" \ "../sql/*.dhs:$(BINDIR)/libs/kpunch/dvxsql" \ "../texthelp/*.dhs:$(BINDIR)/libs/kpunch/texthelp" \ "../listhelp/*.dhs:$(BINDIR)/libs/kpunch/listhelp" \ "../taskmgr/*.dhs:$(BINDIR)/libs/kpunch/taskmgr" \ "../serial/*.dhs:$(BINDIR)/libs/kpunch/serial" \ "../apps/dvxbasic/basrt.dhs:$(BINDIR)/libs/kpunch/basrt" \ ; do \ src=$${pair%%:*}; dst=$${pair##*:}; \ for f in $$src; do \ [ -f "$$f" ] || continue; \ name=$$(basename "$$f" | tr a-z A-Z); \ cp "$$f" "$$dst"/"$$name"; \ done; \ done @for f in ../widgets/*.dhs; do \ [ -f "$$f" ] || continue; \ name=$$(basename "$$f" | tr a-z A-Z); \ cp "$$f" $(BINDIR)/widgets/kpunch/"$$name"; \ done @for d in ../widgets/*/; do \ for f in "$$d"*.dhs "$$d"*.bhs; do \ [ -f "$$f" ] || continue; \ name=$$(basename "$$f" | tr a-z A-Z); \ base=$$(basename "$$f" | tr A-Z a-z); \ base=$${base%.dhs}; \ base=$${base%.bhs}; \ if [ -d $(BINDIR)/widgets/kpunch/"$$base" ]; then \ cp "$$f" $(BINDIR)/widgets/kpunch/"$$base"/"$$name"; \ fi; \ done; \ done @for f in ../apps/dvxbasic/*.dhs; do \ [ -f "$$f" ] || continue; \ name=$$(basename "$$f" | tr a-z A-Z); \ cp "$$f" $(BINDIR)/apps/kpunch/dvxbasic/"$$name"; \ done @for f in ../apps/dvxhelp/*.dhs; do \ [ -f "$$f" ] || continue; \ name=$$(basename "$$f" | tr a-z A-Z); \ cp "$$f" $(BINDIR)/apps/kpunch/dvxhelp/"$$name"; \ done @echo "Deploying help config files..." @for d in ../apps/*/; do \ for f in "$$d"*.hcf; do \ [ -f "$$f" ] || continue; \ appdir=$$(basename "$$d"); \ name=$$(basename "$$f" | tr a-z A-Z); \ cp "$$f" $(BINDIR)/apps/kpunch/"$$appdir"/"$$name"; \ done; \ done clean: rm -f $(BINDIR)/dvxres rm -rf $(SYSTEMDIR)