# DVX Widget Modules Makefile for DJGPP cross-compilation # # Builds individual .wgt modules from widget source files. # Each .wgt is a DXE loaded by the loader at startup. DJGPP_PREFIX = $(HOME)/djgpp/djgpp CC = $(DJGPP_PREFIX)/bin/i586-pc-msdosdjgpp-gcc DXE3GEN = PATH=$(DJGPP_PREFIX)/bin:$(PATH) DJDIR=$(DJGPP_PREFIX)/i586-pc-msdosdjgpp $(DJGPP_PREFIX)/i586-pc-msdosdjgpp/bin/dxe3gen CFLAGS = -O2 -Wall -Wextra -march=i486 -mtune=i586 -I../core -I../core/platform -I../tasks -I../tasks/thirdparty OBJDIR = ../obj/widgets WGTDIR = ../bin/widgets SRCS = widgetAnsiTerm.c \ widgetBox.c \ widgetButton.c \ widgetCanvas.c \ widgetCheckbox.c \ widgetComboBox.c \ widgetDropdown.c \ widgetImage.c \ widgetImageButton.c \ widgetLabel.c \ widgetListBox.c \ widgetListView.c \ widgetProgressBar.c \ widgetRadio.c \ widgetScrollPane.c \ widgetSeparator.c \ widgetSlider.c \ widgetSpacer.c \ widgetSpinner.c \ widgetSplitter.c \ widgetStatusBar.c \ widgetTabControl.c \ widgetTextInput.c \ widgetTimer.c \ widgetToolbar.c \ widgetTreeView.c OBJS = $(patsubst %.c,$(OBJDIR)/%.o,$(SRCS)) WGT_MODS = $(WGTDIR)/box.wgt \ $(WGTDIR)/button.wgt \ $(WGTDIR)/canvas.wgt \ $(WGTDIR)/checkbox.wgt \ $(WGTDIR)/combobox.wgt \ $(WGTDIR)/dropdown.wgt \ $(WGTDIR)/imgbtn.wgt \ $(WGTDIR)/image.wgt \ $(WGTDIR)/label.wgt \ $(WGTDIR)/listbox.wgt \ $(WGTDIR)/listview.wgt \ $(WGTDIR)/progress.wgt \ $(WGTDIR)/radio.wgt \ $(WGTDIR)/scrlpane.wgt \ $(WGTDIR)/separatr.wgt \ $(WGTDIR)/slider.wgt \ $(WGTDIR)/spacer.wgt \ $(WGTDIR)/spinner.wgt \ $(WGTDIR)/splitter.wgt \ $(WGTDIR)/statbar.wgt \ $(WGTDIR)/tabctrl.wgt \ $(WGTDIR)/terminal.wgt \ $(WGTDIR)/textinpt.wgt \ $(WGTDIR)/timer.wgt \ $(WGTDIR)/toolbar.wgt \ $(WGTDIR)/treeview.wgt .PHONY: all clean all: $(WGT_MODS) # Generic widget module rule: -E _wgt exports all public API + wgtRegister $(WGTDIR)/%.wgt: | $(WGTDIR) $(DXE3GEN) -o $@ -E _wgt -U $< # Map .wgt name to .o file $(WGTDIR)/box.wgt: $(OBJDIR)/widgetBox.o $(WGTDIR)/button.wgt: $(OBJDIR)/widgetButton.o $(WGTDIR)/canvas.wgt: $(OBJDIR)/widgetCanvas.o $(WGTDIR)/checkbox.wgt: $(OBJDIR)/widgetCheckbox.o $(WGTDIR)/combobox.wgt: $(OBJDIR)/widgetComboBox.o $(WGTDIR)/dropdown.wgt: $(OBJDIR)/widgetDropdown.o $(WGTDIR)/imgbtn.wgt: $(OBJDIR)/widgetImageButton.o $(WGTDIR)/image.wgt: $(OBJDIR)/widgetImage.o $(WGTDIR)/label.wgt: $(OBJDIR)/widgetLabel.o $(WGTDIR)/listbox.wgt: $(OBJDIR)/widgetListBox.o $(WGTDIR)/listview.wgt: $(OBJDIR)/widgetListView.o $(WGTDIR)/progress.wgt: $(OBJDIR)/widgetProgressBar.o $(WGTDIR)/radio.wgt: $(OBJDIR)/widgetRadio.o $(WGTDIR)/scrlpane.wgt: $(OBJDIR)/widgetScrollPane.o $(WGTDIR)/separatr.wgt: $(OBJDIR)/widgetSeparator.o $(WGTDIR)/slider.wgt: $(OBJDIR)/widgetSlider.o $(WGTDIR)/spacer.wgt: $(OBJDIR)/widgetSpacer.o $(WGTDIR)/spinner.wgt: $(OBJDIR)/widgetSpinner.o $(WGTDIR)/splitter.wgt: $(OBJDIR)/widgetSplitter.o $(WGTDIR)/statbar.wgt: $(OBJDIR)/widgetStatusBar.o $(WGTDIR)/tabctrl.wgt: $(OBJDIR)/widgetTabControl.o $(WGTDIR)/terminal.wgt: $(OBJDIR)/widgetAnsiTerm.o $(WGTDIR)/textinpt.wgt: $(OBJDIR)/widgetTextInput.o $(WGTDIR)/timer.wgt: $(OBJDIR)/widgetTimer.o $(WGTDIR)/toolbar.wgt: $(OBJDIR)/widgetToolbar.o $(WGTDIR)/treeview.wgt: $(OBJDIR)/widgetTreeView.o # Compile $(OBJDIR)/%.o: %.c | $(OBJDIR) $(CC) $(CFLAGS) -c -o $@ $< $(OBJDIR): mkdir -p $(OBJDIR) $(WGTDIR): mkdir -p $(WGTDIR) # Dependencies WIDGET_DEPS = ../core/widgetInternal.h ../core/dvxWidget.h ../core/dvxTypes.h ../core/dvxApp.h ../core/dvxDraw.h ../core/dvxWm.h ../core/dvxVideo.h $(OBJDIR)/widgetAnsiTerm.o: widgetAnsiTerm.c $(WIDGET_DEPS) $(OBJDIR)/widgetBox.o: widgetBox.c $(WIDGET_DEPS) $(OBJDIR)/widgetButton.o: widgetButton.c $(WIDGET_DEPS) $(OBJDIR)/widgetCanvas.o: widgetCanvas.c $(WIDGET_DEPS) ../core/thirdparty/stb_image.h ../core/thirdparty/stb_image_write.h $(OBJDIR)/widgetCheckbox.o: widgetCheckbox.c $(WIDGET_DEPS) $(OBJDIR)/widgetComboBox.o: widgetComboBox.c $(WIDGET_DEPS) $(OBJDIR)/widgetDropdown.o: widgetDropdown.c $(WIDGET_DEPS) $(OBJDIR)/widgetImage.o: widgetImage.c $(WIDGET_DEPS) ../core/thirdparty/stb_image.h $(OBJDIR)/widgetImageButton.o: widgetImageButton.c $(WIDGET_DEPS) $(OBJDIR)/widgetLabel.o: widgetLabel.c $(WIDGET_DEPS) $(OBJDIR)/widgetListBox.o: widgetListBox.c $(WIDGET_DEPS) $(OBJDIR)/widgetListView.o: widgetListView.c $(WIDGET_DEPS) $(OBJDIR)/widgetProgressBar.o: widgetProgressBar.c $(WIDGET_DEPS) $(OBJDIR)/widgetRadio.o: widgetRadio.c $(WIDGET_DEPS) $(OBJDIR)/widgetScrollPane.o: widgetScrollPane.c $(WIDGET_DEPS) $(OBJDIR)/widgetSeparator.o: widgetSeparator.c $(WIDGET_DEPS) $(OBJDIR)/widgetSlider.o: widgetSlider.c $(WIDGET_DEPS) $(OBJDIR)/widgetSpacer.o: widgetSpacer.c $(WIDGET_DEPS) $(OBJDIR)/widgetSpinner.o: widgetSpinner.c $(WIDGET_DEPS) $(OBJDIR)/widgetSplitter.o: widgetSplitter.c $(WIDGET_DEPS) $(OBJDIR)/widgetStatusBar.o: widgetStatusBar.c $(WIDGET_DEPS) $(OBJDIR)/widgetTabControl.o: widgetTabControl.c $(WIDGET_DEPS) $(OBJDIR)/widgetTextInput.o: widgetTextInput.c $(WIDGET_DEPS) $(OBJDIR)/widgetTimer.o: widgetTimer.c $(WIDGET_DEPS) $(OBJDIR)/widgetToolbar.o: widgetToolbar.c $(WIDGET_DEPS) $(OBJDIR)/widgetTreeView.o: widgetTreeView.c $(WIDGET_DEPS) clean: rm -f $(OBJS) $(WGT_MODS) -rmdir $(WGTDIR) 2>/dev/null