#=============================================================================#
#                                                                             #
#                                 acgmake                                     #
#      Copyright (C) 2001-2003 by Computer Graphics Group, RWTH Aachen        #
#                          www.rwth-graphics.de                               #
#                                                                             #
#=============================================================================#


###  CHECK CONFIG  ############################################################

CG_CGC      ?= cgc
CG_VPROFILE ?= -profile vp30
CG_FPROFILE ?= -profile fp30
CXX_HDR_EXT ?= .hh


###  UIC TARGETS  #############################################################

cg-vprogs   := $(wildcard *.vp)
cg-fprogs   := $(wildcard *.fp)
cg-targets  := $(cg-vprogs:.vp=$(CXX_HDR_EXT))
cg-targets  += $(cg-fprogs:.fp=$(CXX_HDR_EXT))


###  EXPLICIT RULES  ##########################################################


.PHONY: cg-clean cg-build


cg-clean:
ifneq ($(cg-targets),)
	rm -f $(cg-targets)
endif


cg-build: $(cg-targets)


###  IMPLICIT RULES  ##########################################################


%$(CXX_HDR_EXT): %.vp
	@ echo ; echo "Cg'ing  $<  ->  $@"
	$(HIDE) $(CG_CGC) $(CG_VPROFILE) -o $@.tmp $< || rm -f $@.tmp
	$(HIDE) test -f $@.tmp
	$(HIDE) echo "// this file has been generated by acgmake" > $@
	$(HIDE) echo >> $@
	$(HIDE) echo "const char $(<:.vp=[]) = " >> $@
	$(HIDE) awk '{ if (/#./) { sub("#","// "); print }   \
                       else      { print "\"" $$0 "\""   }}' $@.tmp >> $@
	$(HIDE) rm -f $@.tmp


%$(CXX_HDR_EXT): %.fp
	@ echo ; echo "Cg'ing  $<  ->  $@"
	$(HIDE) $(CG_CGC) $(CG_FPROFILE) -o $@.tmp $< || rm -f $@.tmp
	$(HIDE) test -f $@.tmp
	$(HIDE) echo "// this file has been generated by acgmake" > $@
	$(HIDE) echo >> $@
	$(HIDE) echo "const char $(<:.fp=[]) = " >> $@
	$(HIDE) awk '{ if (/#./) { sub("#","// "); print }   \
                       else      { print "\"" $$0 "\""   }}' $@.tmp >> $@
	$(HIDE) rm -f $@.tmp
