127 lines
4.1 KiB
Makefile
127 lines
4.1 KiB
Makefile
# 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
|
|
HOSTDIR = ../bin/host
|
|
CONFIGDIR = ../bin/config
|
|
SYSTEMDIR = ../bin/system
|
|
|
|
.PHONY: all clean deploy-helpsrc
|
|
|
|
all: $(HOSTDIR)/dvxres $(HOSTDIR)/mkicon $(HOSTDIR)/mktbicon $(HOSTDIR)/mkwgticon $(HOSTDIR)/bmp2raw $(HOSTDIR)/dvxhlpc $(SYSTEMDIR)/SPLASH.RAW $(SYSTEMDIR)/DVXHLPC.EXE $(SYSTEMDIR)/DVXRES.EXE
|
|
|
|
$(HOSTDIR)/dvxres: dvxres.c ../core/dvxResource.c ../core/dvxRes.h | $(HOSTDIR)
|
|
$(CC) $(CFLAGS) -o $@ dvxres.c ../core/dvxResource.c
|
|
|
|
$(HOSTDIR)/mkicon: mkicon.c | $(HOSTDIR)
|
|
$(CC) $(CFLAGS) -o $@ mkicon.c -lm
|
|
|
|
$(HOSTDIR)/mktbicon: mktbicon.c | $(HOSTDIR)
|
|
$(CC) $(CFLAGS) -o $@ mktbicon.c
|
|
|
|
$(HOSTDIR)/mkwgticon: mkwgticon.c | $(HOSTDIR)
|
|
$(CC) $(CFLAGS) -o $@ mkwgticon.c
|
|
|
|
$(HOSTDIR)/bmp2raw: bmp2raw.c | $(HOSTDIR)
|
|
$(CC) $(CFLAGS) -o $@ bmp2raw.c
|
|
|
|
$(HOSTDIR)/dvxhlpc: dvxhlpc.c ../apps/dvxhelp/hlpformat.h | $(HOSTDIR)
|
|
$(CC) $(CFLAGS) -o $@ dvxhlpc.c
|
|
|
|
$(HOSTDIR):
|
|
mkdir -p $(HOSTDIR)
|
|
|
|
$(SYSTEMDIR)/SPLASH.RAW: $(HOSTDIR)/bmp2raw ../assets/splash.bmp | $(SYSTEMDIR)
|
|
$(HOSTDIR)/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/dvxRes.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 -rf $(HOSTDIR)
|
|
rm -rf $(SYSTEMDIR)
|