# 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 OBJDIR = ../obj/dvx WOBJDIR = ../obj/dvx/widgets LIBDIR = ../lib SRCS = dvxVideo.c dvxDraw.c dvxComp.c dvxWm.c dvxIcon.c dvxImageWrite.c dvxApp.c WSRCS = widgets/widgetCore.c \ widgets/widgetLayout.c \ widgets/widgetEvent.c \ widgets/widgetOps.c \ widgets/widgetBox.c \ widgets/widgetButton.c \ widgets/widgetCheckbox.c \ widgets/widgetComboBox.c \ widgets/widgetDropdown.c \ widgets/widgetCanvas.c \ widgets/widgetImage.c \ widgets/widgetLabel.c \ widgets/widgetListBox.c \ widgets/widgetProgressBar.c \ widgets/widgetRadio.c \ widgets/widgetSeparator.c \ widgets/widgetSlider.c \ widgets/widgetSpacer.c \ widgets/widgetStatusBar.c \ widgets/widgetTabControl.c \ widgets/widgetTextInput.c \ widgets/widgetToolbar.c \ widgets/widgetTreeView.c OBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(SRCS)) WOBJS = $(patsubst widgets/%.c,$(WOBJDIR)/%.o,$(WSRCS)) TARGET = $(LIBDIR)/libdvx.a .PHONY: all clean all: $(TARGET) $(TARGET): $(OBJS) $(WOBJS) | $(LIBDIR) $(AR) rcs $@ $(OBJS) $(WOBJS) $(RANLIB) $@ $(OBJDIR)/%.o: %.c | $(OBJDIR) $(CC) $(CFLAGS) -c -o $@ $< $(WOBJDIR)/%.o: widgets/%.c | $(WOBJDIR) $(CC) $(CFLAGS) -c -o $@ $< $(OBJDIR): mkdir -p $(OBJDIR) $(WOBJDIR): mkdir -p $(WOBJDIR) $(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)/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 # Widget file dependencies WIDGET_DEPS = widgets/widgetInternal.h dvxWidget.h dvxTypes.h dvxApp.h dvxDraw.h dvxWm.h dvxVideo.h $(WOBJDIR)/widgetCore.o: widgets/widgetCore.c $(WIDGET_DEPS) $(WOBJDIR)/widgetLayout.o: widgets/widgetLayout.c $(WIDGET_DEPS) $(WOBJDIR)/widgetEvent.o: widgets/widgetEvent.c $(WIDGET_DEPS) $(WOBJDIR)/widgetOps.o: widgets/widgetOps.c $(WIDGET_DEPS) $(WOBJDIR)/widgetBox.o: widgets/widgetBox.c $(WIDGET_DEPS) $(WOBJDIR)/widgetCanvas.o: widgets/widgetCanvas.c $(WIDGET_DEPS) thirdparty/stb_image.h thirdparty/stb_image_write.h $(WOBJDIR)/widgetButton.o: widgets/widgetButton.c $(WIDGET_DEPS) $(WOBJDIR)/widgetCheckbox.o: widgets/widgetCheckbox.c $(WIDGET_DEPS) $(WOBJDIR)/widgetComboBox.o: widgets/widgetComboBox.c $(WIDGET_DEPS) $(WOBJDIR)/widgetDropdown.o: widgets/widgetDropdown.c $(WIDGET_DEPS) $(WOBJDIR)/widgetImage.o: widgets/widgetImage.c $(WIDGET_DEPS) thirdparty/stb_image.h $(WOBJDIR)/widgetLabel.o: widgets/widgetLabel.c $(WIDGET_DEPS) $(WOBJDIR)/widgetListBox.o: widgets/widgetListBox.c $(WIDGET_DEPS) $(WOBJDIR)/widgetProgressBar.o: widgets/widgetProgressBar.c $(WIDGET_DEPS) $(WOBJDIR)/widgetRadio.o: widgets/widgetRadio.c $(WIDGET_DEPS) $(WOBJDIR)/widgetSeparator.o: widgets/widgetSeparator.c $(WIDGET_DEPS) $(WOBJDIR)/widgetSlider.o: widgets/widgetSlider.c $(WIDGET_DEPS) $(WOBJDIR)/widgetSpacer.o: widgets/widgetSpacer.c $(WIDGET_DEPS) $(WOBJDIR)/widgetStatusBar.o: widgets/widgetStatusBar.c $(WIDGET_DEPS) $(WOBJDIR)/widgetTabControl.o: widgets/widgetTabControl.c $(WIDGET_DEPS) $(WOBJDIR)/widgetTextInput.o: widgets/widgetTextInput.c $(WIDGET_DEPS) $(WOBJDIR)/widgetToolbar.o: widgets/widgetToolbar.c $(WIDGET_DEPS) $(WOBJDIR)/widgetTreeView.o: widgets/widgetTreeView.c $(WIDGET_DEPS) clean: rm -rf $(OBJDIR) $(LIBDIR)