//
// Playground Plus Makefile Template
// --------------------------------
//
// This is the makefile template for Playground Plus, should you wish to
// modify your Makefile then you should edit THIS file and then run
// "make newos" to install it.
//
// *MF_DATE*, *MF_OS*, *MF_AUTHOR*, *MF_OS_CFLAGS*, *MF_OTHER_CFLAGS* and
// *MF_LIBS* will be replaced with the appropriate values depending upon
// your operating system (which will be determined by "make newos")
//
// All lines starting with // will not be included in the final Makefile
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//
#
# PLAYGROUND PLUS MAKEFILE
# (based around the replacement makefile for PG96 by Spire)
#
# Makefile date : *MF_DATE*
# Makefile OS : *MF_OS*
# Porting by : *MF_AUTHOR*
#
# ========================================================================
#
# To disable an option, comment it out with a # like so
#
# OPTION = 1 <---- This is enabled
# #OPTION = 1 <---- This is disabled
#
#
# Options:
#
# Defining DEBUGGING will include flags for the debugging of your talker.
# It increases the size of the executable slightly and is handy when you
# want to debug a core file. If disk/memory space is at a premium you
# can always turn it off.
#
#DEBUGGING = 1
#
# Defining USE_LIBG will link in an extra static C library IF AND ONLY
# IF "DEBUGGING" is defined. This increases the size of the binary
# substantially more and provides better debug support.
#
# This is NOT recommended for running a live talker with. If you boot up
# your code using this then you will be warned both on boot-up and in
# your 'version' command.
#
USE_LIBG = 1
#
# Defining VERBOSE_MODE will cause the talker to log a large amount of
# additional information IF AND ONLY IF "DEBUGGING" is defined. This may be
# handy in cases of problem code which is difficult to debug.
#
#VERBOSE_MODE = 1
#
# Defining STRIP will run the unix "strip" command on the final executables
# which removes any unecessary symbols IF AND ONLY IF "DEBUGGING" is undefined.
#
# If your live code is going to run without any debugging symbols then
# this is recommended since it reduces the size of the binaries by at least
# 60k. It should really only be disabled if your system doesn't support
# the "strip" command.
#
STRIP = 1
#
# These are the locations of the binaries. You probably won't need or want
# to change these.
#
TALKER = talker
ANGEL = angel
IDENT = ident_server
INTERCOM = intercom
CC = gcc
BIN = ../bin
OBJECT_LOCATION = ../junk
PERMS = 700
#
# Specific flags according to your operating system
#
OS_SPECIFIC_CFLAGS = *MF_OS_CFLAGS*
OS_SPECIFIC_LIBS = *MF_LIBS*
#
# The objects that need to be linked to make the TALKER executable ONLY.
# These are automatically worked out by "make depend"
include .Makefile_objects
#
# If you start editing stuff below here you better know what you are doing!
# ==========================================================================
#
#
# Set up compilation flags
#
ifdef DEBUGGING
CFLAGS = -g3 -ggdb -Wall -Winline -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wnested-externs -Wno-cast-align
LDFLAGS = -g
ifdef USE_LIBG
LIBS = -Wl,-qmagic
CFLAGS += -DDEBUGGING -ggdb
endif
ifdef VERBOSE_MODE
CFLAGS += -DDEBUG_VERBOSE
endif
else
CFLAGS = -O3 -Wall -Winline -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wnested-externs -Wno-cast-align
LIBS =
LDFLAGS =
endif
CFLAGS += -Wno-pointer-arith $(OS_SPECIFIC_CFLAGS) -DTALKER_EXEC=\"$(TALKER)\" *MF_OTHER_CFLAGS*
LIBS += $(OS_SPECIFIC_LIBS)
#
# Defaults
#
ifneq ($(wildcard include/autoconfig.h),include/autoconfig.h)
default: config
install: config
quick: config
else
default: all
install: setup
quick: server
endif
#
# Options and actions
#
ifndef DEBUGGING
ifdef STRIP
all: $(TALKER) $(ANGEL) $(IDENT) $(INTERCOM) strip
else
all: $(TALKER) $(ANGEL) $(IDENT) $(INTERCOM)
endif
else
all: $(TALKER) $(ANGEL) $(IDENT) $(INTERCOM)
endif
server: $(TALKER)
@mv $(TALKER) $(BIN)/$(TALKER)
@chmod $(PERMS) $(BIN)/$(TALKER)
@echo "Made quick."
$(TALKER): broadcast version $(OBJECTS) Makefile
@echo "Now linking ...... talk server"
@$(CC) $(LDFLAGS) -o $(TALKER) $(OBJECTS) $(LIBS)
$(ANGEL): angel.c Makefile xstring.c
@echo "Now compiling .... guardian angel"
@$(CC) $(CFLAGS) $(DEFS) -o $(ANGEL) angel.c $(LIBS)
$(IDENT): ident_server.c include/ident.h Makefile
@echo "Now compiling .... ident server"
@$(CC) $(CFLAGS) $(DEFS) -o $(IDENT) ident_server.c $(LIBS)
$(INTERCOM): intercom.c include/intercom.h
@echo "Now compiling .... intercom server"
@$(CC) $(CFLAGS) $(DEFS) -o $(INTERCOM) intercom.c $(LIBS)
version:
@echo "#define COMPILE_TIME \"`date`\"" > include/version.h
@echo "#define UNAME \"`uname`\"" >> include/version.h
@bash configure/get_dir
broadcast:
@echo ""
@echo "Using OS specific flags : $(OS_SPECIFIC_CFLAGS)"
@echo "Using additional libs : $(LIBS) $(LDFLAGS)"
strip:
@echo "Now stripping .... $(TALKER) binary"
@strip $(TALKER)
@echo "Now stripping .... $(ANGEL) binary"
@strip $(ANGEL)
@echo "Now stripping .... $(IDENT) binary"
@strip $(IDENT)
@echo "Now stripping .... $(INTERCOM) binary"
@strip $(INTERCOM)
setup: all
@echo "Now installing ... $(TALKER) binary"
@mv $(TALKER) $(BIN)/$(TALKER)
@chmod $(PERMS) $(BIN)/$(TALKER)
@echo "Now installing ... $(ANGEL) binary"
@mv $(ANGEL) $(BIN)/$(ANGEL)
@chmod $(PERMS) $(BIN)/$(ANGEL)
@echo "Now installing ... $(IDENT) binary"
@mv $(IDENT) $(BIN)/$(IDENT)
@chmod $(PERMS) $(BIN)/$(IDENT)
@echo "Now installing ... $(INTERCOM) binary"
@mv $(INTERCOM) $(BIN)/$(INTERCOM)
@chmod $(PERMS) $(BIN)/$(INTERCOM)
@echo "Made install."
clean:
@echo "Deleting compilation output and dependencies"
@-rm -f $(TALKER) $(ANGEL) $(IDENT) $(INTERCOM) $(OBJECTS) ../junk/*
purge vclean:
@echo "Deleting old logs, scripts, reports and emergency files"
@-rm -f ../reports/* ../logs/*.log ../logs/scripts/* ../logs/scripts/.??* ../logs/emergency/* ../logs/emergency/.??*
scrub: clean purge
@echo "Deleting players, notes, defrag, rooms and binaries"
@-rm -f ../files/players/* ../files/notes/* ../files/defrag/* ../files/rooms/* ../files/items/* ../files/socials/* ../files/intercom.dbase $(BIN)/$(TALKER) $(BIN)/$(ANGEL) $(BIN)/$(IDENT) $(BIN)/$(INTERCOM)
@-rm -rf ../files/news/*
$(OBJECT_LOCATION)/%.o: include/config.h include/player.h include/autoconfig.h Makefile include/proto.h include/robot_player.h include/root.h
@printf "Now compiling .... %-15s\t%s lines \n" $*.c "`wc -l $*.c | cut -b4-8`"
@$(CC) $(CFLAGS) $(DEFS) -c $*.c -o $(OBJECT_LOCATION)/$*.o
newos:
@bash configure/setup
@bash configure/create_objects "*MF_OS_CFLAGS* *MF_OTHER_CFLAGS*"
config:
@bash configure/configure_code
depend:
@bash configure/create_objects "*MF_OS_CFLAGS* *MF_OTHER_CFLAGS*"
#
# Dependancies (automatically worked out by "make depend")
#
include .depend