]> icculus.org git repositories - btb/d2x.git/blob - Makefile.am
add options matrix
[btb/d2x.git] / Makefile.am
1 bin_PROGRAMS = @TARGETS@ hogcreate hogextract mveplayer mvlcreate mvlextract txb2tex tex2txb
2 EXTRA_PROGRAMS = d2x d2x-sdl d2x-gl d2x-svga miner miner-sdl miner-gl miner-svga
3
4 # Common to all d2x platforms/options
5
6 d2x_CPPFLAGS = $(PHYSFS_CFLAGS) \
7 -I$(top_srcdir)/include -I$(top_srcdir)/main -I$(top_srcdir)/arch/include
8
9 d2x_SOURCES = \
10 2d/2dsline.c  2d/box.c      2d/disc.c     2d/ibitblt.c  2d/pcx.c      2d/rect.c     2d/scalec.c   \
11 2d/bitblt.c   2d/canvas.c   2d/font.c     2d/gr.c       2d/line.c     2d/pixel.c    2d/rle.c      \
12 2d/bitmap.c   2d/circle.c   2d/gpixel.c   2d/palette.c  \
13 3d/clipper.c  3d/globvars.c 3d/interp.c   3d/points.c   3d/setup.c    3d/draw.c     3d/instance.c \
14 3d/matrix.c   3d/rod.c      \
15 arch/sdl/digi.c    arch/sdl/init.c    arch/sdl/midi.c    arch/sdl/rbaudio.c arch/sdl/timer.c   \
16 iff/iff.c     \
17 libmve/decoder16.c libmve/decoder8.c  libmve/mve_audio.c libmve/mvelib.c    libmve/mveplay.c   \
18 main/ai.c       main/ai2.c      main/aipath.c   main/automap.c  main/bm.c       main/cli.c      \
19 main/cmd.c      main/cntrlcen.c main/collide.c  main/config.c   main/console.c  main/controls.c \
20 main/credits.c  main/cvar.c     main/digiobj.c  main/effects.c  main/endlevel.c main/entity.c   \
21 main/escort.c   main/fireball.c main/fuelcen.c  main/fvi.c      main/game.c     main/gamecntl.c \
22 main/gamefont.c main/gamemine.c main/gamepal.c  main/gamerend.c main/gamesave.c main/gameseg.c  \
23 main/gameseq.c  main/gauges.c   main/hostage.c  main/hud.c      main/inferno.c  main/kconfig.c  \
24 main/kludge.c   main/laser.c    main/lighting.c main/menu.c     main/mglobal.c  main/mission.c  \
25 main/morph.c    main/movie.c    main/newdemo.c  main/newmenu.c  main/object.c   main/paging.c   \
26 main/physics.c  main/piggy.c    main/player.c   main/polyobj.c  main/powerup.c  main/render.c   \
27 main/robot.c    main/scores.c   main/segment.c  main/slew.c     main/songs.c    main/state.c    \
28 main/switch.c   main/terrain.c  main/texmerge.c main/text.c     main/titles.c   main/vclip.c    \
29 main/wall.c     main/weapon.c   \
30 maths/vecmat.c  maths/rand.c    maths/tables.c  \
31 mem/mem.c \
32 misc/args.c        misc/error.c       misc/strio.c       misc/ignorecase.c  misc/physfsrwops.c \
33 misc/hash.c        misc/hmp.c         misc/strutil.c     \
34 texmap/ntmap.c     texmap/scanline.c
35
36 d2x_LDFLAGS =
37 d2x_LDADD = $(PHYSFS_LIBS)
38
39 if MACDATA
40 TRANSPARENCY_COLOR = 0
41 else
42 TRANSPARENCY_COLOR = 255
43 endif
44
45 SUFFIXES = .asm
46 .asm.o:
47         $(NASM) -dTRANSPARENCY_COLOR=${TRANSPARENCY_COLOR} $(NASMFLAGS) -Itexmap/ $< -o $@
48
49 if USE_ASM
50 d2x_SOURCES += texmap/tmappent.S texmap/tmapppro.S
51 d2x_LDADD += 2d/linear.o 2d/tmerge_a.o maths/vecmata.o maths/fix.o \
52 texmap/tmap_flt.o texmap/tmap_lin.o texmap/tmap_ll.o  texmap/tmap_per.o texmap/tmapfade.o
53 else
54 d2x_SOURCES += 2d/tmerge.c maths/fixc.c
55 endif
56
57 if USE_NETWORK
58 d2x_SOURCES += main/kmatrix.c main/multi.c main/multibot.c main/network.c main/netmisc.c
59 endif
60
61 _miner_CPPFLAGS = -DEDITOR
62 _miner_SOURCES = main/bmread.c main/dumpmine.c \
63 main/editor/autosave.c  main/editor/centers.c   main/editor/curves.c    main/editor/eglobal.c   \
64 main/editor/ehostage.c  main/editor/elight.c    main/editor/eobject.c   main/editor/eswitch.c   \
65 main/editor/fixseg.c    main/editor/func.c      main/editor/group.c     main/editor/info.c      \
66 main/editor/kbuild.c    main/editor/kcurve.c    main/editor/kfuncs.c    main/editor/kgame.c     \
67 main/editor/kgroup.c    main/editor/khelp.c     main/editor/kmine.c     main/editor/ksegmove.c  \
68 main/editor/ksegsel.c   main/editor/ksegsize.c  main/editor/ktmap.c     main/editor/kview.c     \
69 main/editor/macro.c     main/editor/med.c       main/editor/meddraw.c   main/editor/medmisc.c   \
70 main/editor/medrobot.c  main/editor/medsel.c    main/editor/medwall.c   main/editor/mine.c      \
71 main/editor/objpage.c   main/editor/segment.c   main/editor/seguvs.c    main/editor/texpage.c   \
72 main/editor/texture.c \
73 ui/barbox.c    ui/button.c    ui/checkbox.c  ui/file.c      ui/gadget.c    ui/icon.c      \
74 ui/inputbox.c  ui/keypad.c    ui/keypress.c  ui/keytrap.c   ui/listbox.c   ui/menu.c      \
75 ui/menubar.c   ui/message.c   ui/mouse.c     ui/number.c    ui/popup.c     ui/radio.c     \
76 ui/scroll.c    ui/ui.c        ui/uidraw.c    ui/userbox.c   ui/window.c
77
78 if USE_LIBPNG
79 d2x_SOURCES += misc/pngfile.c
80 endif
81
82
83 # Platform-specific things
84
85 if MSDOS
86 d2x_CPPFLAGS += -I$(top_srcdir)/arch/dos/include
87 d2x_SOURCES += arch/dos/digi.c arch/dos/dpmi.c arch/dos/findfile.c arch/dos/vid.c arch/dos/init.c arch/dos/ipx.c arch/dos/joyc.c arch/dos/joydefs.c arch/dos/key.c arch/dos/mouse.c arch/dos/rbaudio.c arch/dos/vesa.c
88 d2x_LDADD += arch/dos/timer.o arch/dos/modex.o
89 endif
90
91 miner_CPPFLAGS = $(d2x_CPPFLAGS) $(_miner_CPPFLAGS)
92 miner_SOURCES = $(d2x_SOURCES) $(_miner_SOURCES)
93 miner_LDFLAGS = $(d2x_LDFLAGS)
94 miner_LDADD = $(d2x_LDADD)
95
96
97 # Remaining targets are based on d2x_*
98
99 d2x_svga_CPPFLAGS = $(d2x_CPPFLAGS) -DSVGALIB_INPUT
100 d2x_svga_SOURCES = $(d2x_SOURCES) arch/svgalib/event.c arch/svgalib/vid.c arch/svgalib/key.c arch/svgalib/mouse.c arch/svgalib/init.c
101 d2x_svga_LDFLAGS = $(d2x_LDFLAGS)
102 d2x_svga_LDADD = $(d2x_LDADD) -lvga -lvgagl
103
104 miner_svga_CPPFLAGS = $(d2x_svga_CPPFLAGS) $(_miner_CPPFLAGS)
105 miner_svga_SOURCES = $(d2x_svga_SOURCES) $(_miner_SOURCES)
106 miner_svga_LDFLAGS = $(d2x_svga_LDFLAGS)
107 miner_svga_LDADD = $(d2x_svga_LDADD)
108
109
110 _d2x_sdl_CPPFLAGS = $(d2x_CPPFLAGS) $(SDL_CFLAGS) $(SDLMIXER_CFLAGS) -I$(top_srcdir)/arch/linux/include -DSDL_INPUT
111 _d2x_sdl_SOURCES = $(d2x_SOURCES) arch/sdl/event.c arch/sdl/key.c arch/sdl/mouse.c
112
113 d2x_sdl_CPPFLAGS = $(_d2x_sdl_CPPFLAGS) -DSDL_VIDEO
114 d2x_sdl_SOURCES = $(_d2x_sdl_SOURCES) arch/sdl/vid.c texmap/tmapflat.c
115 d2x_sdl_LDFLAGS = $(d2x_LDFLAGS)
116 d2x_sdl_LDADD = $(d2x_LDADD) $(SDL_LIBS) $(SDLIMAGE_LIBS) $(SDLMIXER_LIBS)
117
118 if USE_LINUX_JOY
119 _d2x_sdl_SOURCES += arch/linux/joystick.c arch/linux/joydefs.c
120 else
121 _d2x_sdl_SOURCES += arch/sdl/joy.c arch/sdl/joydefs.c
122 endif
123
124 if USE_NETWORK
125 _d2x_sdl_SOURCES += arch/linux/ipx_mcast4.c arch/linux/ipx_udp.c arch/linux/linuxnet.c
126 endif
127
128 if MINGW32
129 _d2x_sdl_SOURCES += arch/win32/mingw_init.c
130 d2x_sdl_LDADD += -lwinmm
131
132 if USE_NETWORK
133 _d2x_sdl_SOURCES += arch/win32/ipx_win.c
134 d2x_sdl_LDADD += -lwsock32
135 endif
136
137 else # !MINGW32
138
139 _d2x_sdl_SOURCES += arch/linux/init.c
140 d2x_sdl_LDADD += -lm
141
142 if USE_NETWORK
143
144 if USE_NATIVE_IPX
145 _d2x_sdl_SOURCES += arch/linux/ipx_bsd.c
146 endif
147
148 if USE_KALINIX
149 _d2x_sdl_SOURCES += arch/linux/ipx_kali.c arch/linux/ukali.c
150 endif
151
152 endif # USE_NETWORK
153
154 endif # !MINGW32
155
156 if MACOSX
157 #d2x_sdl_LDFLAGS += -all_load
158 endif
159
160 miner_sdl_CPPFLAGS = $(d2x_sdl_CPPFLAGS) $(_miner_CPPFLAGS)
161 miner_sdl_SOURCES = $(d2x_sdl_SOURCES) $(_miner_SOURCES)
162 miner_sdl_LDFLAGS = $(d2x_sdl_LDFLAGS)
163 miner_sdl_LDADD = $(d2x_sdl_LDADD)
164
165
166 # GL target is based on d2x_sdl_*, other than renderer
167
168 d2x_gl_CPPFLAGS = $(d2x_sdl_CPPFLAGS) -DOGL -DSDL_GL_VIDEO
169 d2x_gl_SOURCES = $(_d2x_sdl_SOURCES) arch/ogl/vid.c arch/ogl/ogl.c arch/ogl/sdlgl.c
170 d2x_gl_LDFLAGS = $(d2x_sdl_LDFLAGS)
171 d2x_gl_LDADD = $(d2x_sdl_LDADD)
172
173 if MACOSX
174 d2x_gl_LDFLAGS += -framework OpenGL
175 endif
176
177 if MINGW32
178 d2x_gl_LDADD += -lopengl32 -lglu32
179 else
180 if !MACOSX
181 d2x_gl_LDADD += -lGL -lGLU
182 endif
183 endif
184
185 miner_gl_CPPFLAGS = $(d2x_gl_CPPFLAGS) $(_miner_CPPFLAGS)
186 miner_gl_SOURCES = $(d2x_gl_SOURCES) $(_miner_SOURCES)
187 miner_gl_LDFLAGS = $(d2x_gl_LDFLAGS)
188 miner_gl_LDADD = $(d2x_gl_LDADD)
189
190
191 # Other programs
192
193 mveplayer_SOURCES = libmve/decoder16.c libmve/decoder8.c libmve/mve_audio.c libmve/mve_main.c libmve/mvelib.c libmve/mveplay.c
194 mveplayer_MANS = libmve/mveplayer.1
195 mveplayer_CFLAGS = -I$(top_srcdir)/include $(SDL_CFLAGS) $(SDLMIXER_CFLAGS)
196 mveplayer_LDADD = $(SDL_LIBS) $(SDLMIXER_LIBS)
197
198 hogcreate_SOURCES = utilities/hogcreate.c
199 hogcreate_MANS = utilities/hogcreate.1
200
201 hogextract_SOURCES = utilities/hogextract.c
202 hogextract_MANS = utilities/hogextract.1
203
204 mvlcreate_SOURCES = utilities/mvlcreate.c
205 mvlcreate_MANS = utilities/mvlcreate.1
206
207 mvlextract_SOURCES = utilities/mvlextract.c
208 mvlextract_MANS = utilities/mvlextract.1
209
210 txb2tex_SOURCES = utilities/txb2tex.c
211 txb2tex_MANS = utilities/txb2tex.1
212
213 tex2txb_SOURCES = utilities/tex2txb.c
214 tex2txb_MANS = utilities/tex2txb.1
215
216 _unused = \
217 2d/poly.c 2d/scale.c \
218 arch/carbon arch/cocoa arch/win64 \
219 arch/dos/allg_snd arch/dos/bak arch/dos/comm arch/dos/mm_snd \
220 arch/dos/bcd.c arch/dos/digiallg.c arch/dos/digimm.c arch/dos/disk.c arch/dos/midiallg.c \
221 arch/dos/mono.c arch/dos/serial.c \
222 arch/linux/alsadigi.c arch/linux/hmiplay.c  arch/linux/mono.c     arch/linux/serial.c   \
223 arch/linux/timer.c \
224 arch/ogl/glx.c arch/ogl/wgl.c \
225 arch/win32/digi.c       arch/win32/joydefs.c    arch/win32/serial.c     arch/win32/glinit.c     \
226 arch/win32/joyhh.c      arch/win32/mono.c       arch/win32/timer.c      arch/win32/init.c       \
227 arch/win32/key.c        arch/win32/mouse.c      arch/win32/vid.c        arch/win32/midi.c       \
228 arch/win32/palw32.c     arch/win32/win32.c      \
229 main/joydefs.c \
230 misc/byteswap.c misc/errtest.c misc/parsarg.c misc/parstest.c \
231 ui/func.c ui/harderr.c ui/medfunc.c \
232 iff/archive \
233 main/old \
234 unused \
235 VisualC
236
237 EXTRA_DIST = $(_unused) \
238 arch/dos/include arch/include arch/linux/include arch/win32/include include \
239 2d/bitmap.h 2d/clip.h   2d/scalea.h \
240 3d/clipper.h  3d/globvars.h \
241 arch/dos/ipx.h  arch/dos/mono.h \
242 arch/ogl/internal.h \
243 libmve/decoders.h  libmve/mve_audio.h libmve/mvelib.h \
244 main/ai.h       main/collide.h  main/effects.h  main/game.h     main/gauges.h   main/lighting.h \
245 main/netmisc.h  main/player.h   main/segment.h  main/texmerge.h main/aistruct.h main/config.h   \
246 main/endlevel.h main/gamefont.h main/hostage.h  main/menu.h     main/network.h  main/polyobj.h  \
247 main/segpoint.h main/text.h     main/automap.h  main/controls.h main/entity.h   main/gamemine.h \
248 main/hudmsg.h   main/mission.h  main/newdemo.h  main/powerup.h  main/slew.h     main/textures.h \
249 main/bm.h       main/credits.h  main/escort.h   main/gamepal.h  main/inferno.h  main/modem.h    \
250 main/newmenu.h  main/render.h   main/songs.h    main/titles.h   main/bmread.h   main/cvar.h     \
251 main/fireball.h main/gamesave.h main/joydefs.h  main/morph.h    main/object.h   main/reorder.h  \
252 main/sounds.h   main/vclip.h    main/cli.h      main/desc_id.h  main/fuelcen.h  main/gameseg.h  \
253 main/kconfig.h  main/movie.h    main/paging.h   main/robot.h    main/state.h    main/vers_id.h  \
254 main/cmd.h      main/desw.h     main/fvi.h      main/gameseq.h  main/kmatrix.h  main/multi.h    \
255 main/physics.h  main/scores.h   main/switch.h   main/wall.h     main/cntrlcen.h main/digi.h     \
256 main/fvi_a.h    main/gamestat.h main/laser.h    main/multibot.h main/piggy.h    main/screens.h  \
257 main/terrain.h  main/weapon.h \
258 main/editor/centers.h  main/editor/eobject.h  main/editor/kdefs.h    main/editor/meddraw.h  \
259 main/editor/medrobot.h main/editor/objpage.h  main/editor/editor.h   main/editor/eswitch.h  \
260 main/editor/kfuncs.h   main/editor/medlisp.h  main/editor/medsel.h   main/editor/seguvs.h   \
261 main/editor/ehostage.h main/editor/info.h     main/editor/macro.h    main/editor/medmisc.h  \
262 main/editor/medwall.h  main/editor/texpage.h \
263 misc/dos_disk.h misc/parsarg.h \
264 texmap/scanline.h texmap/texmapl.h
265
266 pkgdatadir = @sharepath@
267 missiondir = ${pkgdatadir}/missions
268
269 CLEANFILES = Info.plist