5 DATA = data gfx sound music
12 BINDIR ?= $(PREFIX)/games/
13 DATADIR ?= $(PREFIX)/share/games/blobwars/
14 DOCDIR ?= $(PREFIX)/share/doc/$(PROG)/
15 ICONDIR ?= $(PREFIX)/share/icons/hicolor/
16 DESKTOPDIR ?= $(PREFIX)/share/applications/
17 LOCALEDIR ?= $(PREFIX)/share/locale/
18 MEDAL_SERVER_HOST = www.parallelrealities.co.uk
19 MEDAL_SERVER_PORT = 80
21 CXXFLAGS += `sdl-config --cflags` -DVERSION=$(VERSION) -DRELEASE=$(RELEASE) -DUSEPAK=$(USEPAK)
22 CXXFLAGS += -DPAKNAME=\"$(PAKNAME)\" -DPAKLOCATION=\"$(DATADIR)\" -DUNIX -DGAMEPLAYMANUAL=\"$(DOCDIR)index.html\" -Wall
23 CXXFLAGS += -DLOCALEDIR=\"$(LOCALEDIR)\" -DMEDAL_SERVER_HOST=\"$(MEDAL_SERVER_HOST)\" -DMEDAL_SERVER_PORT=$(MEDAL_SERVER_PORT)
24 CXXFLAGS += $(CFLAGS) -Werror
25 LIBS = `sdl-config --libs` -lSDL_mixer -lSDL_image -lSDL_ttf -lSDL_net -lz
29 OBJS += CCollision.o CCutscene.o CConfig.o
31 OBJS += CEffect.o CEngine.o CEntity.o
33 OBJS += CGame.o CGameData.o CGameObject.o CGraphics.o
39 OBJS += CMap.o CMath.o CMedalServer.o
41 OBJS += CPak.o CParticle.o CPersistant.o CPersistData.o
42 OBJS += CRadarBlip.o CReplayData.o
43 OBJS += CSpawnPoint.o CSprite.o CSwitch.o
44 OBJS += CTeleporter.o CTrain.o CTrap.o
45 OBJS += CWeapon.o CWidget.o
48 OBJS += bosses.o bullets.o
51 OBJS += effects.o enemies.o entities.o explosions.o
53 OBJS += galdov.o game.o graphics.o
55 OBJS += info.o init.o intro.o items.o
56 OBJS += lineDefs.o loadSave.o
57 OBJS += map.o mapData.o mias.o mission.o
58 OBJS += objectives.o obstacles.o options.o
59 OBJS += particles.o player.o
61 OBJS += spawnPoints.o switches.o
62 OBJS += tankBoss.o teleporters.o title.o trains.o traps.o triggers.o
63 OBJS += weapons.o widgets.o
65 GAMEOBJS = $(OBJS) main.o
66 MAPOBJS = $(OBJS) mapEditor.o
67 PAKOBJS = CFileData.o pak.o
69 LOCALE_MO = $(patsubst %.po,%.mo,$(wildcard locale/*.po))
71 ALL = $(PROG) $(LOCALE_MO)
76 # top-level rule to create the program.
79 # compiling other source files.
80 %.o: src/%.cpp src/%.h src/defs.h src/defines.h src/headers.h
81 $(CXX) $(CXXFLAGS) -c $<
83 # linking the program.
85 $(CXX) $(LIBS) $(GAMEOBJS) -o $(PROG)
88 $(CXX) $(LIBS) $(PAKOBJS) -o pak
94 $(CXX) $(LIBS) $(MAPOBJS) -o mapeditor
96 # cleaning everything that can be automatically recreated with "make".
98 $(RM) $(GAMEOBJS) mapEditor.o pak.o $(PROG) $(PAKNAME) pak mapeditor $(LOCALE_MO)
101 ./pak $(DATA) $(PAKNAME)
107 mkdir -p $(DESTDIR)$(BINDIR)
108 mkdir -p $(DESTDIR)$(DATADIR)
109 mkdir -p $(DESTDIR)$(DOCDIR)
110 mkdir -p $(DESTDIR)$(ICONDIR)16x16/apps
111 mkdir -p $(DESTDIR)$(ICONDIR)32x32/apps
112 mkdir -p $(DESTDIR)$(ICONDIR)64x64/apps
113 mkdir -p $(DESTDIR)$(DESKTOPDIR)
115 install -m 755 $(PROG) $(DESTDIR)$(BINDIR)$(PROG)
117 install -m 644 $(PAKNAME) $(DESTDIR)$(DATADIR)$(PAKNAME)
119 cp -pr $(DATA) $(DESTDIR)$(DATADIR)
121 cp -p $(DOCS) $(DESTDIR)$(DOCDIR)
122 cp -p $(ICONS)$(PROG).png $(DESTDIR)$(ICONDIR)32x32/apps/
123 cp -p $(ICONS)$(PROG)-mini.png $(DESTDIR)$(ICONDIR)16x16/apps/$(PROG).png
124 cp -p $(ICONS)$(PROG)-large.png $(DESTDIR)$(ICONDIR)64x64/apps/$(PROG).png
125 cp -p $(ICONS)$(PROG).desktop $(DESTDIR)$(DESKTOPDIR)
127 @for f in $(LOCALE_MO); do \
128 lang=`echo $$f | sed -e 's/^locale\///;s/\.mo$$//'`; \
129 mkdir -p $(DESTDIR)$(LOCALEDIR)$$lang/LC_MESSAGES; \
130 echo "cp $$f $(DESTDIR)$(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo"; \
131 cp $$f $(DESTDIR)$(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo; \
135 $(RM) $(BINDIR)$(PROG)
136 $(RM) $(DATADIR)$(PAKNAME)
138 $(RM) $(ICONDIR)$(ICONS)$(PROG).png
139 $(RM) $(ICONDIR)16x16/apps/$(PROG).png
140 $(RM) $(ICONDIR)32x32/apps/$(PROG).png
141 $(RM) $(ICONDIR)64x64/apps/$(PROG).png
142 $(RM) $(DESKTOPDIR)$(PROG).desktop
144 @for f in $(LOCALE_MO); do \
145 lang=`echo $$f | sed -e 's/^locale\///;s/\.mo$$//'`; \
146 echo "$(RM) $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo"; \
147 $(RM) $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo; \
150 .PHONY: all install uninstall clean buildpak