$(PREFIX): default

.PHONY: default installheaders fixheaders installdocs force

$(INCLUDE)/%.h: %.h
	$(INSTALL) $< $@

$(DOC)/%.pdf: %.pdf
	$(INSTALL) $< $@

$(EXAMPLES)/$(EXAMPLEDIR)/%: %
	$(INSTALL) $< $@

$(EXAMPLES)/supplementary/$(EXAMPLEDIR)/%: %
	$(INSTALL) $< $@

installheaders: $(HDRS:%=$(INCLUDE)/%)

installdocs:    $(DOCS:%=$(DOC)/%)


installexample: $(EXAMPLESRC:%=$(EXAMPLES)/$(EXAMPLEDIR)/%)

installsuppl: $(EXAMPLESRC:%=$(EXAMPLES)/supplementary/$(EXAMPLEDIR)/%)

ifndef CUSTOM_MAKEFILES
installexample: Makefile.dist
	$(INSTALL) Makefile.dist $(EXAMPLES)/$(EXAMPLEDIR)/Makefile
else
installexample: force
installexample: $(CUSTOM_MAKEFILES:%=$(EXAMPLES)/$(EXAMPLEDIR)/%)
endif

installsuppl: Makefile.dist
	$(INSTALL) Makefile.dist $(EXAMPLES)/supplementary/$(EXAMPLEDIR)/Makefile

force: ; 
Makefile.dist: force
ifndef CUSTOM_MAKEFILES
	@echo "SYSTEMC=/path/to/systemc/install" > $@
	@echo "TL_SC=$(PREFIX)" >> $@
	@echo "SRC_EXT=$(SRC_EXT)" >> $@
	@echo "EXEC=$(EXAMPLEDIR)" >> $@
	@echo "" >> $@
	@echo "# use one of these" >> $@
	@echo "#TARGET_ARCH = linux" >> $@
	@echo "#TARGET_ARCH = gccsparcOS5" >> $@
	@echo "#TARGET_ARCH = cygwin" >> $@
	@echo "" >> $@
	@echo "INCLUDEPATH=-I. -I\$$(SYSTEMC)/include -I\$$(TL_SC)/include" >> $@
	@echo "" >> $@
	@echo "CC = g++" >> $@
	@echo "opt: OPT = -O" >> $@
	@echo "debug: OPT = -g" >> $@
	@echo "FLAGS = -Wall -Wno-deprecated" >> $@
	@echo "" >> $@
	@echo ".cpp.o:" >> $@
	@echo "	\$$(CC) \$$(OPT) \$$(FLAGS) \$$(INCLUDEPATH) -c \$$<" >> $@
	@echo ".cc.o:" >> $@
	@echo "	\$$(CC) \$$(OPT) \$$(FLAGS) \$$(INCLUDEPATH) -c \$$<" >> $@
	@echo "" >> $@
	@echo "SOURCES=\$$(wildcard *.\$$(SRC_EXT))" >> $@
	@echo "OBJECTS=\$$(SOURCES:%.\$$(SRC_EXT)=%.o)" >> $@
	@echo "" >> $@
	@echo "LDPATH += -L \$$(SYSTEMC)/lib-\$$(TARGET_ARCH)" >> $@
	@echo "LDLIBS += -lsystemc -lm" >> $@
	@echo "" >> $@
	@echo "debug | opt : \$$(EXEC)" >> $@
	@echo "\$$(EXEC): \$$(OBJECTS) Makefile" >> $@
	@echo "	\$$(CC) \$$(OPT) -o\$$@ \$$(OBJECTS) \$$(LDPATH) \$$(LDLIBS)" >> $@
	@echo "" >> $@
	@echo "clean:" >> $@
	@echo "	- rm *.o" >> $@
	@echo "	- rm \$$(EXEC)" >> $@
endif


clean:
	-rm Makefile.dist

default: installheaders installdocs
