view Makefile @ 2:fba0b6e6cdc7

Added tag ALPHA for changeset ff5e05767bd3
author darius@midget.dons.net.au
date Tue, 23 Oct 2007 10:09:09 +0930
parents ff5e05767bd3
children
line wrap: on
line source

#  PARADISE 2.4 CLIENT MAKEFILE
#	$Id: Makefile,v 1.1.1.1 1997/12/06 05:41:28 darius Exp $
#

SHELL=/bin/sh

BIN = ../bin.udp

#
# AUTHORIZATION defines
#
#leave commented if you aren't compiling an authorizing client.
#ARCH=irix6.2
#MPLIBS= ../gmp-1.3.2/libgmp.a -L../gmp-1.3.2 -lmp
#KEYDIR=/data/edorman/.Games/Netrek/server-2.4x-rsa/rsa
#AUTH_OBJS = expire.o ${KEYDIR}/rsa_box*.o
#AUTH_DEFS = -DAUTHORIZE

# If you're using the time lord
#TL_OBJS = limitplay.o
#TL_FLAGS=-DTIMELORD

# for termnet
TERMHOME=/usr/local/src/term

# slightly better hiding of the RSA key when the object files are linked in a
# random order.
#SCRAMBLER=perl scrambleargs.perl
SCRAMBLER=echo

# Modify the following to reflect where your libz.a and zlib.h files live.
GZLIBDIR = zlib
GZLIB = -lz
GZINCLUDEDIR = zlib

# system paths.  
OPENWINHOME=/usr/X11
X11HOME = -L${OPENWINHOME}/lib
INCLUDEDIRS = -I$(GZINCLUDEDIR) -I$(OPENWINHOME)/include

# Compiling this client with any flags other than the ones supplied can
# cause problems. Sorry.
#
# TSH           -- changes by T. Hadley
# TC            -- changes by Terence Chang
# SGALAXY       -- changes by Jerry Frain & Joe Young
# ATM           -- changes by Andy McFadden
# TCURSORS	-- special cursors
# RFCURSORS     -- so that it would compile on recumbents system, turn 
#                  this off if you don't have X11/Xmu/CurUtil.h
#                  this will disable the ability to define cursors in
#                  the .xtrekrc file.  If this is not defined, then
#                  you may remove -lXmu from the X11LIB variable above.
# ROTATERACE	-- galaxy rotation
# NOWARP	-- enable alternates to mouse pointer message warp
# EDEN		-- turn on partial eden 1.996c compatibility.
#		   Breaks everything else (plasma_info, MAXTORPS, MAXPLASMA)
# AUTHORIZE     -- turn on reserved.c and RSA authorization.  If you don't 
#		   define this, comment out AUTH_OBJS.
# SHORT_PACKETS -- Heiko Wengler's short packets.  Not prettily transplanted
#		   from Berkricksmoo2.0pl14.
# METASERVER    -- turns on -m metaserver support
# RS6K		-- must be defined for the IBM RS6000
# SVR4		-- must be defined for SVR4 (eg Solaris 2) machines (Bill Dyess)
# VARY_HULL     -- must be defined for vary hull feature (Bill Dyess)
# MACROS	-- must be defined for macros (Bill Dyess)
# TIMER		-- enables the dashboard timer (Bill Dyess)
# CONTINUOUS_MOUSE -- enable the continuous mouse code (Bill Dyess)
# XTREKRC_HELP  -- must be defined for .xtrekrc help window (Bill Dyess)
# PACKET_LIGHTS -- turns on packetLights (Bill Dyess)
# WIDE_PLIST    -- enables wide (fully configurable) playerlist (Bill Dyess)
# SIZE_LOGGING  -- shows bytes sent/received on exit (Bill Dyess)
# FEATURE	-- turns on feature packets (Joe Rumsey)
# RC_DISTRESS   -- Receiver configurable distress.  Code from COW-lite, partially
#	           added by Bill Dyess, finished by Joe Rumsey.
# BEEPLITE      -- Beep-lite code for RCD, code from COW-lite (Joe Rumsey)
# RECORDER      -- Flight recorder/playback (Joe Rumsey)
# NOSHIBITMAPS  -- compile with only CA/SB bitmaps for each race,
#                  saves ~50k in the executable, but then the player MUST
#                  have bitmap albums, or else see everyone as a CA.
# LOCAL_SHIPSTATS -- An ugly little ship status thing drawn into the
#                    local window. Configurable... (Joe Rumsey)
# SHOW_IND	-- Draw an X over Independant planets. from COW-lite (Joe Rumsey)
# TOOLS 	-- slightly silly thing to allow shell commands from message window.
#                  Would be very silly, but also allowed in macros. from COW (Joe)
# HANDLER_TIMES -- record execution times of packet handlers, 
#                  don't define normally (Joe Rumsey)
# COW_HAS_IT_WHY_SHOULDNT_WE -- COW-borg feature that shows the map while you're
#                               at the motd.  Not defined here, is optional,
#                               defaults to off, and I will not document it,
#                               Nor will I put it in 'O'ptions. (Joe Rumsey)
# HOCKEY	-- Turns on lots of hockey specific features, such as
#		   HockeyLines and Puck. (Bill Dyess)
# UNIX_SOUND    -- Turns on Platform Independant sound support (Currently only
#                  VoxWare systems like Linux, FreeBSD). (Sujal Patel)
# ZDIAG         -- Turns on debugging code for receiveing the compressed
#                  terrain data.  Not very useful unless you like seeing
#                  the compression numbers (like 200:1 for just asteroids,
#                  or 600:1 for empty space).
# FEAT_DEBUG    -- Turns on debugging features for Paradise feature packets.
#                  Note that the Paradise feature packets are most likely to
#                  be completely incompatible with Bronco feature packets to
#                  date.
#
# Must have -DATM, 

CDEFS = -DATM -DGODMESSAGE -DTCURSORS -DRFCURSORS -DROTATERACE -DNOWARP \
	-DSHORT_PACKETS -DMETASERVER -DVARY_HULL -DMACROS -DTIMER \
	-DCONTINUOUS_MOUSE -DXTREKRC_HELP -DPACKET_LIGHTS -DWIDE_PLIST \
	-DSIZE_LOGGING -DFEATURE -DRC_DISTRESS -DBEEPLITE -DRECORDER \
	-DLOCAL_SHIPSTATS -DSHOW_IND -DTOOLS -DHOCKEY -DUNIX_SOUND \
	 $(AUTH_DEFS) ${TL_FLAGS} $(SYSDEFS)
     

R_OBJS =    ${AUTH_OBJS} \
	${TL_OBJS} \
	colors.o \
	dashboard.o \
	data.o \
	death.o \
	detonate.o \
	defaults.o \
	defwin.o \
	distress.o \
	dmessage.o \
	enter.o \
	findslot.o \
	gameconf.o \
	getname.o \
	getship.o \
	helpwin.o \
	inform.o \
	interface.o \
	keymap.o \
	macros.o \
	macrowin.o \
	motdwin.o \
	newwin.o \
	option.o \
	packets.o \
	parsemeta.o \
	planetlist.o \
	planets.o \
	playerlist.o \
	ranklist.o \
	ratings.o \
	rotate.o \
	shipbitmaps.o \
	sintab.o \
	smessage.o \
	socket.o \
	stats.o \
	util.o \
	varydamage.o \
	war.o \
	warning.o \
	udpopt.o \
	blk_parsemotd.o \
	shortcomm.o spopt.o \
	ping.o pingstats.o \
	wide_plist.o \
	feature.o \
	beeplite.o \
	recorder.o \
	senddist.o \
	tools.o \
	hockey.o \
	sound.o

R_FILES =   colors.c \
	    dashboard.c \
	    data.c \
	    death.c \
	    detonate.c \
	    defaults.c \
	    defwin.c \
	    distress.c \
	    dmessage.c \
	    enter.c \
	    findslot.c \
	    getname.c \
	    getship.c \
	    helpwin.c \
	    inform.c \
	    input.c \
	    interface.c \
	    keymap.c \
	    macros.c \
	    macrowin.c \
	    motdwin.c \
	    newwin.c \
	    option.c \
	    parsemeta.c \
	    planetlist.c \
	    planets.c \
	    playerlist.c \
	    ranklist.c \
	    ratings.c \
	    redraw.c \
	    reserved.c \
	    rotate.c \
	    rsa-client.c \
	    rsa_util.c \
	    sintab.c \
	    smessage.c \
	    socket.c \
	    stats.c \
	    util.c \
	    varydamage.c \
	    war.c \
	    warning.c \
	    udpopt.c \
	    blk_parsemotd.c \
	    wide_plist.c \
	    feature.c \
	    packets.c \
	    beeplite.c \
	    recorder.c \
	    senddist.c \
	    tools.c \
	    hockey.c \
	    sound.c


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

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

X10LIB = -lX
X10OBJS = x10window.o

X11LIB = $(X11HOME) -lX11 -lXmu
X11SRC = x11window.c
X11OBJS = x11window.o

GLLIB = -lgl_s
GLOBJS = glwindow.o

# Amiga/DNet version:  need libdnet.a.
#   Also need iff.library at run-time...
#
AMIGALIB = -Ldnet:amiga/lib -ldnet
AMIGASRC = amiga.c amigawindow.c dnetcomms.c radkprintf.c sound.c speech.c
AMIGAOBJS =  amigawindow.o amiga.o dnetcomms.o radkprintf.o sound.o speech.o

#mplibs must come before -lm
LIBS = -L$(GZLIBDIR) $(SYSLIBS) $(MPLIBS) -lm $(GZLIB)

CC = cc
#CC = cc -pipe
LINKSTATIC=-Bstatic

# for gcc, it has a different static linking convention
#CC = gcc-2.3.3
#CC = gcc ${GCCOPT} -W -Wreturn-type -Wunused -Wswitch -Wtrigraphs -Wformat \
#            -Wchar-subscripts -Wparentheses
#GCCOPT=-O -Wuninitialized
#LINKSTATIC=-static

CDEBUGFLAGS=-O
#CDEBUGFLAGS=-g
#gcc can optimize and emit debug symbols at the same time

CFLAGS =  $(CDEFS) $(SYSCFLAGS) $(CDEBUGFLAGS) $(INCLUDEDIRS) -I../gmp-1.3.2

###############################[ INDENTATION ]################################
# Recommended indentation style:
# -ce -ci4 -d0 -di8 -nfc1 -i4 -npro -nsc -sob -TCARD8 -TCARD16 -TCARD32 -TINT8 -TINT16 -TINT32 -v

all: help

help:
	@echo 'Use make <parameter> where <parameter> is one of the following:'
	@echo '	generic		generic system.'
	@echo '	sun4		SunOS 4.1.x type machines.'
	@echo '	sun4d		SunOS 4.1.x type machines (dynamic linking).'
	@echo '	sun4strict	SunOS 4.1.x type machines (strict compiling).'
	@echo '	sol		Solaris 2.x machines.'
	@echo '	solstatic	Solaris 2.x (static linking).'
	@echo '	solstrict	Solaris 2.x (strict compiling).'
	@echo '	rs6k		RS6000 based machines.'
	@echo '	X10		X10-based client.'
	@echo '	damiga		Amiga client (Dnet, 68030/68881).'
	@echo '	damiga.68000	Amiga client (Dnet, Any CPU).'
	@echo '	termnet		Includes termnet .h and lib.'
	@echo '	clean		clean up this directory.'
	@echo '	depend		update dependency information.'
	@echo '	soldep		update dependency information for Solaris.'

generic: netrek.paradise

termnet:
	make netrek.paradise SYSCFLAGS="-include ${TERMHOME}/termnet.h" SYSLIBS="-L${TERMHOME} -ltermnet"

sun4 : 
	make udp_client.sun4_static CC=cc

sun4strict: 
	make udp_client.sun4_static "LINKSTATIC=-static" "CC=gcc ${GCCOPT} -W -Wreturn-type -Wunused -Wswitch -Wtrigraphs -Wformat -Wchar-subscripts -Wparentheses"

sun4d : udp_client.sun4

sol: 
	make paradise.solaris SYSCFLAGS=-Xc SYSDEFS=-DSVR4 "SYSLIBS=-lnsl -lsocket"

solstatic: 
	make paradise.solaris.static SYSDEFS=-DSVR4 "SYSLIBS=-lnsl -lsocket"

solstrict: 
	make paradise.solaris SYSDEFS=-DSVR4 "SYSLIBS=-lnsl -lsocket" "LINKSTATIC=-static" "CC=cc ${GCCOPT} "

soldep: 
	make depend SYSDEFS=-DSVR4

dep: depend

rs6k:
	make generic SYSDEFS=-DRS6K SYSLIBS=-lbsd

X10: x10netrek

# does this think work anymore?
x10netrek: $(R_OBJS) $(MAINOBJ) $(INPUT) $(X10OBJS)
	rm -f $@
	$(CC) -o x10netrek $(R_OBJS) $(INPUT) $(MAINOBJ) $(X10OBJS) $(X10LIB) $(LIBS)

glnetrek: $(R_OBJS) $(MAINOBJ) $(INPUT) $(GLOBJS)
	rm -f $@
	$(CC) -o glnetrek $(R_OBJS) $(MAINOBJ) $(INPUT) $(GLOBJS) $(GLLIB) $(LIBS)

damiga:
	make  paradise.amiga.dnet "SYSCFLAGS = -O2 -m68030 -m68881 -Wl,-s" "SYSDEFS=-DDNET -DSOUND -DSCALE_BITMAPS -DSCALE_WINDOWS -DW_PHASERLINE -DTORPBITS -DNOSHIPBITMAPS"

damiga.68000:
	make  paradise.amiga.dnet "SYSCFLAGS = -O2 -m68000 -mc68000 -Wl,-s" "SYSDEFS=-DDNET -DSOUND -DSCALE_BITMAPS -DSCALE_WINDOWS -DW_PHASERLINE -DTORPBITS -DNOSHIPBITMAPS"

paradise.amiga.dnet: $(R_OBJS) $(MAINOBJ) $(INPUT) $(AMIGAOBJS)
	$(CC) $(CFLAGS) -o $@ `$(SCRAMBLER) $(R_OBJS) $(INPUT) $(MAINOBJ) $(AMIGAOBJS)` $(AMIGALIB) $(LIBS)

netrek.paradise : $(R_OBJS) $(MAINOBJ) $(INPUT) $(X11OBJS)
	rm -f $@
	$(CC) $(CFLAGS) -o $@ `$(SCRAMBLER) $(R_OBJS) $(INPUT) $(MAINOBJ) $(X11OBJS)` $(X11LIB) $(LIBS)
	-chmod 644 *.o
	-chmod 755 $@

static: ntparadise.static
ntparadise.static : $(R_OBJS) $(MAINOBJ) $(INPUT) $(X11OBJS)
	rm -f $@
	$(CC) $(CFLAGS) ${LINKSTATIC} -o $@ `$(SCRAMBLER) $(R_OBJS) $(INPUT) $(MAINOBJ) $(X11OBJS)` $(X11LIB) $(LIBS) -lresolv
	-chmod 644 *.o
	-chmod 755 $@

udp_client.sun4_static : $(R_OBJS) $(MAINOBJ) $(INPUT) $(X11OBJS)
	rm -f $@
	$(CC) $(CDEBUGFLAGS) -o udp_client.sun4_static  $(R_OBJS) $(INPUT) $(MAINOBJ) $(X11OBJS) ${LINKSTATIC} $(X11LIB) $(LIBS)
	strip $@

udp_client.sun4 : $(R_OBJS) $(MAINOBJ) $(INPUT) $(X11OBJS)
	rm -f $@
	$(CC) $(CDEBUGFLAGS) -o udp_client.sun4  $(R_OBJS) $(INPUT) $(MAINOBJ) $(X11OBJS) $(X11LIB) $(LIBS)
	strip $@

paradise.solaris : $(R_OBJS) $(MAINOBJ) $(INPUT) $(X11OBJS)
	rm -f $@
	$(CC) $(CDEBUGFLAGS) -o paradise.solaris  `$(SCRAMBLER) $(R_OBJS) $(INPUT) $(MAINOBJ) $(X11OBJS)` $(X11LIB) $(LIBS)
	strip $@

paradise.solaris.static : $(R_OBJS) $(MAINOBJ) $(INPUT) $(X11OBJS)
	rm -f $@
	$(CC) $(CDEBUGFLAGS) -o $@ `$(SCRAMBLER) $(R_OBJS) $(INPUT) $(MAINOBJ) $(X11OBJS)` -ldl -lintl -lw -Bstatic $(X11LIB) $(LIBS) 
	strip $@

rwatch: $(R_OBJS) $(MAINOBJ) $(INPUT) $(X11OBJS)
	rm -f $@
	$(CC) $(CDEBUGFLAGS) -o rwatch $(R_OBJS) $(INPUT) $(MAINOBJ) $(X11OBJS) $(X11LIB) $(LIBS)

clean:
	rm -f $(R_OBJS) $(MAINOBJ) $(INPUT) $(X10OBJS) $(X11OBJS) $(GLOBJS)

tags: $(R_FILES)
	ctags $(R_FILES) $(INCLUDES)

install: netrek
	mv netrek $(BIN)

#####

depend:
	makedepend $(CDEFS) -f Makefile $(INCLUDEDIRS) $(MAINSRC) $(R_FILES) $(X11SRC)

# DO NOT DELETE THIS LINE -- mkdep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
blk_parsemotd.o : blk_parsemotd.c Wlib.h copyright2.h defs.h copyright.h struct.h \
  data.h proto.h 
colors.o : colors.c copyright2.h Wlib.h defs.h copyright.h struct.h data.h proto.h 
dashboard.o : dashboard.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h \
  proto.h 
data.o : data.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h proto.h 
death.o : death.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h proto.h \
  gameconf.h 
defaults.o : defaults.c copyright2.h Wlib.h defs.h copyright.h struct.h data.h \
  proto.h 
defwin.o : defwin.c 
detonate.o : detonate.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h \
  proto.h 
distress.o : distress.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h \
  gameconf.h proto.h 
dmessage.o : dmessage.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h \
  proto.h 
enter.o : enter.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h proto.h \
  packets.h 
expire.o : expire.c 
feature.o : feature.c 
findslot.o : findslot.c copyright2.h Wlib.h defs.h copyright.h struct.h data.h \
  proto.h 
gameconf.o : gameconf.c gameconf.h Wlib.h copyright2.h proto.h defaultlogos.h \
  data.h copyright.h struct.h defs.h gppackets.h packets.h 
getname.o : getname.c copyright2.h Wlib.h defs.h copyright.h struct.h data.h \
  proto.h 
getship.o : getship.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h \
  proto.h 
helpwin.o : helpwin.c Wlib.h copyright2.h defs.h copyright.h struct.h data.h 
inform.o : inform.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h proto.h \
  gameconf.h 
input.o : input.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h packets.h \
  proto.h 
interface.o : interface.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h \
  packets.h proto.h 
keymap.o : keymap.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h proto.h 
macros.o : macros.c 
macrowin.o : macrowin.c Wlib.h copyright2.h defs.h copyright.h struct.h data.h 
main.o : main.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h packets.h \
  proto.h gameconf.h 
motdwin.o : motdwin.c Wlib.h copyright2.h defs.h copyright.h struct.h data.h 
newwin.o : newwin.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h gameconf.h \
  proto.h oldbitmaps.h bitmaps_pr.h bitmaps3.h hullbitmaps.h planetbitmaps.h rabbitbitmaps.h \
  starbitmaps.h packets.h 
option.o : option.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h packets.h \
  proto.h 
packets.o : packets.c defs.h copyright.h packets.h gppackets.h wtext.h 
parsemeta.o : parsemeta.c 
ping.o : ping.c copyright2.h Wlib.h defs.h copyright.h struct.h data.h packets.h \
  proto.h 
pingstats.o : pingstats.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h \
  proto.h 
planetlist.o : planetlist.c copyright.h Wlib.h copyright2.h defs.h struct.h \
  data.h proto.h 
planets.o : planets.c copyright2.h Wlib.h defs.h copyright.h struct.h data.h \
  proto.h 
playerlist.o : playerlist.c copyright.h Wlib.h copyright2.h defs.h struct.h \
  data.h proto.h gameconf.h packets.h 
ranklist.o : ranklist.c copyright2.h Wlib.h defs.h copyright.h struct.h data.h \
  proto.h 
ratings.o : ratings.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h \
  gameconf.h proto.h 
recorder.o : recorder.c 
redraw.o : redraw.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h packets.h \
  proto.h gameconf.h 
reserved.o : reserved.c copyright2.h defs.h copyright.h packets.h 
rotate.o : rotate.c copyright2.h Wlib.h defs.h copyright.h struct.h data.h packets.h 
senddist.o : senddist.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h \
  gameconf.h proto.h 
shipbitmaps.o : shipbitmaps.c Wlib.h copyright2.h defs.h copyright.h struct.h \
  data.h gameconf.h proto.h bitmaps_NEW.h 
shortcomm.o : shortcomm.c 
sintab.o : sintab.c copyright.h 
smessage.o : smessage.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h \
  proto.h gameconf.h 
socket.o : socket.c copyright2.h Wlib.h defs.h copyright.h struct.h data.h packets.h \
  proto.h gameconf.h 
spopt.o : spopt.c 
stats.o : stats.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h proto.h 
time.o : time.c 
tools.o : tools.c 
udpopt.o : udpopt.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h proto.h 
util.o : util.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h proto.h \
  gameconf.h 
varydamage.o : varydamage.c copyright.h Wlib.h copyright2.h defs.h struct.h \
  data.h packets.h proto.h gameconf.h 
war.o : war.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h packets.h \
  proto.h 
warning.o : warning.c copyright.h Wlib.h copyright2.h defs.h struct.h data.h 
wide_plist.o : wide_plist.c 
x11window.o : x11window.c Wlib.h copyright2.h defs.h copyright.h struct.h data.h \
  proto.h