# 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