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