1# Makefile for "Help Hannah's Horse"
2# This Makefile kindly contributed by Eero Tamminen (Thanks Eero!)
3
4# Install options
5#
6# For local install, comment the next line and uncomment the one after
7DATA_INSTALL_DIR?=/usr/local/games/hhh
8#DATA_INSTALL_DIR=.
9
10# Where the binary goes (you might want /usr/bin instead)
11BIN_DIR?=/usr/local/bin
12
13# Where the hiscore table is saved: user's home dir/.hannah
14#SCORE_DIR=${HOME}/.hannah
15#SCORE_DIR=.
16
17
18# compiler options
19CXX       ?= g++
20CPPFLAGS += $(shell sdl-config --cflags) -DDATA_INSTALL_DIR=\"${DATA_INSTALL_DIR}\" #-DSCORE_DIR=\"${SCORE_DIR}\"
21CXXFLAGS += -Wall
22LIBS     += $(shell sdl-config --libs) -lSDL_image -lSDL_ttf -lSDL_mixer
23
24# target binary and directory name
25OUT = hhh
26# source and object files
27SRCS = $(wildcard *.cc)
28OBJS = $(patsubst %.cc, %.o, $(SRCS))
29
30# what to build
31$(OUT): $(OBJS)
32	$(CXX) $(CXXFLAGS) -o $(OUT) $(OBJS) $(LIBS)
33
34# how to compile source code to object files
35.cc.o:
36	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
37
38# automatic dependencies
39deps: $(SRCS)
40	gcc $(CPPFLAGS) -MM $^ > deps
41
42#-include deps
43
44
45install: hhh
46	install -m 0755 -s hhh $(BIN_DIR)
47	install -d -D -m 0755 $(DATA_INSTALL_DIR)/hannah/default $(DATA_INSTALL_DIR)/hannah/die $(DATA_INSTALL_DIR)/hannah/invis $(DATA_INSTALL_DIR)/red/flash $(DATA_INSTALL_DIR)/red/default $(DATA_INSTALL_DIR)/pink/flash $(DATA_INSTALL_DIR)/pink/default $(DATA_INSTALL_DIR)/blue/default $(DATA_INSTALL_DIR)/blue/flash $(DATA_INSTALL_DIR)/images  $(DATA_INSTALL_DIR)/maps $(DATA_INSTALL_DIR)/sounds $(DATA_INSTALL_DIR)/carrot/default $(DATA_INSTALL_DIR)/stop/default $(DATA_INSTALL_DIR)/freeze/default $(DATA_INSTALL_DIR)/invis/default $(DATA_INSTALL_DIR)/invert/default
48	install -m 0755 hannah/default/* $(DATA_INSTALL_DIR)/hannah/default
49	install -m 0755 hannah/die/* $(DATA_INSTALL_DIR)/hannah/die
50	install -m 0755 hannah/invis/* $(DATA_INSTALL_DIR)/hannah/invis
51	install -m 0755 red/default/* $(DATA_INSTALL_DIR)/red/default
52	install -m 0755 red/flash/* $(DATA_INSTALL_DIR)/red/flash
53	install -m 0755 pink/default/* $(DATA_INSTALL_DIR)/pink/default
54	install -m 0755 pink/flash/* $(DATA_INSTALL_DIR)/pink/flash
55	install -m 0755 blue/default/* $(DATA_INSTALL_DIR)/blue/default
56	install -m 0755 blue/flash/* $(DATA_INSTALL_DIR)/blue/flash
57	install -m 0755 carrot/default/* $(DATA_INSTALL_DIR)/carrot/default
58	install -m 0755 freeze/default/* $(DATA_INSTALL_DIR)/freeze/default
59	install -m 0755 invis/default/* $(DATA_INSTALL_DIR)/invis/default
60	install -m 0755 invert/default/* $(DATA_INSTALL_DIR)/invert/default
61	install -m 0755 sounds/* $(DATA_INSTALL_DIR)/sounds
62	install -m 0755 images/* $(DATA_INSTALL_DIR)/images
63	install -m 0755 maps/* $(DATA_INSTALL_DIR)/maps
64	install -m 0755 *.ttf *.ogg  $(DATA_INSTALL_DIR)/
65	#cp -p hiscore.dat $(SCORE_DIR)/
66
67
68# package name and what to exclude from it
69PKG_NAME = $(OUT)-$(shell date -I)
70EXCLUDE = --exclude CVS --exclude "*.bak"
71
72# rename source dir to pkg-dir, package, rename back
73package: veryclean
74	cd ..; \
75	mv $(OUT) $(PKG_NAME); \
76	tar -zcvf $(PKG_NAME).tar.gz $(EXCLUDE) $(PKG_NAME); \
77	mv $(PKG_NAME) $(OUT)
78
79
80# remove temporary files
81clean:
82	$(RM) *.o *~
83
84# remove also the built binary
85veryclean: clean
86	$(RM) $(OUT)
87
88# remove also sources
89megaclean: veryclean
90	$(RM) *.cc *.h
91
92uninstall:
93	rm -rf $(DATA_INSTALL_DIR) $(BIN_DIR)/hhh
94
95love:
96	@echo "Sorry, I'm not equipped for that"
97
98war:
99	@echo "Make love, not war!"
100
101.PHONY:	install package clean veryclean megaclean love war uninstall
102