]> git.mxchange.org Git - quix0rs-blobwars.git/blob - makefile
eda1533f3f3144f0a39ad469b162b05ca609c9a7
[quix0rs-blobwars.git] / makefile
1 PROG = blobwars
2 PAKNAME = blobwars.pak
3 DOCS = doc/*
4 ICONS = icons/
5
6 VERSION = 1.14
7 RELEASE = 1
8 USEPAK = 1
9
10 PREFIX=$(DESTDIR)/usr
11 BINDIR = $(PREFIX)/games/
12 DATADIR = $(PREFIX)/share/games/blobwars/
13 DOCDIR = $(PREFIX)/share/doc/$(PROG)/
14 ICONDIR = $(PREFIX)/share/icons/hicolor/
15 DESKTOPDIR = $(PREFIX)/share/applications/
16 LOCALEDIR = $(PREFIX)/share/locale/
17
18 CXXFLAGS += `sdl-config --cflags` -DVERSION=$(VERSION) -DRELEASE=$(RELEASE) -DUSEPAK=$(USEPAK)
19 CXXFLAGS += -DPAKNAME=\"$(PAKNAME)\" -DPAKLOCATION=\"$(DATADIR)\" -DUNIX -DGAMEPLAYMANUAL=\"$(DOCDIR)index.html\" -Wall
20 CXXFLAGS += -DLOCALEDIR=\"$(LOCALEDIR)\"
21 CXXFLAGS += $(CFLAGS) -Werror
22 LIBS = `sdl-config --libs` -lSDL_mixer -lSDL_image -lSDL_ttf -lz
23
24 OBJS += CAudio.o
25 OBJS += CBoss.o
26 OBJS += CCollision.o CCutscene.o  CConfig.o
27 OBJS += CData.o 
28 OBJS += CEffect.o CEngine.o CEntity.o 
29 OBJS += CFileData.o 
30 OBJS += CGame.o CGameData.o CGameObject.o CGraphics.o
31 OBJS += CHub.o 
32 OBJS += CKeyboard.o 
33 OBJS += CJoystick.o 
34 OBJS += CLineDef.o
35 OBJS += CList.o
36 OBJS += CMap.o CMath.o
37 OBJS += CObjective.o
38 OBJS += CPak.o CParticle.o CPersistant.o CPersistData.o
39 OBJS += CRadarBlip.o CReplayData.o
40 OBJS += CSpawnPoint.o CSprite.o CSwitch.o
41 OBJS += CTeleporter.o CTrain.o CTrap.o
42 OBJS += CWeapon.o CWidget.o
43
44 OBJS += aquaBoss.o
45 OBJS += bosses.o bullets.o 
46 OBJS += cutscene.o
47 OBJS += droidBoss.o 
48 OBJS += effects.o enemies.o entities.o explosions.o 
49 OBJS += finalBattle.o 
50 OBJS += galdov.o game.o graphics.o 
51 OBJS += hub.o 
52 OBJS += info.o init.o intro.o items.o 
53 OBJS += lineDefs.o loadSave.o
54 OBJS += map.o mapData.o mias.o mission.o
55 OBJS += objectives.o obstacles.o options.o
56 OBJS += particles.o player.o 
57 OBJS += resources.o 
58 OBJS += spawnPoints.o switches.o 
59 OBJS += tankBoss.o teleporters.o title.o trains.o traps.o triggers.o 
60 OBJS += weapons.o widgets.o
61
62 GAMEOBJS = $(OBJS) main.o
63 MAPOBJS = $(OBJS) mapEditor.o
64 PAKOBJS = CFileData.o pak.o
65
66 LOCALE_MO = $(patsubst %.po,%.mo,$(wildcard locale/*.po))
67
68 # top-level rule to create the program.
69 all: $(PROG) pak $(LOCALE_MO)
70
71 # compiling other source files.
72 %.o: src/%.cpp src/%.h src/defs.h src/defines.h src/headers.h
73         $(CXX) $(CXXFLAGS) -c $<
74
75 # linking the program.
76 $(PROG): $(GAMEOBJS)
77         $(CXX) $(LIBS) $(GAMEOBJS) -o $(PROG)
78         
79 pak: $(PAKOBJS)
80         $(CXX) $(LIBS) $(PAKOBJS) -o pak
81
82 %.mo: %.po
83         msgfmt -c -o $@ $<
84
85 mapeditor: $(MAPOBJS)
86         $(CXX) $(LIBS) $(MAPOBJS) -o mapeditor
87
88 # cleaning everything that can be automatically recreated with "make".
89 clean:
90         $(RM) $(GAMEOBJS) mapEditor.o pak.o $(PROG) $(PAKNAME) pak mapeditor $(LOCALE_MO)
91         
92 buildpak:
93         ./pak data gfx music sound $(PAKNAME)
94
95 # install
96 install:
97
98         ./pak data gfx music sound $(PAKNAME)
99
100         mkdir -p $(BINDIR)
101         mkdir -p $(DATADIR)
102         mkdir -p $(DOCDIR)
103         mkdir -p $(ICONDIR)16x16/apps
104         mkdir -p $(ICONDIR)32x32/apps
105         mkdir -p $(ICONDIR)64x64/apps
106         mkdir -p $(DESKTOPDIR)
107
108         install -o root -g games -m 755 $(PROG) $(BINDIR)$(PROG)
109         install -o root -g games -m 644 $(PAKNAME) $(DATADIR)$(PAKNAME)
110         install -o root -g games -m 644 $(DOCS) $(DOCDIR)
111         cp $(ICONS)$(PROG).png $(ICONDIR)32x32/apps/
112         cp $(ICONS)$(PROG)-mini.png $(ICONDIR)16x16/apps/$(PROG).png
113         cp $(ICONS)$(PROG)-large.png $(ICONDIR)64x64/apps/$(PROG).png
114         cp $(ICONS)$(PROG).desktop $(DESKTOPDIR)
115
116         @for f in $(LOCALE_MO); do \
117                 lang=`echo $$f | sed -e 's/^locale\///;s/\.mo$$//'`; \
118                 mkdir -p $(LOCALEDIR)$$lang/LC_MESSAGES; \
119                 echo "cp $$f $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo"; \
120                 cp $$f $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo; \
121         done
122
123 uninstall:
124         $(RM) $(BINDIR)$(PROG)
125         $(RM) $(DATADIR)$(PAKNAME)
126         $(RM) -r $(DOCDIR)
127         $(RM) $(ICONDIR)$(ICONS)$(PROG).png
128         $(RM) $(ICONDIR)16x16/apps/$(PROG).png
129         $(RM) $(ICONDIR)32x32/apps/$(PROG).png
130         $(RM) $(ICONDIR)64x64/apps/$(PROG).png
131         $(RM) $(DESKTOPDIR)$(PROG).desktop
132
133         @for f in $(LOCALE_MO); do \
134                 lang=`echo $$f | sed -e 's/^locale\///;s/\.mo$$//'`; \
135                 echo "$(RM) $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo"; \
136                 $(RM) $(LOCALEDIR)$$lang/LC_MESSAGES/$(PROG).mo; \
137         done
138