1# 2# EDGE Makefile : MacOSX version 3# 4 5PROGRAM=edge.macosx 6 7OBJDIR=obj_macosx 8LIBDIR=lib_macosx 9 10 11# ---------- 12 13# The compiler and compiler flags 14 15CC=gcc 16CXX=g++ 17 18CFLAGS=-O2 -ffast-math -fno-strict-aliasing -Wall -pipe 19 20LDFLAGS=-lm 21 22CFLAGS += -I. 23 24 25# Operating System 26 27CFLAGS += -DMACOSX 28 29 30# OpenGL rendering 31 32 33CFLAGS += -I$(LIBDIR)/glew/include 34LDFLAGS += -L$(LIBDIR)/glew/lib -lGLEW 35 36 37# PNG, JPEG and ZLIB 38 39CFLAGS += -I$(LIBDIR)/jpeg-6b -I/usr/X11/include 40LDFLAGS += -L/usr/X11/lib -L$(LIBDIR)/jpeg-6b -lpng -ljpeg -lz 41 42 43# OGG/Vorbis 44 45CFLAGS += -DUSE_OGG 46 47 48# glBSP 49 50CFLAGS_GLBSP=-O -Wall -fno-strict-aliasing 51 52CFLAGS_GLBSP += -DGLBSP_PLUGIN 53CFLAGS_GLBSP += -DINLINE_G=inline 54 55 56# SDL 57CFLAGS += -ISDL 58LDFLAGS += -framework Ogg -framework Vorbis -framework SDL -framework OpenAL -framework OpenGL -framework Cocoa -framework QTKit 59 60 61 62# ---------- 63 64# Targets 65 66all: makedirs $(PROGRAM) 67 68stripped: $(PROGRAM) 69 strip --strip-unneeded $(PROGRAM) 70 71clean: 72 rm -f $(PROGRAM) $(OBJDIR)/*/*.* 73 74halfclean: 75 rm -f $(PROGRAM) $(OBJDIR)/ddf/*.* $(OBJDIR)/edge/*.* 76 77makedirs: 78 mkdir -p $(OBJDIR)/coal 79 mkdir -p $(OBJDIR)/ddf 80 mkdir -p $(OBJDIR)/deh_edge 81 mkdir -p $(OBJDIR)/edge 82 mkdir -p $(OBJDIR)/epi 83 mkdir -p $(OBJDIR)/glbsp 84 mkdir -p $(OBJDIR)/timidity 85 mkdir -p $(OBJDIR)/macosx 86 87.PHONY: all stripped clean halfclean makedirs 88 89 90# ---------- Coal --------------- 91 92COAL_OBJS= \ 93 $(OBJDIR)/coal/c_compile.o \ 94 $(OBJDIR)/coal/c_execute.o \ 95 $(OBJDIR)/coal/c_memory.o 96 97$(OBJDIR)/coal/%.o: coal/%.cc 98 $(CXX) $(CFLAGS) -o $@ -c $< 99 100 101# --------- DDF ---------------- 102 103DDF_OBJS= \ 104 $(OBJDIR)/ddf/anim.o \ 105 $(OBJDIR)/ddf/attack.o \ 106 $(OBJDIR)/ddf/boom.o \ 107 $(OBJDIR)/ddf/colormap.o \ 108 $(OBJDIR)/ddf/font.o \ 109 $(OBJDIR)/ddf/game.o \ 110 $(OBJDIR)/ddf/image.o \ 111 $(OBJDIR)/ddf/language.o \ 112 $(OBJDIR)/ddf/level.o \ 113 $(OBJDIR)/ddf/line.o \ 114 $(OBJDIR)/ddf/main.o \ 115 $(OBJDIR)/ddf/playlist.o \ 116 $(OBJDIR)/ddf/sector.o \ 117 $(OBJDIR)/ddf/sfx.o \ 118 $(OBJDIR)/ddf/states.o \ 119 $(OBJDIR)/ddf/style.o \ 120 $(OBJDIR)/ddf/switch.o \ 121 $(OBJDIR)/ddf/thing.o \ 122 $(OBJDIR)/ddf/weapon.o 123 124$(OBJDIR)/ddf/%.o: ddf/%.cc 125 $(CXX) $(CFLAGS) -o $@ -c $< 126 127 128# ---------- Deh_EDGE --------------- 129 130DEHEDGE_OBJS= \ 131 $(OBJDIR)/deh_edge/ammo.o \ 132 $(OBJDIR)/deh_edge/attacks.o \ 133 $(OBJDIR)/deh_edge/buffer.o \ 134 $(OBJDIR)/deh_edge/convert.o \ 135 $(OBJDIR)/deh_edge/frames.o \ 136 $(OBJDIR)/deh_edge/info.o \ 137 $(OBJDIR)/deh_edge/main.o \ 138 $(OBJDIR)/deh_edge/system.o \ 139 $(OBJDIR)/deh_edge/util.o \ 140 $(OBJDIR)/deh_edge/wad.o \ 141 $(OBJDIR)/deh_edge/mobj.o \ 142 $(OBJDIR)/deh_edge/sounds.o \ 143 $(OBJDIR)/deh_edge/things.o \ 144 $(OBJDIR)/deh_edge/weapons.o \ 145 $(OBJDIR)/deh_edge/misc.o \ 146 $(OBJDIR)/deh_edge/text.o \ 147 $(OBJDIR)/deh_edge/storage.o \ 148 $(OBJDIR)/deh_edge/patch.o \ 149 $(OBJDIR)/deh_edge/rscript.o 150 151$(OBJDIR)/deh_edge/%.o: deh_edge/%.cc 152 $(CXX) $(CFLAGS) -DDEH_EDGE_PLUGIN -o $@ -c $< 153 154 155# ---------- EDGE --------------- 156 157EDGE_OBJS= \ 158 $(OBJDIR)/edge/i_main.o \ 159 $(OBJDIR)/edge/i_ctrl.o \ 160 $(OBJDIR)/edge/i_video.o \ 161 $(OBJDIR)/edge/i_sound.o \ 162 $(OBJDIR)/edge/i_net.o \ 163 $(OBJDIR)/edge/am_map.o \ 164 $(OBJDIR)/edge/con_con.o \ 165 $(OBJDIR)/edge/con_main.o \ 166 $(OBJDIR)/edge/con_link.o \ 167 $(OBJDIR)/edge/con_var.o \ 168 $(OBJDIR)/edge/e_input.o \ 169 $(OBJDIR)/edge/e_main.o \ 170 $(OBJDIR)/edge/e_player.o \ 171 $(OBJDIR)/edge/f_finale.o \ 172 $(OBJDIR)/edge/f_interm.o \ 173 $(OBJDIR)/edge/g_game.o \ 174 $(OBJDIR)/edge/hu_draw.o \ 175 $(OBJDIR)/edge/hu_font.o \ 176 $(OBJDIR)/edge/hu_stuff.o \ 177 $(OBJDIR)/edge/hu_style.o \ 178 $(OBJDIR)/edge/l_glbsp.o \ 179 $(OBJDIR)/edge/l_deh.o \ 180 $(OBJDIR)/edge/m_argv.o \ 181 $(OBJDIR)/edge/m_bbox.o \ 182 $(OBJDIR)/edge/m_cheat.o \ 183 $(OBJDIR)/edge/m_math.o \ 184 $(OBJDIR)/edge/m_menu.o \ 185 $(OBJDIR)/edge/m_misc.o \ 186 $(OBJDIR)/edge/m_option.o \ 187 $(OBJDIR)/edge/m_netgame.o \ 188 $(OBJDIR)/edge/m_random.o \ 189 $(OBJDIR)/edge/n_bcast.o \ 190 $(OBJDIR)/edge/n_reliable.o \ 191 $(OBJDIR)/edge/n_network.o \ 192 $(OBJDIR)/edge/p_action.o \ 193 $(OBJDIR)/edge/p_blockmap.o \ 194 $(OBJDIR)/edge/p_bot.o \ 195 $(OBJDIR)/edge/p_enemy.o \ 196 $(OBJDIR)/edge/p_inter.o \ 197 $(OBJDIR)/edge/p_lights.o \ 198 $(OBJDIR)/edge/p_map.o \ 199 $(OBJDIR)/edge/p_maputl.o \ 200 $(OBJDIR)/edge/p_mobj.o \ 201 $(OBJDIR)/edge/p_plane.o \ 202 $(OBJDIR)/edge/p_setup.o \ 203 $(OBJDIR)/edge/p_sight.o \ 204 $(OBJDIR)/edge/p_spec.o \ 205 $(OBJDIR)/edge/p_switch.o \ 206 $(OBJDIR)/edge/p_tick.o \ 207 $(OBJDIR)/edge/p_user.o \ 208 $(OBJDIR)/edge/p_forces.o \ 209 $(OBJDIR)/edge/p_telept.o \ 210 $(OBJDIR)/edge/p_weapon.o \ 211 $(OBJDIR)/edge/rad_act.o \ 212 $(OBJDIR)/edge/rad_pars.o \ 213 $(OBJDIR)/edge/rad_trig.o \ 214 $(OBJDIR)/edge/r_draw.o \ 215 $(OBJDIR)/edge/r_shader.o \ 216 $(OBJDIR)/edge/r_render.o \ 217 $(OBJDIR)/edge/r_effects.o \ 218 $(OBJDIR)/edge/r_main.o \ 219 $(OBJDIR)/edge/r_occlude.o \ 220 $(OBJDIR)/edge/m_logo.o \ 221 $(OBJDIR)/edge/r_things.o \ 222 $(OBJDIR)/edge/r_units.o \ 223 $(OBJDIR)/edge/r_wipe.o \ 224 $(OBJDIR)/edge/r_misc.o \ 225 $(OBJDIR)/edge/r_sky.o \ 226 $(OBJDIR)/edge/r_colormap.o \ 227 $(OBJDIR)/edge/r_modes.o \ 228 $(OBJDIR)/edge/r_md2.o \ 229 $(OBJDIR)/edge/r_image.o \ 230 $(OBJDIR)/edge/r_doomtex.o \ 231 $(OBJDIR)/edge/r_texgl.o \ 232 $(OBJDIR)/edge/s_blit.o \ 233 $(OBJDIR)/edge/s_cache.o \ 234 $(OBJDIR)/edge/s_sound.o \ 235 $(OBJDIR)/edge/s_music.o \ 236 $(OBJDIR)/edge/s_ogg.o \ 237 $(OBJDIR)/edge/s_timid.o \ 238 $(OBJDIR)/edge/sv_chunk.o \ 239 $(OBJDIR)/edge/sv_glob.o \ 240 $(OBJDIR)/edge/sv_level.o \ 241 $(OBJDIR)/edge/sv_load.o \ 242 $(OBJDIR)/edge/sv_main.o \ 243 $(OBJDIR)/edge/sv_misc.o \ 244 $(OBJDIR)/edge/sv_mobj.o \ 245 $(OBJDIR)/edge/sv_play.o \ 246 $(OBJDIR)/edge/sv_save.o \ 247 $(OBJDIR)/edge/w_flat.o \ 248 $(OBJDIR)/edge/w_model.o \ 249 $(OBJDIR)/edge/w_sprite.o \ 250 $(OBJDIR)/edge/w_texture.o \ 251 $(OBJDIR)/edge/w_wad.o \ 252 $(OBJDIR)/edge/z_zone.o \ 253 $(OBJDIR)/edge/vm_coal.o \ 254 $(OBJDIR)/edge/vm_hud.o \ 255 $(OBJDIR)/edge/vm_player.o \ 256 $(OBJDIR)/edge/mac_mus.o \ 257 $(OBJDIR)/edge/mac_ui.o \ 258 $(OBJDIR)/edge/unx_net.o \ 259 $(OBJDIR)/edge/unx_system.o 260 261$(OBJDIR)/edge/%.o: src/%.cc 262 $(CXX) $(CFLAGS) -o $@ -c $< 263 264$(OBJDIR)/edge/%.o: src/%.mm 265 $(CC) $(CFLAGS) -o $@ -c $< 266 267 268# ---------- EPI --------------- 269 270EPI_OBJS= \ 271 $(OBJDIR)/epi/arrays.o \ 272 $(OBJDIR)/epi/bytearray.o \ 273 $(OBJDIR)/epi/exe_path.o \ 274 $(OBJDIR)/epi/file.o \ 275 $(OBJDIR)/epi/filesystem.o \ 276 $(OBJDIR)/epi/file_memory.o \ 277 $(OBJDIR)/epi/file_sub.o \ 278 $(OBJDIR)/epi/image_data.o \ 279 $(OBJDIR)/epi/image_hq2x.o \ 280 $(OBJDIR)/epi/image_jpeg.o \ 281 $(OBJDIR)/epi/image_png.o \ 282 $(OBJDIR)/epi/image_tga.o \ 283 $(OBJDIR)/epi/math_angle.o \ 284 $(OBJDIR)/epi/math_bbox.o \ 285 $(OBJDIR)/epi/math_color.o \ 286 $(OBJDIR)/epi/math_crc.o \ 287 $(OBJDIR)/epi/math_md5.o \ 288 $(OBJDIR)/epi/math_oddity.o \ 289 $(OBJDIR)/epi/math_matrix.o \ 290 $(OBJDIR)/epi/math_vector.o \ 291 $(OBJDIR)/epi/math_random.o \ 292 $(OBJDIR)/epi/mersenne_twist.o \ 293 $(OBJDIR)/epi/mus_2_midi.o \ 294 $(OBJDIR)/epi/path.o \ 295 $(OBJDIR)/epi/str_format.o \ 296 $(OBJDIR)/epi/sound_data.o \ 297 $(OBJDIR)/epi/sound_gather.o \ 298 $(OBJDIR)/epi/sound_wav.o \ 299 $(OBJDIR)/epi/timestamp.o \ 300 $(OBJDIR)/epi/utility.o \ 301 $(OBJDIR)/epi/epi_linux.o \ 302 $(OBJDIR)/epi/filesystem_linux.o 303 304$(OBJDIR)/epi/%.o: epi/%.cc 305 $(CXX) $(CFLAGS) -o $@ -c $< 306 307 308# ---------- glBSP --------------- 309 310GLBSP_OBJS= \ 311 $(OBJDIR)/glbsp/analyze.o \ 312 $(OBJDIR)/glbsp/blockmap.o \ 313 $(OBJDIR)/glbsp/glbsp.o \ 314 $(OBJDIR)/glbsp/level.o \ 315 $(OBJDIR)/glbsp/node.o \ 316 $(OBJDIR)/glbsp/reject.o \ 317 $(OBJDIR)/glbsp/seg.o \ 318 $(OBJDIR)/glbsp/system.o \ 319 $(OBJDIR)/glbsp/util.o \ 320 $(OBJDIR)/glbsp/wad.o 321 322$(OBJDIR)/glbsp/%.o: glbsp/src/%.c 323 $(CC) $(CFLAGS_GLBSP) -o $@ -c $< 324 325 326# ---------- Timidity --------------- 327 328TIMIDITY_OBJS= \ 329 $(OBJDIR)/timidity/common.o \ 330 $(OBJDIR)/timidity/instrum.o \ 331 $(OBJDIR)/timidity/mix.o \ 332 $(OBJDIR)/timidity/playmidi.o \ 333 $(OBJDIR)/timidity/loadmidi.o \ 334 $(OBJDIR)/timidity/resample.o \ 335 $(OBJDIR)/timidity/tables.o \ 336 $(OBJDIR)/timidity/timidity.o 337 338$(OBJDIR)/timidity/%.o: timidity/%.cc 339 $(CXX) $(CFLAGS) -o $@ -c $< 340 341 342# ---------- MAC OSX SPECIFICS --------------- 343 344MACOSX_OBJS= \ 345 $(OBJDIR)/macosx/SDLMain.o 346 347$(OBJDIR)/macosx/%.o: $(LIBDIR)/SDL/%.m 348 $(CC) $(CFLAGS) -o $@ -c $< 349 350# ---------- FINAL LINK STEP ----------- 351 352$(PROGRAM) : $(COAL_OBJS) \ 353 $(DDF_OBJS) \ 354 $(DEHEDGE_OBJS) \ 355 $(EDGE_OBJS) \ 356 $(EPI_OBJS) \ 357 $(GLBSP_OBJS) \ 358 $(TIMIDITY_OBJS) \ 359 $(MACOSX_OBJS) 360 $(CXX) -o $@ $^ $(LDFLAGS) 361 362 363#--- editor settings ------------ 364# vi:ts=8:sw=8:noexpandtab 365