1# Makefile for Linux Heretic/GLHeretic 2 3# Comment the line below if you don't want to build GLHeretic. 4#WANT_OGL = yes 5 6# Comment this if you don't want to build GLHeretic 7# with highest quality options. 8# (Only if you have WANT_OGL !) 9#WANT_NICE_OGL = yes 10 11 12# Uncomment the line below if you want to use GSI for sound. 13# (doesn't really work yet. :-() 14#WANT_GSI = yes 15 16#CC = gcc -pipe 17 18# 19# For old SVGALIB, comment out -D__NEWVGALIB__ 20# 21CDEFS.ipx = -DUNIX -DHAVE_USLEEP -DHAVE_MATH_H -DHAVE_VALUES_H -DLINUX_MOUSE \ 22 -DIPX_PROTOCOL -DI_GGI_HERETIC -DNEED_SHMGETEVENTBASE \ 23 -D__NEWVGALIB__ # -DIPX_DEBUG -DEXTRA_WADS 24CDEFS.udp = -DUNIX -DHAVE_USLEEP -DHAVE_MATH_H -DLINUX_MOUSE \ 25 -DUDP_PROTOCOL -DI_GGI_HERETIC -DNEED_SHMGETEVENTBASE \ 26 -D__NEWVGALIB__ # -DEXTRA_WADS 27 28CDEFS.solaris = -DUNIX -DHAVE_USLEEP -DHAVE_MATH_H -DHAVE_VALUES_H \ 29 -DUDP_PROTOCOL -DNEED_SHMGETEVENTBASE -DSOLARIS 30 31# Plattform specific definitions 32# _begin_ 33COPT.x86 = -O2 -fomit-frame-pointer -mcpu=i586 -march=i586 -D__32BIT__ \ 34 -DHAVE_ALLOCA_H -DINLINE_FIXED 35 36COPT.m68k = -m68020-60 -O2 -fomit-frame-pointer -D__BIG_ENDIAN__ -D__32BIT__ \ 37 -DHAVE_ALLOCA_H 38 39COPT.alpha = -O2 -D__64BIT__ -DHAVE_ALLOCA_H 40 41COPT.FreeBSD = -D__32BIT__ -DHOMEDIR='"\"${PREFIX}/share/heretic\""' 42 43COPT.arm = -O2 -D__32BIT__ -fsigned-char -fomit-frame-pointer \ 44 -DHAVE_ALLOCA_H -D__PACKED__=__attribute__\ \(\(packed\)\) 45 46COPT.sparc = -O2 -D__BIG_ENDIAN__ -D__32BIT__ -mcpu=v8 \ 47 -DHAVE_ALLOCA_H -D__PACKED__=__attribute__\ \(\(packed\)\) 48# _end_ 49 50ifeq ($(WANT_OGL),yes) 51COPT.opengl = -Iopengl -DGL_HERETIC -I/usr/X11R6/include 52 53ifeq ($(WANT_NICE_OGL),yes) 54COPT.opengl += -DNICE_GL 55endif 56 57endif 58 59# Change this to change the platform 60COPT.arch = $(COPT.FreeBSD) 61 62# If you want IPX-netcode compiled, replace $(CDEFS.udp) with $(CDEFS.ipx) 63 64CFLAGS += $(CDEFS.udp) $(COPT.arch) \ 65 -I. -I.. -I${LOCALBASE}/include -I${LOCALBASE}/include $(COPT.sound) $(COPT.opengl) 66 67# Uncomment the line below if you want to use original "[" and "]" keys 68# for inventory access, instead of "k" and "l". 69#CFLAGS += -DORIG_INVKEYS 70 71ifeq ($(WANT_GSI),yes) 72SOUND_OBJS = gsisound/i_sound.o gsisound/soundst.o gsisound/sounds.o \ 73 gsisound/gsi.o m_misc.o 74SOUND_REFS = gsisound/i_sound.c gsisound/soundst.c gsisound/sounds.c \ 75 gsisound/gsi.c m_misc.c 76 77COPT.sound = -D__DOSOUND__ -D__DOMUSIC__ -DUSE_GSI -Igsisound 78X11LIBS = -Xext -lX11 -lm 79else 80SOUND_OBJS = soundclient/i_sound.o soundclient/soundst.o soundclient/sounds.o \ 81 m_misc.o 82SOUND_REFS = soundclient/i_sound.c soundclient/soundst.c soundclient/sounds.c \ 83 m_misc.c 84 85COPT.sound = -D__DOSOUND__ -DSNDSERV -Isoundclient -D__DOMUSIC__ -DMUSSERV # -D_DEBUGSOUND 86X11LIBS = -lXext -lX11 87 88#MUSSERV = musserver 89SNDSERV = sndserver 90 91endif 92 93X_LDFLAGS = -L${LOCALBASE}/lib 94 95X11LIBS = -lXext -lX11 96GLLIBS = `${SDL_CONFIG} --libs` -lpthread 97GGILIBS = -lggi -lm 98VGALIBS = -lvga 99SDLLIBS = `${SDL_CONFIG} --libs` -lpthread 100 101OBJS = am_map.o ct_chat.o d_main.o d_net.o f_finale.o g_game.o \ 102 p_ceilng.o p_doors.o p_enemy.o p_floor.o p_inter.o p_lights.o \ 103 p_map.o p_maputl.o p_mobj.o p_plats.o p_pspr.o p_setup.o p_sight.o \ 104 p_spec.o p_switch.o p_telept.o p_tick.o p_user.o r_bsp.o r_data.o \ 105 r_draw.o r_plane.o r_segs.o r_things.o r_main.o mn_menu.o sb_bar.o \ 106 tables.o v_video.o w_wad.o z_zone.o in_lude.o \ 107 info.o i_net.o i_system.o i_udp.o i_main.o $(SOUND_OBJS) 108 109GLOBJS = opengl/gl_effects.o opengl/gl_floorceil.o opengl/gl_fonts.o \ 110 opengl/gl_func.o opengl/gl_init.o opengl/gl_lights.o \ 111 opengl/gl_sprites.o opengl/gl_texture.o opengl/gl_walls.o \ 112 opengl/gl_weapon.o opengl/loadlum.o opengl/gl_mem.o 113 114all: 115 @echo "Choose one of following actions:" 116 @echo 117ifeq ($(WANT_OGL),yes) 118 @echo " make glheretic - will build GLHeretic - needs OpenGL hardware accelleration" 119 @echo 120else 121 @echo " make x11 - will build xheretic - runs under X11" 122 @echo 123 @echo " make fastx11 - will build xaheretic (fast X-version) - runs under X11" 124 @echo 125 @echo " make ggi - will build ggiheretic - runs under GGI" 126 @echo 127 @echo " make vga - will build vgaheretic - runs under SVGAlib" 128 @echo 129 @echo " make sdl - will build sdlheretic - runs under SDL-lib" 130 @echo 131endif 132 @echo " make sndserver - will build the soundserver for Heretic" 133 @echo 134 @echo " make musserver - will build the musicserver (from lxdoom) for Heretic" 135 @echo 136 @echo " make clean - will clean up object and exec files" 137 @echo 138 139clean: 140 rm -f $(OBJS) $(GLOBJS) xheretic xaheretic glheretic \ 141 ggiheretic vgaheretic sdlheretic graphics/i_sdl_gl.o \ 142 graphics/i_x11.o graphics/i_x11_fast.o \ 143 graphics/i_ggi.o graphics/i_vga.o graphics/i_sdl.o 144 (cd sndserv; $(MAKE) clean; cd ..) || exit 1 145 (cd musserv; $(MAKE) clean; cd ..) || exit 1 146 (cd opengl/sgi-si/libtess; $(MAKE) clean; cd ../../../) || exit 1 147 148distclean: 149 rm -f $(OBJS) $(GLOBJS) xheretic xaheretic ggiheretic vgaheretic \ 150 sdlheretic glheretic graphics/i_x11.o graphics/i_x11_fast.o \ 151 graphics/i_sdl.o graphics/i_sdl_gl.o graphics/*.orig \ 152 graphics/i_ggi.o graphics/i_vga.o graphics/*~ graphics/*.rej \ 153 .depend soundclient/*~ gsisound/*~ sndserv/*~ opengl/*~ *~ \ 154 *.rej *.orig doc/*~ doc/*.rej doc/*.orig 155 (cd sndserv; $(MAKE) clean; cd ..) || exit 1 156 (cd musserv; $(MAKE) clean; cd ..) || exit 1 157 (cd opengl/sgi-si/libtess; $(MAKE) clean; cd ../../../) || exit 1 158 159depx11: 160 $(CC) -E -M $(CFLAGS) $(X_LDFLAGS) *.c $(SOUND_REFS) \ 161 graphics/i_x11.c > .depend 162 163depx11f: 164 $(CC) -E -M $(CFLAGS) $(X_LDFLAGS) *.c $(SOUND_REFS) \ 165 graphics/i_x11.c > .depend 166 167depsdlogl: 168 $(CC) -E -M $(CFLAGS) $(X_LDFLAGS) *.c opengl/*.c \ 169 $(SOUND_REFS) graphics/i_sdl_gl.c > .depend 170 171depggi: 172 $(CC) -E -M $(CFLAGS) $(X_LDFLAGS) *.c $(SOUND_REFS) \ 173 graphics/i_ggi.c > .depend 174 175depvga: 176 $(CC) -E -M $(CFLAGS) $(X_LDFLAGS) *.c $(SOUND_REFS) \ 177 graphics/i_vga.c > .depend 178 179depsdl: 180 $(CC) -E -M $(CFLAGS) $(X_LDFLAGS) *.c $(SOUND_REFS) \ 181 graphics/i_sdl.c > .depend 182 183x11: depx11 $(OBJS) graphics/i_x11.o $(MUSSERV) $(SNDSERV) 184 $(CC) $(CFLAGS) $(X_LDFLAGS) $(X11LIBS) $(OBJS) \ 185 graphics/i_x11.o -o xheretic 186 187fastx11:depx11f $(OBJS) graphics/i_x11_fast.o $(MUSSERV) $(SNDSERV) 188 $(CC) $(CFLAGS) $(X_LDFLAGS) $(X11LIBS) $(OBJS) \ 189 graphics/i_x11_fast.o -o xaheretic 190 191 192glheretic:depsdlogl $(OBJS) $(GLOBJS) graphics/i_sdl_gl.o \ 193 $(MUSSERV) $(SNDSERV) sgi-libtess 194ifeq ($(WANT_OGL_FULLSCREEN),yes) 195 $(CC) $(CFLAGS) $(X_LDFLAGS) $(X11LIBS) $(GLLIBS) \ 196 $(OBJS) $(GLOBJS) /usr/X11R6/lib/libXxf86vm.a \ 197 opengl/sgi-si/libtess/libtess.a graphics/i_sdl_gl.o -o $@ 198else 199 $(CC) $(CFLAGS) $(X_LDFLAGS) $(X11LIBS) $(GLLIBS) \ 200 $(OBJS) $(GLOBJS) opengl/sgi-si/libtess/libtess.a graphics/i_sdl_gl.o -o $@ 201endif 202 203 204ggi: depggi $(OBJS) graphics/i_ggi.o $(MUSSERV) $(SNDSERV) 205 $(CC) $(CFLAGS) $(GGILIBS) $(OBJS) \ 206 graphics/i_ggi.o -o ggiheretic 207 208vga: depvga $(OBJS) graphics/i_vga.o $(MUSSERV) $(SNDSERV) 209 $(CC) $(CFLAGS) $(VGALIBS) $(OBJS) \ 210 graphics/i_vga.o -o vgaheretic 211 212sdl: depsdl $(OBJS) graphics/i_sdl.o $(MUSSERV) $(SNDSERV) 213 $(CC) $(CFLAGS) $(X_LDFLAGS) $(SDLLIBS) $(OBJS) \ 214 graphics/i_sdl.o -o sdlheretic 215 216sndserver: 217 $(MAKE) -C sndserv COPT.arch="$(COPT.arch)" $@ 218 219musserver: 220 $(MAKE) -C musserv COPT.arch="$(COPT.arch)" $@ 221 222sgi-libtess: 223 $(MAKE) -C opengl/sgi-si/libtess $@ 224 225%.o: %.c 226 $(CC) $(CFLAGS) -c $< -o $@ 227 228 229ifeq (.depend,$(wildcard .depend)) 230include .depend 231endif 232