###############################################################################
#  CHANGE THE CONFIG LINE TO THE .mk FILE OF YOUR SYSTEM
###############################################################################

CONFIG=./config/uts21.mk

# Defines
#    Some possible values:
# NOTE: Only NON-system specific defines belong here
#
#       -DRSA - New RSA reserved packets stuff
#       -DNBT - Nick trown's macro code
#       -DMAXPLAYER=36
#       -DDEBUG    Various useful debugging stuff.  No signal trapping
#       -DCORRUPTED_PACKETS - prevents some seg faults but verbose output
#       -DSHORT_PACKETS - implement short_packets
#       -DEXPIRE=#      - number of days this version will work for
#       -DARMY_SLIDER   - some sort of funky status window thing
#       -DMETA          - show active servers via metaserver - NBT
#       -DPACKET_LOG    - log packets to stdout (for bandwith measurement)
#       -DNEWMACRO - newmacro language
#       -DSMARTMACRO - macro extension (needs NEWMACRO)
#       -DXTREKRC_HELP - Hadley's xtrekrc window (stolden by KP)
#       -DROTATERACE - Roate Race from BRMH (stolen by DRG)

# (removed -DEXPIRE=365 and -DMETA)

CL_DEFINES = -DRSA -DNBT -DXTREKRC_HELP\
	-DNEWMACRO -DSMARTMACRO\
	-DARMY_SLIDER -DVSHIELD_BITMAPS\
	-DSHORT_PACKETS -DCORRUPTED_PACKETS -DPACKET_LOG\
	-DPLIST1 -DPLIST -DVARY_HULL -DCONTROL_KEY -DROTATERACE \
	-DGATEWAY -DTREKHOPD


###############################################################################
#  No editables below this point.
###############################################################################

include $(CONFIG)

ROBJ 		= check.o colors.o data.o death.o defaults.o dmessage.o\
                  enter.o findslot.o getname.o getship.o helpwin.o inform.o\
                  interface.o newwin.o option.o planetlist.o macrowin.o\
	          planets.o playerlist.o ranklist.o reserved.o sintab.o\
	          smessage.o socket.o stats.o util.o war.o warning.o\
	          udpopt.o ping.o pingstats.o rotate.o lagmeter.o parsemeta.o\
	          netstat.o netstatopt.o spopt.o dashboard.o \
		  short.o distress.o senddist.o defwin.o

RSRC 		= check.c colors.c data.c death.c defaults.c dmessage.c\
	          enter.c findslot.c getname.c getship.c helpwin.c inform.c\
	          input.c interface.c newwin.c option.c planetlist.c\
                  macrowin.c planets.c playerlist.c ranklist.c redraw.c\
                  smessage.c parsemeta.c socket.c stats.c util.c war.c\
                  warning.c udpopt.c sintab.c ping.c pingstats.c rotate.c\
                  lagmeter.c netstat.c netstatopt.c spopt.c dashboard.c \
		  short.c distress.c senddist.c defwin.c


INCLUDES 	= struct.h packets.h defs.h copyright.h bitmaps.h data.h\
	          oldbitmaps.h tngbitmaps.h hullbitmaps.h

RSASRC	 	= rsa-client.c rsa_clientutil.c alloca.c
RSAOBJ  	= rsa-client.o rsa_clientutil.o alloca.o

INPUTOBJ 	= input.o redraw.o
MAINOBJ 	= main.o
MAINSRC 	= main.c

X11OBJ	 	= x11window.o

INCDIRS		= $(MPINC) $(X11INC) $(OINC)
LIBDIRS		= $(MPLIB) $(X11LIB) $(OLIB)
LIBRARIES	= $(LX) $(LMP) $(LO)

CFLAGS = $(OPT) $(CL_DEFINES) $(DEFINES) $(INCDIRS)
LFLAGS = $(LIBDIRS) $(LOPTS)

all : netrek 

netrek: $(PMAKE) $(ROBJ) $(MAINOBJ) $(RSAOBJ) $(INPUTOBJ) $(X11OBJ) $(RANDOMOBJ)\
	cflags.h randomize
	$(CC) $(LFLAGS) -o netrek `./randomize $(ROBJ) $(RSAOBJ) $(INPUTOBJ)\
        $(MAINOBJ) $(X11OBJ) $(RANDOMOBJ)` $(LIBRARIES)

rsa-client.c: mkkey $(KEYFILE)
	./mkkey -k $(KEYFILE)

convert: mkkey $(KEYFILE) $(KEYSH)
	./mkkey -h $(KEYSH) key.brm.$(KEYNAME) "BerkRick Moo" \
	$(DESC) $(MAKER) $(COMMENT)

newkey: mkkey
	./mkkey key.brm.$(KEYNAME) "BerkRick Moo" $(DESC) $(MAKER) \
	$(COMMENT)

mkkey: mkkey.c $(RANDOMOBJ) defs.h alloca.o
	$(CC) $(MPINC) $(MPLIB) $(NORDEFINE) alloca.o $(OPT) -o mkkey mkkey.c $(RANDOMOBJ) $(LMP) -lbsd

randomize: randomize.c $(RANDOMOBJ) defs.h
	$(CC) $(NORDEFINE) $(OPT) -o randomize randomize.c $(RANDOMOBJ) -lbsd

random.o: random.c
	$(CC) -c -O random.c

cflags.h: Makefile mkcflags
	./mkcflags "$(CC) $(CFLAGS)" "$(ARCH)"  > cflags.h
	echo static char cwho[]=$(CWHO)\; >> cflags.h

mkcflags: mkcflags.c Makefile patchlevel.h version.h
	$(CC) $(DEFINES) -o mkcflags mkcflags.c $(OLIB) $(LO)

clean:
	rm -f *.o make.out core cflags.h

reallyclean: clean
	rm -f netrek randomize mkkey rsa-client.c name mkcflags brm.$(ARCH).secret

tags: $(RSRC) $(RSASRC)
	ctags $(RSRC) $(RSASRC) $(INCLUDES)

dist: name
	tar cvf - `cat manifest` | gzip > ../BRM.`name`.tar.gz

distdoc: name
	tar cvf - TODO BRM.DOC NEWMACRO.DOC CHANGES SHORT_PACKETS.DOC | gzip > ../BRM.`name`.doc.gz

distbin: name netrek
	-strip netrek
	-rm -f BRM.`name`.$(ARCH)
	cp netrek BRM.`name`.$(ARCH)
	-rm -f BRM.`name`.$(ARCH).gz
	gzip BRM.`name`.$(ARCH)

name: name.c version.h patchlevel.h
	$(CC) $(CFLAGS) -o name name.c

# make patches file from old directory
patches: name
	cd $(PATCHDIR); make name
	@echo Making BRM.`./name`\-`$(PATCHDIR)/name`.diffs
	-rm ../BRM.`./name`\-`$(PATCHDIR)/name`.diffs
	-for f in `cat manifest` ; do \
	if [ ! -f $(PATCHDIR)/$${f} ] ; then touch $(PATCHDIR)/$${f} ; fi ; \
	diff -w -r -c $(PATCHDIR)/$${f} $${f} >> ../BRM.`./name`\-`$(PATCHDIR)/name`.diffs ; \
	done

# make patches file from specified tar file (slower than above)
tarpatches: name
	@echo Making BRM.`name`\-$(OLD).diffs
	-rm ../BRM.`name`\-$(OLD).diffs
	-for f in `cat manifest` ; do \
	echo tar -xOzf $(TF) $${f} \| diff -c - $${f} ;\
	tar -xOzf $(TF) $${f} | diff -c - $${f} >> ../BRM.`name`\-$(OLD).diffs ; \
	done

depend: cflags.h rsa-client.c
	makedepend $(DEFINES) $(RSRC) $(RSASRC) $(MAINSRC) \
	x11window.c name.c $(INCDIRS)

# DO NOT DELETE THIS LINE -- make depend depends on it.

check.o: copyright2.h /usr/include/stdio.h /usr/include/string.h
check.o: /usr/include/sys/types.h /usr/include/sys/socket.h
check.o: /usr/include/sys/uio.h /usr/include/sys/filio.h
check.o: /usr/include/sys/ioccom.h /usr/include/sys/sockio.h
check.o: /usr/include/sys/time.h /usr/include/netdb.h /usr/include/errno.h
check.o: /usr/include/sys/errno.h /usr/include/netinet/in.h
check.o: /usr/include/sys/netinet/in.h /usr/include/arpa/inet.h defs.h
check.o: copyright.h struct.h Wlib.h data.h
colors.o: copyright2.h /usr/include/stdio.h /usr/include/string.h Wlib.h
colors.o: defs.h copyright.h struct.h data.h
data.o: copyright.h /usr/include/stdio.h Wlib.h copyright2.h defs.h struct.h
data.o: data.h
death.o: copyright.h /usr/include/stdio.h /usr/include/signal.h
death.o: /usr/include/sys/signal.h /usr/include/sys/psw.h
death.o: /usr/include/setjmp.h /usr/include/sys/types.h
death.o: /usr/include/sys/time.h Wlib.h copyright2.h defs.h struct.h data.h
defaults.o: copyright2.h /usr/include/stdio.h Wlib.h defs.h copyright.h
defaults.o: struct.h data.h /usr/include/sys/file.h
dmessage.o: copyright.h /usr/include/stdio.h /usr/include/math.h Wlib.h
dmessage.o: copyright2.h defs.h struct.h data.h /usr/include/sys/time.h
dmessage.o: version.h patchlevel.h cflags.h
enter.o: copyright.h /usr/include/stdio.h /usr/include/sys/types.h
enter.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/pwd.h
enter.o: /usr/include/string.h /usr/include/ctype.h Wlib.h copyright2.h
enter.o: defs.h struct.h data.h
findslot.o: copyright2.h /usr/include/stdio.h /usr/include/sys/types.h
findslot.o: /usr/include/errno.h /usr/include/sys/errno.h /usr/include/pwd.h
findslot.o: /usr/include/string.h /usr/include/ctype.h Wlib.h defs.h
findslot.o: copyright.h struct.h data.h
getname.o: copyright2.h /usr/include/stdio.h /usr/include/sys/types.h
getname.o: /usr/include/sys/stat.h /usr/include/sys/file.h
getname.o: /usr/include/sys/time.h /usr/include/errno.h
getname.o: /usr/include/sys/errno.h /usr/include/pwd.h /usr/include/string.h
getname.o: /usr/include/ctype.h Wlib.h defs.h copyright.h struct.h data.h
getname.o: Kathy.xbm
getship.o: copyright.h /usr/include/stdio.h /usr/include/sys/types.h Wlib.h
getship.o: copyright2.h defs.h struct.h data.h
helpwin.o: /usr/include/stdio.h /usr/include/math.h /usr/include/signal.h
helpwin.o: /usr/include/sys/signal.h /usr/include/sys/psw.h
helpwin.o: /usr/include/sys/types.h /usr/include/sys/time.h Wlib.h
helpwin.o: copyright2.h defs.h copyright.h struct.h data.h
helpwin.o: /usr/include/string.h
inform.o: copyright.h /usr/include/stdio.h /usr/include/math.h
inform.o: /usr/include/signal.h /usr/include/sys/signal.h
inform.o: /usr/include/sys/psw.h Wlib.h copyright2.h defs.h struct.h data.h
input.o: copyright.h /usr/include/stdio.h /usr/include/math.h
input.o: /usr/include/sys/types.h /usr/include/sys/time.h
input.o: /usr/include/signal.h /usr/include/sys/signal.h
input.o: /usr/include/sys/psw.h /usr/include/errno.h /usr/include/sys/errno.h
input.o: Wlib.h copyright2.h defs.h struct.h data.h packets.h
interface.o: copyright.h /usr/include/stdio.h /usr/include/math.h
interface.o: /usr/include/sys/types.h /usr/include/sys/time.h
interface.o: /usr/include/sys/timeb.h /usr/include/signal.h
interface.o: /usr/include/sys/signal.h /usr/include/sys/psw.h Wlib.h
interface.o: copyright2.h defs.h struct.h data.h packets.h
newwin.o: copyright.h /usr/include/stdio.h /usr/include/math.h
newwin.o: /usr/include/signal.h /usr/include/sys/signal.h
newwin.o: /usr/include/sys/psw.h /usr/include/sys/types.h
newwin.o: /usr/include/sys/time.h Wlib.h copyright2.h defs.h struct.h data.h
newwin.o: bitmaps.h moobitmaps.h cflags.h tngbitmaps.h oldbitmaps.h packets.h
option.o: copyright.h /usr/include/stdio.h /usr/include/ctype.h Wlib.h
option.o: copyright2.h defs.h struct.h data.h packets.h
planetlist.o: copyright.h /usr/include/stdio.h Wlib.h copyright2.h defs.h
planetlist.o: struct.h data.h
macrowin.o: /usr/include/stdio.h /usr/include/math.h /usr/include/signal.h
macrowin.o: /usr/include/sys/signal.h /usr/include/sys/psw.h
macrowin.o: /usr/include/sys/types.h /usr/include/sys/time.h Wlib.h
macrowin.o: copyright2.h defs.h copyright.h struct.h data.h
macrowin.o: /usr/include/string.h
planets.o: copyright2.h /usr/include/stdio.h /usr/include/math.h Wlib.h
planets.o: defs.h copyright.h struct.h data.h
playerlist.o: copyright.h /usr/include/stdio.h Wlib.h copyright2.h defs.h
playerlist.o: struct.h data.h
ranklist.o: copyright2.h /usr/include/stdio.h Wlib.h defs.h copyright.h
ranklist.o: struct.h data.h
redraw.o: copyright.h /usr/include/stdio.h /usr/include/signal.h
redraw.o: /usr/include/sys/signal.h /usr/include/sys/psw.h
redraw.o: /usr/include/math.h /usr/include/time.h Wlib.h copyright2.h defs.h
redraw.o: struct.h data.h packets.h
smessage.o: copyright.h /usr/include/stdio.h /usr/include/math.h
smessage.o: /usr/include/signal.h /usr/include/sys/signal.h
smessage.o: /usr/include/sys/psw.h /usr/include/ctype.h Wlib.h copyright2.h
smessage.o: defs.h struct.h data.h
parsemeta.o: copyright.h /usr/include/fcntl.h /usr/include/sys/fcntl.h
parsemeta.o: /usr/include/sys/types.h /usr/include/stdio.h
parsemeta.o: /usr/include/ctype.h /usr/include/sys/time.h
parsemeta.o: /usr/include/sys/socket.h /usr/include/sys/uio.h
parsemeta.o: /usr/include/sys/filio.h /usr/include/sys/ioccom.h
parsemeta.o: /usr/include/sys/sockio.h /usr/include/netinet/in.h
parsemeta.o: /usr/include/sys/netinet/in.h /usr/include/arpa/inet.h
parsemeta.o: /usr/include/netdb.h /usr/include/errno.h
parsemeta.o: /usr/include/sys/errno.h Wlib.h copyright2.h defs.h struct.h
parsemeta.o: data.h /usr/include/string.h
socket.o: copyright2.h /usr/include/stdio.h /usr/include/sys/types.h
socket.o: /usr/include/sys/socket.h /usr/include/sys/uio.h
socket.o: /usr/include/sys/filio.h /usr/include/sys/ioccom.h
socket.o: /usr/include/sys/sockio.h /usr/include/sys/time.h
socket.o: /usr/include/netinet/in.h /usr/include/sys/netinet/in.h
socket.o: /usr/include/netinet/tcp.h /usr/include/sys/netinet/tcp.h
socket.o: /usr/include/netdb.h /usr/include/math.h /usr/include/errno.h
socket.o: /usr/include/sys/errno.h Wlib.h defs.h copyright.h struct.h data.h
socket.o: packets.h
stats.o: copyright.h /usr/include/stdio.h Wlib.h copyright2.h defs.h struct.h
stats.o: data.h
util.o: copyright.h /usr/include/stdio.h /usr/include/math.h
util.o: /usr/include/signal.h /usr/include/sys/signal.h
util.o: /usr/include/sys/psw.h Wlib.h copyright2.h defs.h struct.h data.h
war.o: copyright.h /usr/include/stdio.h /usr/include/math.h
war.o: /usr/include/signal.h /usr/include/sys/signal.h /usr/include/sys/psw.h
war.o: Wlib.h copyright2.h defs.h struct.h data.h packets.h
warning.o: copyright.h /usr/include/stdio.h /usr/include/math.h
warning.o: /usr/include/signal.h /usr/include/sys/signal.h
warning.o: /usr/include/sys/psw.h Wlib.h copyright2.h defs.h struct.h data.h
warning.o: /usr/include/sys/time.h
udpopt.o: copyright.h /usr/include/stdio.h /usr/include/ctype.h Wlib.h
udpopt.o: copyright2.h defs.h struct.h data.h
sintab.o: copyright.h
ping.o: copyright2.h /usr/include/stdio.h /usr/include/sys/types.h
ping.o: /usr/include/sys/time.h /usr/include/math.h /usr/include/errno.h
ping.o: /usr/include/sys/errno.h Wlib.h defs.h copyright.h struct.h data.h
ping.o: packets.h
pingstats.o: copyright.h /usr/include/stdio.h /usr/include/math.h Wlib.h
pingstats.o: copyright2.h defs.h struct.h data.h
rotate.o: copyright2.h /usr/include/stdio.h /usr/include/sys/types.h
rotate.o: /usr/include/sys/socket.h /usr/include/sys/uio.h
rotate.o: /usr/include/sys/filio.h /usr/include/sys/ioccom.h
rotate.o: /usr/include/sys/sockio.h /usr/include/sys/time.h
rotate.o: /usr/include/netinet/in.h /usr/include/sys/netinet/in.h
rotate.o: /usr/include/netinet/tcp.h /usr/include/sys/netinet/tcp.h
rotate.o: /usr/include/netdb.h /usr/include/math.h /usr/include/errno.h
rotate.o: /usr/include/sys/errno.h Wlib.h defs.h copyright.h struct.h data.h
rotate.o: packets.h
lagmeter.o: copyright.h /usr/include/stdio.h /usr/include/ctype.h Wlib.h
lagmeter.o: copyright2.h defs.h struct.h data.h packets.h
netstat.o: copyright2.h /usr/include/stdio.h /usr/include/sys/types.h
netstat.o: /usr/include/sys/socket.h /usr/include/sys/uio.h
netstat.o: /usr/include/sys/filio.h /usr/include/sys/ioccom.h
netstat.o: /usr/include/sys/sockio.h /usr/include/sys/time.h
netstat.o: /usr/include/netinet/in.h /usr/include/sys/netinet/in.h
netstat.o: /usr/include/netinet/tcp.h /usr/include/sys/netinet/tcp.h
netstat.o: /usr/include/netdb.h /usr/include/math.h /usr/include/errno.h
netstat.o: /usr/include/sys/errno.h Wlib.h defs.h copyright.h struct.h data.h
netstat.o: packets.h
netstatopt.o: copyright.h /usr/include/stdio.h /usr/include/ctype.h Wlib.h
netstatopt.o: copyright2.h defs.h struct.h data.h packets.h
dashboard.o: copyright.h /usr/include/stdio.h Wlib.h copyright2.h defs.h
dashboard.o: struct.h data.h
distress.o: copyright.h /usr/include/stdio.h /usr/include/signal.h
distress.o: /usr/include/sys/signal.h /usr/include/sys/psw.h
distress.o: /usr/include/ctype.h Wlib.h copyright2.h defs.h struct.h data.h
senddist.o: copyright.h /usr/include/stdio.h /usr/include/signal.h
senddist.o: /usr/include/sys/signal.h /usr/include/sys/psw.h
senddist.o: /usr/include/ctype.h Wlib.h copyright2.h defs.h struct.h data.h
rsa-client.o: copyright2.h /usr/include/stdio.h /usr/include/sys/types.h
rsa-client.o: /usr/include/sys/socket.h /usr/include/sys/uio.h
rsa-client.o: /usr/include/sys/filio.h /usr/include/sys/ioccom.h
rsa-client.o: /usr/include/sys/sockio.h /usr/include/netinet/in.h
rsa-client.o: /usr/include/sys/netinet/in.h /usr/include/netdb.h defs.h
rsa-client.o: copyright.h packets.h Wlib.h data.h
rsa_clientutil.o: /usr/include/stdio.h ../gmp-1.2/mp.h ../gmp-1.2/stddef.h
main.o: copyright.h /usr/include/stdio.h /usr/include/string.h
main.o: /usr/include/sys/types.h /usr/include/signal.h
main.o: /usr/include/sys/signal.h /usr/include/sys/psw.h /usr/include/pwd.h
main.o: /usr/include/setjmp.h /usr/include/sys/time.h /usr/include/sys/wait.h
main.o: Wlib.h copyright2.h defs.h struct.h data.h packets.h version.h
main.o: patchlevel.h cflags.h
x11window.o: /usr/include/stdio.h /usr/include/X11/Xlib.h
x11window.o: /usr/include/sys/types.h /usr/include/X11/X.h
x11window.o: /usr/include/X11/Xfuncproto.h /usr/include/X11/Xosdefs.h
x11window.o: ../gmp-1.2/stddef.h /usr/include/X11/vroot.h
x11window.o: /usr/include/X11/Xatom.h /usr/include/X11/Xutil.h
x11window.o: /usr/include/X11/cursorfont.h /usr/include/assert.h Wlib.h
x11window.o: copyright2.h defs.h copyright.h struct.h data.h teams.bitmap
x11window.o: mapcursor.bitmap localcursor.bitmap
name.o: version.h patchlevel.h
