All pastes #35164 Raw Edit

mnemoc

public text v1 · immutable
#35164 ·published 2005-12-29 15:43 UTC
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 $@ $^