From 9407544edee58e5b1c3660b5c0d2c58236c1bddb Mon Sep 17 00:00:00 2001 From: Scott Duensing Date: Mon, 9 Mar 2026 22:55:00 -0500 Subject: [PATCH] Cleaning up project layout. --- .gitignore | 2 ++ dvx/Makefile | 36 +++++++++++++++++++----------------- dvxdemo/Makefile | 39 +++++++++++++++++++++++++++++++++++++++ {dvx => dvxdemo}/demo.c | 0 4 files changed, 60 insertions(+), 17 deletions(-) create mode 100644 dvxdemo/Makefile rename {dvx => dvxdemo}/demo.c (100%) diff --git a/.gitignore b/.gitignore index 4dbe88a..bc2e0b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ dosbench/ bin/ obj/ +lib/ *.~ +.gitignore~ DVX_GUI_DESIGN.md diff --git a/dvx/Makefile b/dvx/Makefile index 19cfef3..2ef9986 100644 --- a/dvx/Makefile +++ b/dvx/Makefile @@ -1,15 +1,17 @@ -# DV/X GUI Makefile for DJGPP cross-compilation +# DV/X GUI Library Makefile for DJGPP cross-compilation DJGPP_PREFIX = $(HOME)/djgpp/djgpp CC = $(DJGPP_PREFIX)/bin/i586-pc-msdosdjgpp-gcc +DJGPP_LIBPATH = $(HOME)/claude/windriver/tools/lib +AR = LD_LIBRARY_PATH=$(DJGPP_LIBPATH) $(DJGPP_PREFIX)/bin/i586-pc-msdosdjgpp-ar +RANLIB = LD_LIBRARY_PATH=$(DJGPP_LIBPATH) $(DJGPP_PREFIX)/bin/i586-pc-msdosdjgpp-ranlib CFLAGS = -O2 -Wall -Wextra -march=i486 -mtune=i586 -LDFLAGS = -lm -OBJDIR = ../obj -WOBJDIR = ../obj/widgets -BINDIR = ../bin +OBJDIR = ../obj/dvx +WOBJDIR = ../obj/dvx/widgets +LIBDIR = ../lib -SRCS = dvxVideo.c dvxDraw.c dvxComp.c dvxWm.c dvxIcon.c dvxImageWrite.c dvxApp.c demo.c +SRCS = dvxVideo.c dvxDraw.c dvxComp.c dvxWm.c dvxIcon.c dvxImageWrite.c dvxApp.c WSRCS = widgets/widgetCore.c \ widgets/widgetLayout.c \ @@ -37,14 +39,15 @@ WSRCS = widgets/widgetCore.c \ OBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(SRCS)) WOBJS = $(patsubst widgets/%.c,$(WOBJDIR)/%.o,$(WSRCS)) -TARGET = $(BINDIR)/demo.exe +TARGET = $(LIBDIR)/libdvx.a .PHONY: all clean all: $(TARGET) -$(TARGET): $(OBJS) $(WOBJS) | $(BINDIR) - $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(WOBJS) +$(TARGET): $(OBJS) $(WOBJS) | $(LIBDIR) + $(AR) rcs $@ $(OBJS) $(WOBJS) + $(RANLIB) $@ $(OBJDIR)/%.o: %.c | $(OBJDIR) $(CC) $(CFLAGS) -c -o $@ $< @@ -58,18 +61,17 @@ $(OBJDIR): $(WOBJDIR): mkdir -p $(WOBJDIR) -$(BINDIR): - mkdir -p $(BINDIR) +$(LIBDIR): + mkdir -p $(LIBDIR) # Dependencies -$(OBJDIR)/dvxVideo.o: dvxVideo.c dvxVideo.h dvxTypes.h dvxPalette.h -$(OBJDIR)/dvxDraw.o: dvxDraw.c dvxDraw.h dvxTypes.h -$(OBJDIR)/dvxComp.o: dvxComp.c dvxComp.h dvxTypes.h -$(OBJDIR)/dvxWm.o: dvxWm.c dvxWm.h dvxTypes.h dvxDraw.h dvxComp.h dvxVideo.h thirdparty/stb_image.h +$(OBJDIR)/dvxVideo.o: dvxVideo.c dvxVideo.h dvxTypes.h dvxPalette.h +$(OBJDIR)/dvxDraw.o: dvxDraw.c dvxDraw.h dvxTypes.h +$(OBJDIR)/dvxComp.o: dvxComp.c dvxComp.h dvxTypes.h +$(OBJDIR)/dvxWm.o: dvxWm.c dvxWm.h dvxTypes.h dvxDraw.h dvxComp.h dvxVideo.h thirdparty/stb_image.h $(OBJDIR)/dvxIcon.o: dvxIcon.c thirdparty/stb_image.h $(OBJDIR)/dvxImageWrite.o: dvxImageWrite.c thirdparty/stb_image_write.h $(OBJDIR)/dvxApp.o: dvxApp.c dvxApp.h dvxTypes.h dvxVideo.h dvxDraw.h dvxComp.h dvxWm.h dvxFont.h dvxCursor.h -$(OBJDIR)/demo.o: demo.c dvxApp.h dvxWidget.h # Widget file dependencies WIDGET_DEPS = widgets/widgetInternal.h dvxWidget.h dvxTypes.h dvxApp.h dvxDraw.h dvxWm.h dvxVideo.h @@ -98,4 +100,4 @@ $(WOBJDIR)/widgetToolbar.o: widgets/widgetToolbar.c $(WIDGET_DEPS) $(WOBJDIR)/widgetTreeView.o: widgets/widgetTreeView.c $(WIDGET_DEPS) clean: - rm -rf $(OBJDIR) $(BINDIR) + rm -rf $(OBJDIR) $(LIBDIR) diff --git a/dvxdemo/Makefile b/dvxdemo/Makefile new file mode 100644 index 0000000..f30f183 --- /dev/null +++ b/dvxdemo/Makefile @@ -0,0 +1,39 @@ +# DV/X GUI Demo Makefile for DJGPP cross-compilation + +DJGPP_PREFIX = $(HOME)/djgpp/djgpp +CC = $(DJGPP_PREFIX)/bin/i586-pc-msdosdjgpp-gcc +CFLAGS = -O2 -Wall -Wextra -march=i486 -mtune=i586 -I../dvx +LDFLAGS = -L../lib -ldvx -lm + +OBJDIR = ../obj/dvxdemo +BINDIR = ../bin +LIBDIR = ../lib + +SRCS = demo.c +OBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(SRCS)) +TARGET = $(BINDIR)/demo.exe + +.PHONY: all clean lib + +all: lib $(TARGET) + +lib: + $(MAKE) -C ../dvx + +$(TARGET): $(OBJS) $(LIBDIR)/libdvx.a | $(BINDIR) + $(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS) + +$(OBJDIR)/%.o: %.c | $(OBJDIR) + $(CC) $(CFLAGS) -c -o $@ $< + +$(OBJDIR): + mkdir -p $(OBJDIR) + +$(BINDIR): + mkdir -p $(BINDIR) + +# Dependencies +$(OBJDIR)/demo.o: demo.c ../dvx/dvxApp.h ../dvx/dvxWidget.h + +clean: + rm -rf $(OBJDIR) $(BINDIR) diff --git a/dvx/demo.c b/dvxdemo/demo.c similarity index 100% rename from dvx/demo.c rename to dvxdemo/demo.c