1#Formido makefile for Linux/Unix
2#Make sure you have SDL, SDL_mixer and SDL_image
3#installed!
4
5#Formido directories
6#You can use these defaults, or change them if you like to
7#(just don't include the ending slash)
8
9bundle_contents = Formido.app/Contents
10
11#Data directory (default: ./data)
12DATDIR = ./$(bundle_contents)/Resources/data
13
14#High score directory (default: ./data)
15HISCOREDIR = /.formido
16
17#Config file directory (default: .)
18CONFIGDIR = /.formido
19DEFCONFIGDIR = ./$(bundle_contents)/Resources
20
21CC=g++
22FLAGS=`sdl-config --cflags` -Wall -I./include
23LINKFLAGS=-O2 -ffast-math -fomit-frame-pointer -lobjc
24LIBS=-Wl,-framework,Cocoa -Wl,-framework,SDL -Wl,-framework,SDL_image -Wl,-framework,SDL_mixer
25
26CPPFILES=blend.cpp credits.cpp explo.cpp hof.cpp menu.cpp player.cpp \
27	bomb.cpp critter.cpp font.cpp init.cpp mymath.cpp powerup.cpp \
28	config.cpp effect.cpp game.cpp main.cpp particle.cpp timer.cpp
29
30DEFINES=-DDATA_DIR=\"${DATDIR}\" -DHISCORE_DIR=\"${HISCOREDIR}\" -DCONFIG_DIR=\"${CONFIGDIR}\" -DDEFCONFIG_DIR=\"${DEFCONFIGDIR}\"
31
32SOURCES=$(addprefix src/, $(CPPFILES))
33OBJECTS=$(addprefix obj/, $(CPPFILES:.cpp=.o)) obj/SDLMain.o
34PROGRAM=formido
35
36
37
38all: $(OBJECTS) $(PROGRAM) bundle
39
40bundle: $(PROGRAM)
41	mkdir -p $(bundle_contents)/MacOS
42	mkdir -p $(bundle_contents)/Resources
43	mkdir -p $(bundle_contents)/Frameworks
44	echo "APPL????" > $(bundle_contents)/PkgInfo
45	cp formido $(bundle_contents)/MacOS/
46	cp -R data $(DATDIR)
47	cp formido.cfg $(DEFCONFIGDIR)
48	cp macosx/formido.icns $(bundle_contents)/Resources
49	cp macosx/Info.plist $(bundle_contents)
50	cp -R /Library/Frameworks/SDL_image.framework $(bundle_contents)/Frameworks
51	cp -R /Library/Frameworks/SDL_mixer.framework $(bundle_contents)/Frameworks
52	cp -R /Library/Frameworks/SDL.framework $(bundle_contents)/Frameworks
53
54$(PROGRAM): $(OBJECTS)
55	$(CC) $(OBJECTS) $(LINKFLAGS) -o $(PROGRAM) $(LIBS)
56
57obj/%.o: src/%.cpp
58	$(CC) -o $@ $(FLAGS) $(DEFINES) -c $<
59
60obj/SDLMain.o : macosx/SDLMain.m macosx/SDLMain.h
61	gcc -c -o obj/SDLMain.o macosx/SDLMain.m $(FLAGS)
62
63clean:
64	rm  -r obj/*.o $(PROGRAM) Formido.app
65
66
67
68