rendered paste body#BASEDIR=$(PWD)
BASEDIR=.
OBJDIR=$(BASEDIR)/objdir
COMPONENTS=data biz forms
SUBDIRS=core $(COMPONENTS) apps
CORE=$(basename $(wildcard core/*.prg))
APPS=$(basename $(wildcard apps/*.prg))
COMP=$(basename $(foreach X,$(COMPONENTS),$(wildcard $(X)/*.prg)))
COREOBJS=$(addprefix $(OBJDIR)/,$(addsuffix .o,$(CORE)))
COMPOBJS=$(addprefix $(OBJDIR)/,$(addsuffix .o,$(COMP)))
TARGET=$(addprefix $(OBJDIR)/,$(APPS))
CLIP=/opt/clip/bin/clip
CLIPOPT=-Rw -d $(OBJDIR)
.PHONY: all init clean test
.PRECIOUS: $(COREOBJS) $(COMPOBJS) $(addsuffix .o,$(TARGET))
all: init $(TARGET)
test: all
$(OBJDIR)/apps/env
init: $(addprefix $(OBJDIR)/,$(SUBDIRS))
clean:
rm -rvf $(OBJDIR) *.log
$(addprefix $(OBJDIR)/,$(SUBDIRS)):
mkdir -p $@
$(OBJDIR)/apps/%.o: apps/%.prg
$(CLIP) -M $(CLIPOPT) $<
$(OBJDIR)/%.o: %.prg
$(CLIP) -n $(CLIPOPT) $<
%: %.o $(COREOBJS) $(COMPOBJS)
$(CLIP) -e $(CLIPOPT) -o $@ $^