1 # Makefile for supertux
3 # by Bill Kendrick & Tobias Glaesser
4 # bill@newbreedsoftware.com
6 # http://www.newbreedsoftware.com/
8 # Version 0.0.6 (in development)
10 # April 11, 2000 - December 29, 2000
13 # User-definable stuff:
16 ifeq ($(USERNAME),root)
21 DATA_PREFIX=$(PWD)/data/
23 DATA_PREFIX=$(PREFIX)/share/games/supertux/data/
28 #undefine this for non debugging compilation
30 DEBUG_FLAG=-DDEBUG -pg
37 CFLAGS=-Wall-O2 $(SDL_CFLAGS) -DDATA_PREFIX=\"$(DATA_PREFIX)\" \
38 -D$(NOSOUNDFLAG) -D$(NOOPENGLFLAG) -D$(TARGET_DEF) -DJOY_$(JOY) $(DEBUG_FLAG)
48 SDL_LIB=$(SDL_MIXER) $(SDL_IMAGE) $(SDL_LDFLAGS)
49 SDL_CFLAGS := $(shell sdl-config --cflags)
50 SDL_LDFLAGS := $(shell sdl-config --libs)
51 GL_LIB = -L/usr/X11R6/lib -lGL
52 installbin = install -g $(USERNAME) -o $(USERNAME) -m 755
53 installdat = install -g $(USERNAME) -o $(USERNAME) -m 644
56 OBJECTS=obj/supertux.o obj/setup.o obj/intro.o obj/title.o obj/scene.o obj/collision.o obj/bitmask.o obj/type.o \
57 obj/timer.o obj/text.o obj/texture.o obj/badguy.o obj/special.o obj/player.o obj/level.o obj/gameloop.o \
58 obj/screen.o obj/sound.o obj/high_scores.o obj/menu.o obj/leveleditor.o obj/globals.o obj/button.o obj/physic.o obj/lispreader.o obj/worldmap.o obj/particlesystem.o obj/tile.o obj/mousecursor.o obj/configfile.o obj/world.o
65 mkdir -p $(PREFIX)/games/$(TARGET)
66 mkdir -p $(PREFIX)/share/games/$(TARGET)
67 mkdir -p $(PREFIX)/bin/
68 cp -r data $(PREFIX)/share/games/$(TARGET)/
69 chmod -R 0755 $(PREFIX)/share/games/$(TARGET)/data/
70 -$(installbin) $(TARGET) $(PREFIX)/games/$(TARGET)/$(TARGET)
71 ln -sf $(PREFIX)/games/$(TARGET)/$(TARGET) $(PREFIX)/bin/$(TARGET)
74 rm -r $(PREFIX)/games/$(TARGET)
75 rm -r $(PREFIX)/share/games/$(TARGET)
76 rm $(PREFIX)/bin/$(TARGET)
79 make supertux SDL_MIXER= NOSOUNDFLAG=NOSOUND
82 make supertux GL_LIB= NOOPENGLFLAG=NOOPENGL
85 make supertux GL_LIB= SDL_MIXER= NOSOUNDFLAG=NOSOUND NOOPENGLFLAG=NOOPENGL
88 make TARGET_DEF=WIN32 TARGET=supertux.exe \
90 cp /usr/local/cross-tools/i386-mingw32/lib/SDL*.dll .
94 -rm -f supertux supertux.exe
101 $(TARGET): $(OBJECTS)
102 $(CC) $(CFLAGS) $(OBJECTS) -o $(TARGET) $(SDL_LIB) $(GL_LIB) $(DEBUG_LIB)
106 obj/supertux.o: src/supertux.cpp
107 $(CC) $(CFLAGS) src/supertux.cpp -c -o obj/supertux.o
109 obj/setup.o: src/setup.cpp
110 $(CC) $(CFLAGS) src/setup.cpp -c -o obj/setup.o
112 obj/intro.o: src/intro.cpp
113 $(CC) $(CFLAGS) src/intro.cpp -c -o obj/intro.o
115 obj/title.o: src/title.cpp
116 $(CC) $(CFLAGS) src/title.cpp -c -o obj/title.o
118 obj/level.o: src/level.cpp
119 $(CC) $(CFLAGS) src/level.cpp -c -o obj/level.o
121 obj/scene.o: src/scene.cpp
122 $(CC) $(CFLAGS) src/scene.cpp -c -o obj/scene.o
124 obj/collision.o: src/collision.cpp
125 $(CC) $(CFLAGS) src/collision.cpp -c -o obj/collision.o
127 obj/bitmask.o: src/bitmask.cpp
128 $(CC) $(CFLAGS) src/bitmask.cpp -c -o obj/bitmask.o
130 obj/type.o: src/type.cpp
131 $(CC) $(CFLAGS) src/type.cpp -c -o obj/type.o
133 obj/timer.o: src/timer.cpp
134 $(CC) $(CFLAGS) src/timer.cpp -c -o obj/timer.o
136 obj/texture.o: src/texture.cpp
137 $(CC) $(CFLAGS) src/texture.cpp -c -o obj/texture.o
139 obj/text.o: src/text.cpp
140 $(CC) $(CFLAGS) src/text.cpp -c -o obj/text.o
142 obj/badguy.o: src/badguy.cpp
143 $(CC) $(CFLAGS) src/badguy.cpp -c -o obj/badguy.o
145 obj/special.o: src/special.cpp
146 $(CC) $(CFLAGS) src/special.cpp -c -o obj/special.o
148 obj/world.o: src/world.cpp
149 $(CC) $(CFLAGS) src/world.cpp -c -o obj/world.o
151 obj/player.o: src/player.cpp
152 $(CC) $(CFLAGS) src/player.cpp -c -o obj/player.o
154 obj/gameloop.o: src/gameloop.cpp
155 $(CC) $(CFLAGS) src/gameloop.cpp -c -o obj/gameloop.o
157 obj/screen.o: src/screen.cpp
158 $(CC) $(CFLAGS) src/screen.cpp -c -o obj/screen.o
160 obj/sound.o: src/sound.cpp
161 $(CC) $(CFLAGS) src/sound.cpp -c -o obj/sound.o
163 obj/high_scores.o: src/high_scores.cpp
164 $(CC) $(CFLAGS) src/high_scores.cpp -c -o obj/high_scores.o
166 obj/menu.o: src/menu.cpp
167 $(CC) $(CFLAGS) src/menu.cpp -c -o obj/menu.o
169 obj/leveleditor.o: src/leveleditor.cpp
170 $(CC) $(CFLAGS) src/leveleditor.cpp -c -o obj/leveleditor.o
172 obj/lispreader.o: src/lispreader.cpp
173 $(CC) $(CFLAGS) src/lispreader.cpp -c -o obj/lispreader.o
175 obj/globals.o: src/globals.cpp
176 $(CC) $(CFLAGS) src/globals.cpp -c -o obj/globals.o
178 obj/button.o: src/button.cpp
179 $(CC) $(CFLAGS) src/button.cpp -c -o obj/button.o
181 obj/physic.o: src/physic.cpp
182 $(CC) $(CFLAGS) src/physic.cpp -c -o obj/physic.o
184 obj/worldmap.o: src/worldmap.cpp
185 $(CC) $(CFLAGS) src/worldmap.cpp -c -o obj/worldmap.o
187 obj/particlesystem.o: src/particlesystem.cpp
188 $(CC) $(CFLAGS) src/particlesystem.cpp -c -o obj/particlesystem.o
190 obj/tile.o: src/tile.cpp
191 $(CC) $(CFLAGS) src/tile.cpp -c -o obj/tile.o
193 obj/mousecursor.o: src/mousecursor.cpp
194 $(CC) $(CFLAGS) src/mousecursor.cpp -c -o obj/mousecursor.o
196 obj/configfile.o: src/configfile.cpp
197 $(CC) $(CFLAGS) src/configfile.cpp -c -o obj/configfile.o