# CONFIG
CXXFLAGS = -I. -Iinclude -Ilib/lua51 -Ilib/libtelnet @CXXFLAGS@ -DLUA_USE_POSIX=1
LIBS = @LIBS@
VERSION = @PACKAGE_VERSION@
PACKAGE = @PACKAGE_TARNAME@-$(VERSION)
PERL = @PATH_PERL@
BUILDDIR = .build
DEPDIR = .deps
# FILES
HEADERS = \
include/common.h \
include/common/base64.h \
include/common/error.h \
include/common/fdprintf.h \
include/common/file.h \
include/common/imanager.h \
include/common/log.h \
include/common/mail.h \
include/common/md5.h \
include/common/rand.h \
include/common/streams.h \
include/common/streamtime.h \
include/common/strbuf.h \
include/common/string.h \
include/common/time.h \
include/common/types.h \
include/lua/core.h \
include/lua/exec.h \
include/lua/object.h \
include/lua/print.h \
include/mud/account.h \
include/mud/action.h \
include/mud/body.h \
include/mud/caffect.h \
include/mud/clock.h \
include/mud/color.h \
include/mud/command.h \
include/mud/creation.h \
include/mud/creature.h \
include/mud/efactory.h \
include/mud/elist.h \
include/mud/entity.h \
include/mud/event.h \
include/mud/fileobj.h \
include/mud/filetab.h \
include/mud/form.h \
include/mud/gametime.h \
include/mud/help.h \
include/mud/hooks.h \
include/mud/idmap.h \
include/mud/login.h \
include/mud/macro.h \
include/mud/message.h \
include/mud/name.h \
include/mud/npc.h \
include/mud/object.h \
include/mud/olc.h \
include/mud/pconn.h \
include/mud/player.h \
include/mud/portal.h \
include/mud/race.h \
include/mud/room.h \
include/mud/server.h \
include/mud/settings.h \
include/mud/skill.h \
include/mud/tag.h \
include/mud/timer.h \
include/mud/weather.h \
include/mud/zone.h \
include/net/http.h \
include/net/iplist.h \
include/net/manager.h \
include/net/netaddr.h \
include/net/socket.h \
include/net/telnet.h \
include/net/util.h \
include/net/zmp.h
SOURCES = \
src/common/base64.cc \
src/common/error.cc \
src/common/fdprintf.cc \
src/common/file.cc \
src/common/imanager.cc \
src/common/log.cc \
src/common/md5.cc \
src/common/rand.cc \
src/common/strbuf.cc \
src/common/strings.cc \
src/common/time.cc \
src/generated/commands.cc \
src/lua/core.cc \
src/lua/entlib.cc \
src/lua/exec.cc \
src/lua/misclib.cc \
src/lua/mudlib.cc \
src/lua/object.cc \
src/lua/print.cc \
src/mud/account.cc \
src/mud/action.cc \
src/mud/body.cc \
src/mud/caffect.cc \
src/mud/calendar.cc \
src/mud/char_do.cc \
src/mud/combat.cc \
src/mud/command.cc \
src/mud/creation.cc \
src/mud/creature.cc \
src/mud/efactory.cc \
src/mud/entity.cc \
src/mud/event.cc \
src/mud/fileobj.cc \
src/mud/filetab.cc \
src/mud/form.cc \
src/mud/help.cc \
src/mud/hooks.cc \
src/mud/idmap.cc \
src/mud/login.cc \
src/mud/macro.cc \
src/mud/mail.cc \
src/mud/main.cc \
src/mud/menu.cc \
src/mud/message.cc \
src/mud/name.cc \
src/mud/npc.cc \
src/mud/npcbp.cc \
src/mud/object.cc \
src/mud/objectbp.cc \
src/mud/olc.cc \
src/mud/player.cc \
src/mud/pmanager.cc \
src/mud/portal.cc \
src/mud/race.cc \
src/mud/room.cc \
src/mud/settings.cc \
src/mud/skill.cc \
src/mud/time.cc \
src/mud/weather.cc \
src/mud/zone.cc \
src/net/http.cc \
src/net/iplist.cc \
src/net/manager.cc \
src/net/netaddr.cc \
src/net/socket.cc \
src/net/telnet.cc \
src/net/util.cc \
src/net/zmp.cc \
$(wildcard src/cmd/*.cc)
TOOLS = \
tools/parse-commands.pl \
tools/replace.sh.in
LUA_HEADERS = \
lib/lua51/lapi.h \
lib/lua51/lauxlib.h \
lib/lua51/lcode.h \
lib/lua51/ldebug.h \
lib/lua51/ldo.h \
lib/lua51/lfunc.h \
lib/lua51/lgc.h \
lib/lua51/llex.h \
lib/lua51/llimits.h \
lib/lua51/lmem.h \
lib/lua51/lobject.h \
lib/lua51/lopcodes.h \
lib/lua51/lparser.h \
lib/lua51/lstate.h \
lib/lua51/lstring.h \
lib/lua51/ltable.h \
lib/lua51/ltm.h \
lib/lua51/luaconf.h \
lib/lua51/lua.h \
lib/lua51/lualib.h \
lib/lua51/lundump.h \
lib/lua51/lvm.h \
lib/lua51/lzio.h
LUA_SOURCES = \
lib/lua51/lapi.cc \
lib/lua51/lauxlib.cc \
lib/lua51/lbaselib.cc \
lib/lua51/lcode.cc \
lib/lua51/ldblib.cc \
lib/lua51/ldebug.cc \
lib/lua51/ldo.cc \
lib/lua51/ldump.cc \
lib/lua51/lfunc.cc \
lib/lua51/lgc.cc \
lib/lua51/linit.cc \
lib/lua51/liolib.cc \
lib/lua51/llex.cc \
lib/lua51/lmathlib.cc \
lib/lua51/lmem.cc \
lib/lua51/loadlib.cc \
lib/lua51/lobject.cc \
lib/lua51/lopcodes.cc \
lib/lua51/loslib.cc \
lib/lua51/lparser.cc \
lib/lua51/lstate.cc \
lib/lua51/lstring.cc \
lib/lua51/lstrlib.cc \
lib/lua51/ltable.cc \
lib/lua51/ltablib.cc \
lib/lua51/ltm.cc \
lib/lua51/lundump.cc \
lib/lua51/lvm.cc \
lib/lua51/lzio.cc \
lib/lua51/print.cc
LIBTELNET_HEADERS = lib/libtelnet/libtelnet.h
LIBTELNET_SOURCES = lib/libtelnet/libtelnet.c
SCRIPTS = \
scripts/init.lua \
scripts/http.lua \
scripts/httplib.lua
DATA = \
data/admin.acct \
data/admin.ply \
data/zones/saladhin.zone \
data/zones/underworld.zone \
data/zones/catacombs.zone \
data/zones/darkwood.zone \
data/zones/example.zone.old \
data/time \
data/badnames \
data/calendar \
data/messages \
data/races \
data/blueprints/armor.objs \
data/blueprints/gems.objs \
data/blueprints/misc.objs \
data/blueprints/weapons.objs \
data/blueprints/animals.npcs \
data/blueprints/undead.npcs \
data/skills \
data/traits \
data/weather \
data/html/tpl/header.tpl \
data/html/tpl/footer.tpl \
data/html/tpl/index.tpl \
data/html/account.tpl \
data/html/stats.tpl \
data/html/stats.html \
data/help/commands.help \
data/help/olc.help \
data/help/sourcemud.help
BINARIES = sourcemud-bin
BUILD = Makefile configure
DIST = configure configure.ac Makefile.in sourcemud.in include/config.h.in
HTTPKEY = data/session.key
OBJECTS = $(SOURCES:%.cc=$(BUILDDIR)/%.o) $(LUA_SOURCES:%.cc=$(BUILDDIR)/%.o) \
$(LIBTELNET_SOURCES:%.c=$(BUILDDIR)/%.o)
GENERATED = src/generated/commands.cc @PCH_COMMON@
# CORE BUILD
all: $(BUILD) $(TOOLS) $(XML) $(HEADERS) $(LUA_HEADERS) $(LIBTELNET_HEADERS) \
$(GENERATED) $(SOURCES) $(LUA_SOURCES) $(OBJECTS) $(BINARIES) \
$(HTTPKEY) $(SCRIPTS) $(DATA)
.build/stamp:
@[ -d $(DEPDIR) ] || mkdir $(DEPDIR)
@for dir in $(addprefix $(BUILDDIR)/, $(sort $(dir $(SOURCES) $(LUA_SOURCES) $(LIBTELNET_SOURCES)))); do [ -d "$$dir" ] || mkdir -p "$$dir"; done
@touch .build/stamp
clean:
@echo Cleaning
@rm -fr $(BINARIES) $(OBJECTS) $(DEPDIR) $(BUILDDIR) \
src/generated/commands.cc include/common.h.gch
$(BUILDDIR)/%.o: %.cc @PCH_COMMON@ .build/stamp
@echo Compiling $<
@$(CXX) -c -o $@ $(CXXFLAGS) $<
@depfile=$(DEPDIR)/$(shell echo "$@" | \
sed -e 's/\//_/g' -e 's/^\.build_//' -e 's/[.]o$$/.P/'); \
$(CXX) -MM -MT $@ -o "$$depfile" $(CXXFLAGS) $<; \
cp -f "$$depfile" "$$depfile.tmp"; \
sed -e 's/#.*//' -e 's/^[^:]*://' -e 's/^ *//' -e 's/ *\\$$//' \
-e '/^$$/ d' -e 's/$$/ :/' \
< "$$depfile.tmp" >> "$$depfile"; \
rm -f "$$depfile.tmp"
$(BUILDDIR)/lib/libtelnet/libtelnet.o: lib/libtelnet/libtelnet.c lib/libtelnet/libtelnet.h .build/stamp
@echo Compiling $<
@$(CXX) -c -o $@ $(CXXFLAGS) @LIBTELNET_HAVE_ZLIB@ $<
# DEPENDENCIES
-include $(DEPDIR)/*.P
# BINARIES
sourcemud-bin: $(OBJECTS)
@echo Linking $@
@$(CXX) -o $@ $^ $(LFLAGS) $(LIBS)
# HTTP SESSION KEY GENERATION
data/session.key:
@echo "Generating HTTP secret session key (this may take a few moments)"
@head -c 512 /dev/urandom | base64 -w0 > $@
# GENERATED SOURCE
src/generated/commands.cc: tools/parse-commands.pl $(wildcard src/cmd/*.cc)
@[ -d src/generated ] || mkdir src/generated
@echo Generating $@
@[ -d src/generated ] || mkdir src/generated
@$(PERL) tools/parse-commands.pl
include/common.h.gch: include/common.h
@echo Pre-compiling $<
@$(CXX) -o $@ $(CXXFLAGS) $<
# BUILD FILES
Makefile: Makefile.in configure
@echo Recreating Makefile
@./config.status
configure: configure.ac
@echo Recreating ./configure
@autoconf && ./config.status --recheck
# DISTRIBUTION
dist: all make-dist
make-dist: configure $(DIST) $(TOOLS) $(XML) $(HEADERS) $(SOURCES) \
$(SCRIPTS) $(DATA)
@echo Building distribution tarball $(PACKAGE).tar.gz
@[ ! -d $(PACKAGE) ] || rm -fr $(PACKAGE)
@mkdir $(PACKAGE)
@for file in $^ ; do install -D $$file $(PACKAGE)/$$file; done
@tar -zcf $(PACKAGE).tar.gz $(PACKAGE)
@rm -fr $(PACKAGE)
.PHONY: all clean dist make-dist