132 lines
3.7 KiB
Makefile
132 lines
3.7 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 \
|
|
-i assets \
|
|
$(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
|
|
@# BASIC include files
|
|
@mkdir -p $(SDKDIR)/include/basic
|
|
@cp sdk/include/basic/*.bas $(SDKDIR)/include/basic/ 2>/dev/null || true
|
|
@# 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
|