PKGNAME = gpciepkg
VER   = 0.8

CPP   = cpp -P

HIBVHDL    = hibtop.vhd hibctl.vhd asmi_agx.vhd asmi_s2gx.vhd
GPCIEVHDL  = gpcie.vhd application.vhd transaction.vhd datalink.vhd phymac.vhd gpciepkg.vhd pcrcpkg.vhd
PHYVHDL    = phypcs.vhd  alt2gxb_agx.x1.vhd alt2gxb_agx.x4.vhd alt2gxb_agx.2x4.vhd alt2gxb_s2gx.x1.vhd alt2gxb_s2gx.x4.vhd alt2gxb_s2gx.x8.vhd

HIBVHDL0   = $(patsubst %,./templates/%,$(HIBVHDL))
GPCIEVHDL0 = $(patsubst %,./templates/%,$(GPCIEVHDL))
PHYVHDL0   = $(patsubst %,./templates/%,$(PHYVHDL))

all:	hib.vhd gpcie.vhd phy.vhd

fast:	hib0.vhd gpcie0.vhd phy.vhd


hib.vhd:	gpcie.vhd phy.vhd $(HIBVHDL0)
	cat $(HIBVHDL0) gpcie.vhd phy.vhd | $(CPP) > $@

gpcie.vhd:	$(GPCIEVHDL0)
	cat $(GPCIEVHDL0) | $(CPP) > $@

phy.vhd:	$(PHYVHDL0)
	cat $(PHYVHDL0) | $(CPP) > $@

hib0.vhd:	gpcie0.vhd phy.vhd $(HIBVHDL0)
	cat $(HIBVHDL0) gpcie0.vhd phy.vhd | $(CPP) -DDMACNT_NOWAIT > $@

gpcie0.vhd:	$(GPCIEVHDL0)
	cat $(GPCIEVHDL0) | $(CPP) -DTXCTL_NOWAIT -DDMACNT_NOWAIT > $@

clean:
	-rm -rf db  *~ *.pin *.jdi *.ppf *.rpt *.smsg *.done *.summary *.qmsg $(VHDL)
	-chmod a-x *.vhd *.qpf *.qsf *.sof *.pof *.cdf

bak:
	-tar cvfz $(PKGNAME)_fullbakup.tar.gz ./Makefile  ./00memo ./00readme-j ./00readme 00license-j 00license\
        ./ifpga.qpf ./*.qsf ./*.mif ./*.sdc ./stp/*.stp ./vwf/*.vwf \
        ./doc/{Makefile,*.{txt,tex,pdf,obj,eps}} \
        hib.vhd gpcie.vhd phy.vhd ifpga_{agx,s2gx}{8,4,1}.vhd \
        ./synth/*.{qsf,qpf,sdc} \
	./templates/*.{vhd,mif} \
        ./scripts ./include ./lib \
        ./{hibutil,driver}/{Makefile*,*.{h,c,csh}} \
        ./sample/{Makefile,*.[hc]} \
	./tests/*/*.{vhd,c,stp} ./tests/*/ifpga.{qsf,qpf} \
        ./g5pipem100/*.{vhd,mif,qsf,qpf} \
        ./g5pipem800/*.{vhd,mif,qsf,qpf}
	scp -p $(PKGNAME)_fullbakup.tar.gz kfcr:

export:
	make
	-tar cvfz tmp.tar.gz ./Makefile ./00readme-j ./00readme 00license-j 00license\
        ./doc/*.{txt,pdf} \
        hib.vhd gpcie.vhd phy.vhd ifpga_{agx,s2gx}{8,4,1}.vhd \
        ./synth/*.{qsf,qpf,sdc} \
	./templates/*.{vhd,mif} \
        ./scripts ./include ./lib \
        ./{hibutil,driver}/{Makefile*,*.{h,c,csh}} \
        ./sample/{Makefile,*.[hc]}
	-mkdir ./tmp
	-mkdir ./tmp/$(PKGNAME)$(VER)
	cd ./tmp/$(PKGNAME)$(VER); tar xfz ../../tmp.tar.gz; cd ..; tar cfz ./$(PKGNAME)$(VER).tar.gz ./$(PKGNAME)$(VER); mv ./$(PKGNAME)$(VER).tar.gz ..; cd ..
	cd ./tmp/; zip -ry ./$(PKGNAME)$(VER).zip ./$(PKGNAME)$(VER); mv ./$(PKGNAME)$(VER).zip ..; cd ..
	/bin/rm -rf ./tmp tmp.tar.gz

wc:
	wc $(GPCIEVHDL0) $(PHYVHDL0)
