# Lagoon top level makefile
# (c) UNR 
.PROXY:all touchFutureFiles
#all: touchFutureFiles ode tnl libtomcrypt openal lagoon meshes
all: touchFutureFiles config libs devil lagoon meshes 
	@echo **********************************************
	@echo Done compiling everything
	@echo Now type:  go   to run lagoon
	@echo **********************************************

64: touchFutureFiles config libs lagoon meshes
	@echo **********************************************
	@echo Done compiling everything
	@echo Now type:  go   to run lagoon
	@echo **********************************************

touchFutureFiles:
	python touchFutureFiles.py

libs: ode tnl libtomcrypt openal 
	@echo **********************************************
	@echo Made libs
	@echo **********************************************

ode: 
	ls $(NEBULADIR)/lib/linux/libode.so || \
	$(MAKE) -C $(NEBULADIR)/externalPackages/ode/ -f Makefile.lagoon lagoon
	#$(MAKE) -C $(NEBULADIR)/externalPackages/ode/
	#$(MAKE) -C $(NEBULADIR)/externalPackages/ode/configure
	#$(MAKE) -C $(NEBULADIR)/externalPackages/ode/ode-lib
	#$(MAKE) -C $(NEBULADIR)/externalPackages/ode/copyToLib
	@echo **********************************************
	@echo Made ode libs
	@echo **********************************************


tnl:	
	ls $(NEBULADIR)/lib/linux/libtnl.a || \
	$(MAKE) -C $(NEBULADIR)/externalPackages/tnl/ 
	@echo **********************************************
	@echo made tnl libs
	@echo **********************************************

libtomcrypt:
	ls $(NEBULADIR)/lib/linux/libtomcrypt.a || \
	$(MAKE) -C $(NEBULADIR)/externalPackages/libtomcrypt/
	@echo **********************************************
	@echo made libtomcrypt libs
	@echo **********************************************


openal: 
	ls $(NEBULADIR)/lib/linux/libopenal.so || \
	$(MAKE) -C $(NEBULADIR)/externalPackages/openal/al/ -f Makefile.lagoon lagoon
	ls $(NEBULADIR)/lib/linux/libalut.so || \
	$(MAKE) -C $(NEBULADIR)/externalPackages/openal/alut/ -f Makefile.lagoon lagoon
	@echo **********************************************
	@echo made openal libs
	@echo **********************************************

devil:
	ls $(NEBULADIR)/lib/linux/libIL.so || \
	$(MAKE) -C $(NEBULADIR)/externalPackages/devil -f Makefile.lagoon lagoon
	@echo **********************************************
	@echo made devil libs
	@echo **********************************************

lagoon:
	cd $(NEBULADIR)/code/src; make
	@echo **********************************************
	@echo made lagoon; 
	@echo **********************************************
meshes:
	$(MAKE) -C $(NEBULADIR)/data/lagoon/meshes
	@echo **********************************************
	@echo made lagoons meshes; 
	@echo **********************************************

checkConfig:
	(rm bin/firstmake.dat && $(MAKE) config) || echo no config needed

config:
	ls $(NEBULADIR)/externalPackages/ode/Makefile || \
	$(MAKE) -C $(NEBULADIR)/externalPackages/ode/ -f Makefile.lagoon -B config
	ls $(NEBULADIR)/externalPackages/openal/al/Makefile || \
	$(MAKE) -C $(NEBULADIR)/externalPackages/openal/al -f Makefile.lagoon -B config
	ls $(NEBULADIR)/externalPackages/openal/alut/Makefile || \
	$(MAKE) -C $(NEBULADIR)/externalPackages/openal/alut -f Makefile.lagoon -B config
	ls $(NEBULADIR)/code/pythondir.mak || \
	(cd $(NEBULADIR)/code/ && python findPythonDir.py)

clean:
	$(MAKE) -C $(NEBULADIR)/externalPackages/ode/ -f Makefile.lagoon clean
	$(MAKE) -C $(NEBULADIR)/externalPackages/tnl/ clean
	$(MAKE) -C $(NEBULADIR)/externalPackages/libtomcrypt clean
	$(MAKE) -C $(NEBULADIR)/externalPackages/openal/al -f Makefile.lagoon clean
	$(MAKE) -C $(NEBULADIR)/externalPackages/openal/alut -f Makefile.lagoon clean
	$(MAKE) -C $(NEBULADIR)/code/src clean
	rm -rf $(NEBULADIR)/lib/linux/*	$(NEBULADIR)/bin/linux/* $(NEBULADIR)/bin/linuxd/*
	
dist:
	tar -cvzf lagoon.tgz -C .. --exclude='cove*' --exclude='.svn'  --exclude lagoon.tgz gyarados

tags:
	ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .

