DVX_GUI/Makefile

128 lines
3.5 KiB
Makefile

# DVX GUI -- Top-level Makefile
#
# Builds the full DVX stack: core library, task switcher,
# bootstrap loader, text help library, widgets, shell, and apps.
.PHONY: all clean core tasks loader texthelp listhelp widgets shell taskmgr serial sql apps tools deploy-helpsrc compile-help deploy-sdk
all: core tasks loader texthelp listhelp tools widgets shell taskmgr serial sql apps deploy-helpsrc compile-help deploy-sdk
core:
$(MAKE) -C core
tasks:
$(MAKE) -C tasks
loader: core tasks
$(MAKE) -C loader
texthelp: core tasks
$(MAKE) -C texthelp
listhelp: core tasks
$(MAKE) -C listhelp
widgets: core tasks texthelp listhelp
$(MAKE) -C widgets
shell: core tasks
$(MAKE) -C shell
taskmgr: shell
$(MAKE) -C taskmgr
serial: core tasks
$(MAKE) -C serial
sql: core tasks
$(MAKE) -C sql
tools:
$(MAKE) -C tools
apps: core tasks shell tools
$(MAKE) -C apps
deploy-helpsrc:
$(MAKE) -C tools deploy-helpsrc
HLPC = bin/host/dvxhlpc
SYSTEM_DHS = core/sysdoc.dhs \
core/arch.dhs core/apiref.dhs \
tasks/libtasks.dhs shell/dvxshell.dhs sql/dvxsql.dhs \
texthelp/texthelp.dhs listhelp/listhelp.dhs \
taskmgr/taskmgr.dhs serial/serial.dhs \
apps/dvxbasic/basrt.dhs \
widgets/wgtsys.dhs
BASIC_DHS = apps/dvxbasic/ideguide.dhs apps/dvxbasic/langref.dhs \
apps/dvxbasic/ctrlover.dhs apps/dvxbasic/form.dhs
compile-help:
@mkdir -p docs
$(HLPC) -o bin/apps/kpunch/dvxhelp/dvxhelp.hlp \
--html docs/dvx_help_viewer.html \
apps/dvxhelp/help.dhs
$(HLPC) -o bin/apps/kpunch/progman/dvxhelp.hlp \
--html docs/dvx_system_reference.html \
$(SYSTEM_DHS) \
$$(find widgets -name "*.dhs" ! -path "widgets/wgtsys.dhs" | sort)
$(HLPC) -o bin/apps/kpunch/dvxbasic/dvxbasic.hlp \
--html docs/dvx_basic_reference.html \
$(BASIC_DHS) \
$$(find widgets -name "*.bhs" | sort)
SDKDIR = bin/sdk
deploy-sdk:
@echo "Building SDK..."
@mkdir -p $(SDKDIR)/include/core $(SDKDIR)/include/shell $(SDKDIR)/include/tasks $(SDKDIR)/include/sql
@mkdir -p $(SDKDIR)/samples/hello $(SDKDIR)/samples/widget
@# Core headers
@for f in core/dvxApp.h core/dvxTypes.h core/dvxWgt.h core/dvxWgtP.h \
core/dvxWm.h core/dvxDraw.h core/dvxVideo.h core/dvxComp.h \
core/dvxPrefs.h core/dvxDlg.h core/dvxRes.h core/dvxFont.h \
core/dvxCur.h core/dvxPal.h core/dvxPlat.h; do \
[ -f "$$f" ] || continue; \
cp "$$f" $(SDKDIR)/include/core/; \
done
@# Shell header
@cp shell/shellApp.h $(SDKDIR)/include/shell/ 2>/dev/null || true
@# Tasks header
@for f in tasks/taskSwch.h tasks/taskswitch.h; do \
[ -f "$$f" ] && cp "$$f" $(SDKDIR)/include/tasks/ && break; \
done
@# SQL header
@cp sql/dvxSql.h $(SDKDIR)/include/sql/ 2>/dev/null || true
@# Widget headers — one per widget
@for d in widgets/*/; do \
for h in "$$d"*.h; do \
[ -f "$$h" ] || continue; \
base=$$(basename "$$h"); \
wgt=$$(basename "$$d"); \
mkdir -p $(SDKDIR)/include/widget/"$$wgt"; \
cp "$$h" $(SDKDIR)/include/widget/"$$wgt"/; \
done; \
done
@# Samples and readme
@cp -r sdk/samples $(SDKDIR)/
@cp sdk/readme.txt $(SDKDIR)/README.TXT
clean:
$(MAKE) -C core clean
$(MAKE) -C tasks clean
$(MAKE) -C loader clean
$(MAKE) -C texthelp clean
$(MAKE) -C listhelp clean
$(MAKE) -C widgets clean
$(MAKE) -C shell clean
$(MAKE) -C taskmgr clean
$(MAKE) -C serial clean
$(MAKE) -C sql clean
$(MAKE) -C apps clean
$(MAKE) -C tools clean
-rmdir obj 2>/dev/null
-rm -rf bin/config bin/widgets bin/libs bin/sdk
-rm -f docs/*.html
-rmdir bin/apps/kpunch/cpanel bin/apps/kpunch/imgview bin/apps/kpunch/progman bin/apps/kpunch/notepad bin/apps/kpunch/clock bin/apps/kpunch/dvxdemo bin/apps/kpunch bin/apps bin 2>/dev/null