# add -d for debugging
DDDL_FLAGS =

# apple has a no-invalid-pp-token flag
#
# Note that we must not use the -P flag to strip out the #line generation,
# as that makes syntax errors show up on the wrong line
ifeq ($(shell uname), Darwin)
  CPP		= /usr/bin/cpp -Wno-invalid-pp-token
else
  CPP		= /usr/bin/cpp
endif

# if you have your AddOn directory mounted where your Linux system can
# directly copy to it, these defines could be useful
SUDO		= /usr/bin/sudo
CP		= /bin/cp		# maybe scp would be better for you?
SED		= /bin/sed
ADDON_DIR	= ~localronnie/DestructionForDummies
#ADDON_DIR	= /Applications/World\ of\ Warcraft/Interface/AddOns/DestructionForDummies


# Nothing below here should need modification, unless you are adding files

ADDON_NAME =	DestructionForDummies


.SUFFIXES: .L .lua .dddl .y .c .l .o

.L.lua:
	$(CPP) $< > $@.tmp
	$(SED) -e '/^#/d' -e 's/^[ \t]*--.*//' -e '/^[ \t]*$$/d' $@.tmp > $@
	rm $@.tmp

.dddl.lua: dddl/dddl
	dddl/dddl $(DDDL_FLAGS) -i $<  > $@.tmp
	mv $@.tmp $@

#		DruidBalance.lua		\
#		MageArcane.lua			\
#		MageFire.lua			\
#		ShamanElemental.lua		\
#		ShamanEnhancement.lua		\
#		WarriorFury.lua			\
#		WarriorProtection.lua

# generated files
TARGETS =  	DestructionForDummies.lua	\
		LocaleLocal.lua			\
		Version.lua			\
		DeathKnightBlood.lua		\
		DeathKnightFrost.lua		\
		DeathKnightUnholy.lua		\
		DruidFeral.lua 			\
		HunterBeastmaster.lua		\
		HunterMarksman.lua		\
		HunterSurvival.lua		\
		MageFrost.lua			\
		MonkWindwalker.lua		\
		PaladinRetribution.lua		\
		PriestShadow.lua		\
		RogueAssassination.lua		\
		RogueCombat.lua			\
		RogueSubtlety.lua		\
		WarlockAffliction.lua		\
		WarlockDemonology.lua		\
		WarlockDestruction.lua

# Source files and directories
SOURCES	=	DestructionForDummies.L		\
		Makefile			\
		ReadMe				\
		dddl				\
		src

# Files that are part of the executable
FILES 	=  	DestructionForDummies.toc 	\
		Classes.lua			\
		LocaleEnUS.lua			\
		LocaleDeDE.lua			\
		LocaleFrFR.lua			\
		Utilities.lua			\
	   	Variables.lua 			\
	   	$(TARGETS)

VPATH = src

all: do_dddl $(TARGETS) inst.bat

do_dddl:
	(cd dddl; make dddl)

LocaleLocal.lua: dddl/dddl
	dddl/dddl -l > tmpLocale
	mv tmpLocale LocaleLocal.lua

Version.lua: DestructionForDummies.toc tools/mk_version.sh
	tools/mk_version.sh > /tmp/Version.lua
	mv /tmp/Version.lua .

release: all
	mkdir $(ADDON_NAME)
	cp -r $(FILES) $(SOURCES) tools $(ADDON_NAME)
	(cd $(ADDON_NAME); make clean; make ; rm -f inst.bat)
	zip -r 'DestructionForDummies'`grep Version DestructionForDummies.toc | sed -e 's/^## Version: *//' -e 's/\./_/g'`'.zip' $(ADDON_NAME)/*
	rm -rf $(ADDON_NAME)

clean:
	rm -f *~ */*~ \#* $(TARGETS) tmpLocale
	rm -rf $(ADDON_NAME) *.zip inst.bat *.tmp
	cd dddl ; make clean

# this rule exists just for convenience--it assumes that you have your
# AddOns directory mounted so it can be viewed by your Linux system.
install: all
	chmod 644 $(FILES)
	$(CP) $(FILES) $(ADDON_DIR)

# build a bat file to install things on Windows
inst.bat: Makefile
	rm -f inst.bat
	sh -c 'for f in $(FILES) ; do echo "copy /V /Y /Z $$f c:\Users\Public\Games\Worldo~1\Interface\AddOns\DestructionForDummies" >> inst.bat; done'

*.lua: dddl/dddl

# include dependencies
DeathKnightBlood.lua: src/mutexes.h src/DeathKnightBlood.dddl
DeathKnightFrost.lua: src/mutexes.h src/DeathKnightFrost.dddl
DeathKnightUnholy.lua: src/mutexes.h src/DeathKnightUnholy.dddl
DruidFeral.lua: src/mutexes.h src/DruidFeral.dddl

*.lua: src/flasks.h
