packages feed

bogre-banana-0.0.1: src/Workarounds/makefile

default: clean main

main:
	# generate c code
	cgen -o cbits --header=Workarounds.h --interface=interface/Workarounds.if cpp/Workarounds.h
	# generate graph file
	grgen -o interface/Workarounds.gr --interface=interface/Workarounds.if cpp/Workarounds.h
	# generate haskell
	cgen-hs --inherit interface/Workarounds.gr --interface=interface/Workarounds.if --hierarchy BB. -o BB cbits/*.h
	# copy files
	cp BB/*.hs ../BB
	# modify types to work with HOGRE and HOIS
	sed -i 's/newtype \(.*\)= Ogre__\([a-z,A-Z,0-9]*\).*/type \1 = Graphics.Ogre.Types.\2/g' ../BB/Types.hs
	sed -i 's/newtype \(.*\)= OIS__\([a-z,A-Z,0-9]*\).*/type \1 = OIS.Types.\2/g' ../BB/Types.hs
	sed -i '4i import qualified Graphics.Ogre.Types\nimport qualified OIS.Types\n' ../BB/Types.hs
	sed -i 's/#include <Workarounds.h>/#include "..\/cpp\/Workarounds.h"/g' ./cbits/Workarounds.h
	
clean:
	rm -f -r 'cbits'
	rm -f -r 'BB'
	rm -f -r 'interface/Dfn.gr'
	rm -f -r *.o
	rm -f -r *.hi
	rm -f -r hs/*.o
	rm -f -r hs/*.hi
	rm -f -r *.a
	rm -f -r *.hs
	rm -f main