diff options
Diffstat (limited to 'games/oblige-legacy4/Makefile.unixy')
-rw-r--r-- | games/oblige-legacy4/Makefile.unixy | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/games/oblige-legacy4/Makefile.unixy b/games/oblige-legacy4/Makefile.unixy new file mode 100644 index 0000000000..97486930c4 --- /dev/null +++ b/games/oblige-legacy4/Makefile.unixy @@ -0,0 +1,209 @@ +#---------------------------------------------------------------- +# OBLIGE +#---------------------------------------------------------------- +# +# GNU Makefile for Unix/Linux with system-wide install +# +# Using this makefile (make, make install) will place the +# executable, script and data files in standard Unixy places. +# The script and data files can be overridden by files in the +# $HOME/.oblige-legacy4 directory. +# +# NOTE: a system-wide FLTK library is assumed +# + +PROGRAM=oblige-legacy4 + +# prefix choices: /usr /usr/local /opt +INSTALL_PREFIX=/usr/local + +SCRIPT_DIR=$(INSTALL_PREFIX)/share/oblige-legacy4 + +CXX=g++ + +LIB_LOC=lib_linux +OBJ_DIR=obj_linux + +OPTIMISE=-O2 + +# operating system choices: UNIX WIN32 +OS=UNIX + + +#--- Internal stuff from here ----------------------------------- + +# assumes system-wide FLTK installation +FLTK_CONFIG=fltk-config +FLTK_FLAGS=$(shell $(FLTK_CONFIG) --cflags) +FLTK_LIBS=$(shell $(FLTK_CONFIG) --use-images --ldflags) + +CXXFLAGS=$(OPTIMISE) -Wall -D$(OS) -Ilua_src -Iglbsp_src $(FLTK_FLAGS) +LDFLAGS=-L/usr/X11R6/lib +LIBS=-lm -lz $(FLTK_LIBS) + +CXXFLAGS += -DFHS_INSTALL + + +#----- OBLIGE Objects ---------------------------------------------- + +OBJS= $(OBJ_DIR)/main.o \ + $(OBJ_DIR)/m_cookie.o \ + $(OBJ_DIR)/m_lua.o \ + $(OBJ_DIR)/m_spots.o \ + $(OBJ_DIR)/lib_argv.o \ + $(OBJ_DIR)/lib_file.o \ + $(OBJ_DIR)/lib_signal.o \ + $(OBJ_DIR)/lib_util.o \ + $(OBJ_DIR)/lib_grp.o \ + $(OBJ_DIR)/lib_pak.o \ + $(OBJ_DIR)/lib_wad.o \ + $(OBJ_DIR)/lib_zip.o \ + $(OBJ_DIR)/sys_assert.o \ + $(OBJ_DIR)/sys_debug.o \ + $(OBJ_DIR)/img_bolt.o \ + $(OBJ_DIR)/img_pill.o \ + $(OBJ_DIR)/img_carve.o \ + $(OBJ_DIR)/img_relief.o \ + $(OBJ_DIR)/img_font1.o \ + \ + $(OBJ_DIR)/csg_bsp.o \ + $(OBJ_DIR)/csg_clip.o \ + $(OBJ_DIR)/csg_main.o \ + $(OBJ_DIR)/csg_doom.o \ + $(OBJ_DIR)/csg_nukem.o \ + $(OBJ_DIR)/csg_quake.o \ + $(OBJ_DIR)/dm_extra.o \ + $(OBJ_DIR)/g_doom.o \ + $(OBJ_DIR)/g_nukem.o \ + $(OBJ_DIR)/g_quake.o \ + $(OBJ_DIR)/g_quake2.o \ + $(OBJ_DIR)/g_wolf.o \ + $(OBJ_DIR)/q_common.o \ + $(OBJ_DIR)/q_light.o \ + $(OBJ_DIR)/q_tjuncs.o \ + $(OBJ_DIR)/q_vis.o \ + $(OBJ_DIR)/vis_buffer.o \ + \ + $(OBJ_DIR)/twister.o \ + $(OBJ_DIR)/tx_forge.o \ + $(OBJ_DIR)/tx_skies.o \ + $(OBJ_DIR)/ui_about.o \ + $(OBJ_DIR)/ui_build.o \ + $(OBJ_DIR)/ui_chooser.o \ + $(OBJ_DIR)/ui_console.o \ + $(OBJ_DIR)/ui_dialog.o \ + $(OBJ_DIR)/ui_game.o \ + $(OBJ_DIR)/ui_hyper.o \ + $(OBJ_DIR)/ui_level.o \ + $(OBJ_DIR)/ui_map.o \ + $(OBJ_DIR)/ui_module.o \ + $(OBJ_DIR)/ui_rchoice.o \ + $(OBJ_DIR)/ui_play.o \ + $(OBJ_DIR)/ui_window.o + +$(OBJ_DIR)/%.o: gui/%.cc + $(CXX) $(CXXFLAGS) -o $@ -c $< + + +#----- LUA Objects -------------------------------------------------- + +LUA_OBJS=\ + $(OBJ_DIR)/lua/lapi.o \ + $(OBJ_DIR)/lua/lcode.o \ + $(OBJ_DIR)/lua/ldebug.o \ + $(OBJ_DIR)/lua/ldo.o \ + $(OBJ_DIR)/lua/ldump.o \ + $(OBJ_DIR)/lua/lfunc.o \ + $(OBJ_DIR)/lua/lgc.o \ + $(OBJ_DIR)/lua/llex.o \ + $(OBJ_DIR)/lua/lmem.o \ + $(OBJ_DIR)/lua/lobject.o \ + $(OBJ_DIR)/lua/lopcodes.o \ + $(OBJ_DIR)/lua/lparser.o \ + $(OBJ_DIR)/lua/lstate.o \ + $(OBJ_DIR)/lua/lstring.o \ + $(OBJ_DIR)/lua/ltable.o \ + $(OBJ_DIR)/lua/ltm.o \ + $(OBJ_DIR)/lua/lundump.o \ + $(OBJ_DIR)/lua/lvm.o \ + $(OBJ_DIR)/lua/lzio.o \ + \ + $(OBJ_DIR)/lua/lauxlib.o \ + $(OBJ_DIR)/lua/lbaselib.o \ + $(OBJ_DIR)/lua/ldblib.o \ + $(OBJ_DIR)/lua/liolib.o \ + $(OBJ_DIR)/lua/lmathlib.o \ + $(OBJ_DIR)/lua/loslib.o \ + $(OBJ_DIR)/lua/ltablib.o \ + $(OBJ_DIR)/lua/lstrlib.o \ + $(OBJ_DIR)/lua/loadlib.o \ + $(OBJ_DIR)/lua/linit.o + +LUA_CXXFLAGS=$(OPTIMISE) -Wall -DLUA_ANSI + +$(OBJ_DIR)/lua/%.o: lua_src/%.cc + $(CXX) $(LUA_CXXFLAGS) -o $@ -c $< + + +#----- glBSP Objects ------------------------------------------------ + +GLBSP_OBJS= \ + $(OBJ_DIR)/glbsp/analyze.o \ + $(OBJ_DIR)/glbsp/blockmap.o \ + $(OBJ_DIR)/glbsp/glbsp.o \ + $(OBJ_DIR)/glbsp/level.o \ + $(OBJ_DIR)/glbsp/node.o \ + $(OBJ_DIR)/glbsp/reject.o \ + $(OBJ_DIR)/glbsp/seg.o \ + $(OBJ_DIR)/glbsp/system.o \ + $(OBJ_DIR)/glbsp/util.o \ + $(OBJ_DIR)/glbsp/wad.o + +GLBSP_CXXFLAGS=$(OPTIMISE) -Wall -DINLINE_G=inline + +$(OBJ_DIR)/glbsp/%.o: glbsp_src/%.cc + $(CXX) $(GLBSP_CXXFLAGS) -o $@ -c $< + + +#----- Targets ---------------------------------------------------- + +all: $(PROGRAM) + +clean: + rm -f $(PROGRAM) $(OBJ_DIR)/*.o ERRS + rm -f $(OBJ_DIR)/lua/*.o + rm -f $(OBJ_DIR)/glbsp/*.o + +$(PROGRAM): $(OBJS) $(LUA_OBJS) $(GLBSP_OBJS) + $(CXX) $^ -o $@ $(LDFLAGS) $(LIBS) + +stripped: $(PROGRAM) + strip --strip-unneeded $(PROGRAM) + +install: stripped + install -o root -m 755 $(PROGRAM) $(INSTALL_PREFIX)/bin/ + install -d $(SCRIPT_DIR)/scripts + install -d $(SCRIPT_DIR)/data + install -d $(SCRIPT_DIR)/data/doom1_boss + install -d $(SCRIPT_DIR)/data/doom2_boss + install -d $(SCRIPT_DIR)/games + install -d $(SCRIPT_DIR)/engines + install -d $(SCRIPT_DIR)/modules + install -d $(SCRIPT_DIR)/prefabs + install -o root -m 644 scripts/*.lua $(SCRIPT_DIR)/scripts + install -o root -m 644 data/*.* $(SCRIPT_DIR)/data + install -o root -m 644 data/doom1_boss/*.* $(SCRIPT_DIR)/data/doom1_boss + install -o root -m 644 data/doom2_boss/*.* $(SCRIPT_DIR)/data/doom2_boss + install -o root -m 644 games/*.lua $(SCRIPT_DIR)/games + install -o root -m 644 engines/*.lua $(SCRIPT_DIR)/engines + install -o root -m 644 modules/*.lua $(SCRIPT_DIR)/modules + install -o root -m 644 prefabs/*.lua $(SCRIPT_DIR)/prefabs + +uninstall: + rm -v $(INSTALL_PREFIX)/bin/$(PROGRAM) + rm -Rv $(SCRIPT_DIR) + +.PHONY: all clean stripped install uninstall + +#--- editor settings ------------ +# vi:ts=8:sw=8:noexpandtab |