slackbuilds_ponce/games/oblige-legacy4/Makefile.unixy
B. Watson eb48cf33be games/oblige-legacy4: Added (random level generator for FPS games).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
2014-08-30 14:19:24 +07:00

209 lines
5.4 KiB
Makefile

#----------------------------------------------------------------
# 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