154 lines
5.9 KiB
Makefile
154 lines
5.9 KiB
Makefile
# 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../core/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
|
|
|
|
DEPFILES = textinpt combobox spinner terminal listbox dropdown listview treeview
|
|
WGT_DEPS = $(DEPFILES:%=$(WGTDIR)/%.dep)
|
|
|
|
all: $(WGT_MODS) $(WGT_DEPS)
|
|
|
|
$(WGTDIR)/%.dep: ../config/%.dep | $(WGTDIR)
|
|
sed 's/$$/\r/' $< > $@
|
|
|
|
# Generic widget module rule: export only the registration function
|
|
$(WGTDIR)/%.wgt: | $(WGTDIR)
|
|
$(DXE3GEN) -o $(WGTDIR)/$*.dxe -E _wgtRegister -U $<
|
|
mv $(WGTDIR)/$*.dxe $@
|
|
|
|
# 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/dvxWidgetPlugin.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) $(WGT_DEPS)
|
|
-rmdir $(WGTDIR) 2>/dev/null
|