# This makefile created on Wed Mar 17 13:00:47 EST 1993
# using create_makefile version 1.0.4
#  $Header: /sanguine/homes/zeus/Blind-2.48/RCS/Makefile,v 2.48 1999/03/14 00:46:08 zeus Exp zeus $
#
#

# ++++++++ Game Configure section ++++++++++

#put executable file name here
PROGRAMN = New-game       # Executable for galaxy creation
PROGRAM = Blind           # GM's executable
PREPROCP = blind.dbg      # Preprocessor
BTOA = blind2ascii        # Blindrc -> ascii converter
ATOB = ascii2blind        # ascii -> Blindrc converter

# sort of Optional compilation flags
# typical game DEFINES (all optional features) = 
#          -DNEWGAME -DMINSEP=30.0 -DRANDPLACE -DGAMENAME
# typical Preproc DEFINES =  -DPREPROC -DFORECAST (plus above)

# Comment out lines which have undesired game features

# GM helper compile options.
#INTERACTIVE = -DINTERACTIVE # Not supported
#BACKUPS = -DBACKUPS         # make blindrc.turn.bak on save
#REPORTDIR = -DREPORTDIR=\"reports\"  # Write reports into this subdir
#FCASTNAMES = -DFCASTNAMES   # forecast reports named racename.F vs forecast.F
# Suggested  GM helper compile options.
GAMENAME = -DGAMENAME       # Include gamename in blindrc file and reports
VERBOSE = -DVERBOSE          # Be chatty on phases, so the GM knows of progress

# New Game setup compile options
#NEWGAME = -DNEWGAME=1
#RANDPLACE = -DRANDPLACE
#MINSEP = -DMINSEP=21.0
#BALANCE = -DBALANCE

# Optional supported features
KCMD      = -DKCMD      # Add in the selective planet defense stuff
PTECH     = -DPARTTECH  # The 2.43+ Partial tech stuff
PASSWORDS = -DPASSWORDS # Passwords, including a Y command
SMARTC    = -DSMARTC    #Rewrites races:players on C command...
ZCMDOK    = -DZCMDOK    #Rewites races:players on Z command...
QCMDOK    = -DQCMDOK    #Allows Q command
QADDR     = -DQADDR=\"bampton\"  # To whom Q'd turn reports go (GM or nobody)

#Bug hackarounds, see INSTALL for info.
SIZEBUG = -DSIZEBUG

# Preprocessor switches (must be disabled for edit target!)
#PREPROC = -DPREPROC    # Do this if you do the other 
#FORECAST = -DFORECAST

# Experimental switches
#NGBOMBING = -DNGBOMBING # GalaxyNG bombing rules (1/4 pop left)

# Performance Mods, see doc/INSTALL for valid values
# 
SPEED = -DSPEED=31


# Flags needed when compiling the blindrc editor
#EDIT=-DEDIT  # Turn this off otherwise...

# Flags needed when building the order filter
#ORDER=-DORDER # Turn this off, otherwise

# ++++++ OS Dependant stuff ++++++++

#some machines may not like/honor this directive
# Gnu Make does not. AIX's make appears to not support it either.
# Linux uses GNU make...
.KEEP_STATE::

# Pick your Flavor of Unix. Defining more than one of this will probably
# break things, as might defining none.
#SUNOS4=-DSUNOS4=1   # SunOS 4.1 through 4.1.4
#HPUX9=-DHPUX9=1     # HP-UX 9.03
#HPUX10=-DHPUX10=1 -D_INCLUDE_POSIX_SOURCE   # HP-UX 10.20
#HPUX11=-DHPUX11=1 -D_INCLUDE_POSIX_SOURCE   # HP-UX 11 (not tested)
SOLARIS=-DSOLARIS=1 # Solaris 2.4, 2.5, 2.5.1, 2.6, [2.]7
#ULTRIX=-DULTRIX=1   # Ultrix 4.3 and 4.4 
#AIX=-DAIX -D_BSD_INCLUDES  # AIX 3.2.5 BSD stuff needed for a few prototypes
#AIX4=-DAIX4         # AIX 4.x
#LINUX=-DLINUX       # Linux
#IRIX5=-DIRIX5       # IRIX 5.3
#IRIX6=-DIRIX6       # IRIX 6.2, 6.3 (requires other makefile hacking)
#OSF1=-DOSF1         # OSF1 V4.0 NOTE THAT THIS IS A PARTIAL PORT!
#OPENBSD2=-DOPENBSD2 # OPENBSD 2.1, 2.4 (and others?)
#NETBSD12=-DNETBSD12 # NETBSD 1.2 and later x86 (and other platforms?)
#FREEBSD2=-DFREEBSD2 # FreeBSD 2.2.2/x86 
#BSDI=-DBSDI         # BSDI

# gcc 2.3.3 on a Sun doesn't have prototypes for atol atoi, but 2.5.8 does
# Define or not, depending on errors
#WANT_ATO_PROT = -DWANT_ATO_PROT


# Most Unix's appear to have srand48. BSD boxes also have random. srand
# is apparently a "poor" random number generator.
# If you do not have random but do have srand48, and you aren't one of 
# the predefined OS's above, turn this on. SunOS 4.1.x has both.
#USESRAND48 = -DUSESRAND48

# Put in debugging compuiler flags here (-g, or -ggdb for GNU's debugger)
# Or use -O if you trust the code that much...
#DBGFLAGS = -xO5 # Sun's Sparcworks C compiler
#DBGFLAGS = -g -O
#DBGFLAGS = -O4
#DBGFLAGS = -g 
DBGFLAGS = -ggdb

# These are the "Totally paranoid" flags, use them or not
# -ansi Won't work on some broken gcc installations
# -pedantic Would be nice, but not too useful, as sun's header files aren't 
#            ansi....
# -Wredundant-decls whines about stuff in Sun header files too, sigh.
#PNOIDFLAGS = -Wconversion -Wstrict-prototypes -Wmissing-prototypes -ansi -pedantic -Wshadow -Wmissing-declarations -Wredundant-decls
#PNOIDFLAGS = -Wconversion -Wstrict-prototypes -Wmissing-prototypes -ansi -pedantic -Wredundant-decls
PNOIDFLAGS = -Wconversion -Wstrict-prototypes -Wmissing-prototypes -ansi -pedantic

# Note: some compilers/OS do not support -pipe, ex: gcc on sun3's
# Ultrix and IRIX
# If -pipe is supported, files compile faster.
#CCPIPE = -pipe 

# Flags to your compiler for profiling the code. Usefull for
# manually Optimizing code only. Turn it off, otherwise.
#PROF = -xpg  # SparcWorks C
#PROF = -pg 

# OS - all the different OS types I've hacked the code for.
OS = ${ULTRIX} ${HPUX9} ${SUNOS4} ${SOLARIS} ${AIX} ${LINUX} ${OSF1} ${IRIX5} \
${IRIX6} ${OPENBSD2} ${NETBSD12} ${FREEBSD2} ${BSDI} ${HPUX10} ${HPUX11} ${AIX4}

# INCLUDES - non standardplaces to look for include files 
# Should be OK with -Iprotos
INCLUDES = -Iprotos

# Put in OS flags, and other flags here that should be seen by all files:
CFLAGS =  ${DBGFLAGS}  -c ${INCLUDES} ${PNOIDFLAGS} ${WANT_ATO_PROT} \
	${CCPIPE} ${USESRAND48}  ${PROF} ${OS} #-Wall
# Use these for IRIX 6?
#CFLAGS =  ${DBGFLAGS} -c ${INCLUDES} ${PNOIDFLAGS} ${USESRAND48}  ${PROF} ${OS}

# Want a static binary? Not needed, but useful on occasion
#STATIC= -static # For gcc
#STATIC= -Bstatic # For other cc's?
# Put flags for ld here:
LDFLAGS =  ${DBGFLAGS} ${STATIC} ${PROF}

#LINT = /usr/5bin/lint # Forget it
#LINTFLAGS =  -abchn -lansic
LINTFLAGS =  -cs -lm -Aa # This works on an HP...

RM = rm -f

# Put in your complier choice here. Note: It must be ansi compliant
# Gcc is what I use, anything else, you are on your own...
#CC = cc
CC = gcc

# Libraries needed. At least for SUNs, HPUX, and ULTRIX, this is just 
# the math lib.
# Linux appears to require -lc if compiled with -g/-ggdb
LIBS = -lm

# Copy flags, -p to preserve time stamps
CP = cp -p

# Purify, if desired 
# [Probably not, unless you are hunting Undocumented Features.]
#PURE=/appls/pure/purify-4.1-hpux/purify -v -automount-prefix=/tmp_mnt/appls/pub/HP10:/appls/pub/HP10
#PURE=purify

# ++++++++ Install section ++++++++++
# (Optional)

INSTALLDIR=.

################################################
# You shouldn't need to edit anything below here
################################################

# Current version #
VER=2.48

#put source files here
# All C source files in the top directory.
SRCS =  Blind.c loadgame.c savegame.c enterturn.c battle.c misc.c findplayer.c \
	addplayer.c turn.c new-game.c version.c new-galaxy.c Str.c \
	List.c

# These groups are for varios executables. They are complete, except
# for the cmds/*.c stuff, which is handled later.

# preprocessor (without forecaster) source files
SRCP =  Blind.c loadgame.c enterturn.c misc.c  version.c \
	report/gm.c report/main.c report/planets.c report/ships.c \
	report/map.c report/battle.c report/status.c 

# FORECASTing preprocessor source files
SRCPP =  Blind.c loadgame.c enterturn.c misc.c  version.c turn.c \
	report/main.c report/planets.c report/map.c report/ships.c \
	report/status.c 

# New game source files
SBJN = new-galaxy.c savegame.c addplayer.c new-game.c version.c misc.c Str.c

# Game in progress source files
SRCG =  Blind.c loadgame.c savegame.c enterturn.c battle.c misc.c  \
	turn.c version.c ${REPORT_C}

# Game editor source files
SRCE =  edit.c loadgame.c savegame.c enterturn.c misc.c version.c

# Blindrc to ascii converter
SRCB2A = loadgame.c util/blindrc-to-ascii.c misc.c

# Ascii to Blindrc converter
SRCA2B = savegame.c util/ascii-to-blindrc.c misc.c


#put object files here
# OBJPP = forecaster .o's, OBJN = newgame .o's, OBJE = Edit .o's
# OBJG = Blind .o's
OBJS =  Blind.o loadgame.o savegame.o enterturn.o battle.o misc.o \
	addplayer.o turn.o new-game.o version.o new-galaxy.o 
OBJP =  Blind.o loadgame.o enterturn.o misc.o version.o 
OBJPP =  Blind.o loadgame.o enterturn.o misc.o version.o turn.o report/Main.o \
	report/map.o report/ships.o report/status.o report/planets.o Str.o \
	findplayer.o List.o
OBJN = new-galaxy.o savegame.o addplayer.o new-game.o version.o misc.o report/gm.o report/Main.o report/map.o report/planets.o Str.o List.o
OBJG = Blind.o loadgame.o savegame.o enterturn.o battle.o misc.o  \
	turn.o version.o Str.o findplayer.o List.o
OBJE =  util/edit.o loadgame.o savegame.o misc.o report/Main.o report/ships.o \
	report/planets.o report/map.o new-game.o Str.o List.o
OBJB2A = loadgame.o util/blindrc-to-ascii.o misc.o Str.o List.o
OBJA2B = savegame.o util/ascii-to-blindrc.o misc.o Str.o List.o
OBJORDER = server/order.o Str.o findplayer.o List.o


# Put Header files here
H = protos
HEADERS = $H/battle.h $H/cmds-g.h $H/cmds.h $H/common.h $H/enterturn-g.h \
	$H/enterturn.h $H/global.h $H/i-o.h $H/misc-g.h $H/misc.h $H/str.h \
	$H/new-game.h  $H/prototypes.h $H/report-g.h $H/report.h $H/version.h \
	$H/battle-g.h $H/turn.h $H/turn-g.h $H/addplayer.h $H/exit.h $H/a2b.h \
	$H/b2a.h $H/speed.h $H/options.h $H/edit.h $H/gm.h $H/order.h \
	$H/findplayer.h $H/list.h \
	$H/sunos4.h $H/solaris2.h $H/hpux9.h $H/aix.h $H/ultrix.h $H/irix5.h \
	$H/osf1.h $H/linux.h $H/irix6.h $H/openbsd2.h $H/netbsd.h $H/freebsd.h \
	$H/bsdi.h $H/hpux10.h $H/aix4.h


# Put player command parsing files here
# Yes, v.c is missing. There is no command by that name yet
CMDS_C = cmds/a.c cmds/b.c cmds/c.c cmds/d.c cmds/e.c cmds/f.c cmds/g.c \
	cmds/h.c cmds/i.c cmds/j.c cmds/k.c cmds/l.c cmds/m.c cmds/n.c \
	cmds/o.c cmds/p.c cmds/q.c cmds/r.c cmds/s.c cmds/t.c cmds/u.c \
	cmds/w.c cmds/x.c cmds/y.c cmds/z.c cmds/z.c cmds/Cmds-lib.c

CMDS_O = cmds/a.o cmds/b.o cmds/c.o cmds/d.o cmds/e.o cmds/f.o cmds/g.o \
	cmds/h.o cmds/i.o cmds/j.o cmds/k.o cmds/l.o cmds/m.o cmds/n.o \
	cmds/o.o cmds/p.o cmds/q.o cmds/r.o cmds/s.o cmds/t.o cmds/u.o \
	cmds/w.o cmds/x.o cmds/y.o cmds/z.o cmds/Cmds-lib.o

#  Player report writing/related code files
REPORT_C = report/Battle.c report/Main.c report/gm.c report/map.c \
	report/planets.c report/ships.c report/status.c

REPORT_O = report/Battle.o report/Main.o report/gm.o report/map.o \
	report/planets.o report/ships.o report/status.o

# Misc files to include
MISC = Makefile Readme To-Do Changes 
MISC2 = manifest

# Documentation stuff
DOCS = doc/Add-ons doc/FAQ doc/INSTALL doc/Notes doc/Ported doc/QuickRef \
	doc/Rules doc/fleet.txt doc/intro doc/Bugs doc/Starting-a-game \
	doc/UFAQ doc/Player-intro doc/intro doc/New doc/Codeinfo doc/Warnings

# Scripts that might be of use
S2=support
SCRIPTS = ${S2}/README ${S2}/mailer ${S2}/Compile-all ${S2}/mailer.csh ${S2}/Test.sh ${S2}/Order.sh
S=scripts
SERVER = ${S}/ADDNEW ${S}/README ${S}/multi-forw ${S}/turn-over ${S}/MONITER  \
	${S}/body.awk ${S}/return.awk ${S}/turn-run ${S}/Pre-proc \
	${S}/game-forw ${S}/run ${S}/good-subject ${S}/p-Can-Fwd ${S}/Can-Fwd \
	${S}/blind-preproc.awk ${S}/v3-blind-preproc.awk ${S}/forw-body.awk \
	${S}/game-forw.sh

# Convertison utilities code
UTILS = util/blindrc-to-ascii.c util/ascii-to-blindrc.c util/edit.c

# The C based version of the email server:
C=server
CSERVER = $C/main.c $C/main.h $C/order.c

# The whole thing
ALLSRC = ${SRCS} ${HEADERS} ${SERVER} ${SCRIPTS} ${MISC} ${DOCS} ${MISC2} \
	${UTILS} ${CMDS_C} ${REPORT_C} ${CSERVER}

#Default action for make:
Blind:   ${OBJG} ${CMDS_O} ${REPORT_O}
	@if [ x${ORDER} != x ] ; then \
	echo ""; echo ""; echo "Blind configure error ..."; \
	echo "ORDER defined. "; echo "undefine, or 'make Order'"; \
	echo ""; exit 2 ; \
	fi
	@if [ x${NEWGAME} != x ] ; then \
	echo ""; echo ""; echo "Blind configure error ..."; \
	echo "NEWGAME defined. "; echo "undefine, or 'make New-game'"; \
	echo ""; exit 2 ; \
	fi
	@if [ x${PREPROC} != x  -o x${FORECAST} != x ] ; then \
	echo ""; \
	echo ""; \
	echo "Blind configure error .."; \
	echo "PREPROC defined, or FORECAST defined -- undefine"; \
	echo "or make dbg-plus'"; \
	echo ""; \
	exit 2; \
	fi
	${PURE} ${CC} $(LDFLAGS) ${OPTS} -o ${PROGRAM} ${OBJG} ${CMDS_O} ${REPORT_O} ${LIBS}
	@chmod 755 ${PROGRAM}

# Use this for IRIX & Ultrix with their brain dead makes.
#Blind:   ${OBJG} ${CMDS_O} ${REPORT_O}
#	${PURE} ${CC} $(LDFLAGS) ${OPTS} -o ${PROGRAM} ${OBJG} ${CMDS_O} ${REPORT_O} ${LIBS}

New-game: ${OBJN}
	@if [ x${NEWGAME} = x ] ; then \
	echo ""; \
	echo ""; \
	echo "Blind configure error ..."; \
	echo "NEWGAME not defined. "; \
	echo "define, or 'make Blind'"; \
	echo ""; \
	exit 2; \
	fi
	@if [ x${PREPROC} != x ] ; then \
	echo ""; \
	echo ""; \
	echo "Blind configure error .."; \
	echo "PREPROC defined. "; \
	echo "undefine'"; \
	echo ""; \
	exit 2; \
	fi
	@if [ x${PREPROC} = x  -a x${FORECAST} != x ] ; then \
	echo ""; \
	echo ""; \
	echo "Blind configure error .."; \
	echo "PREPROC not defined, FORECAST defined "; \
	echo "undefine'"; \
	echo ""; \
	exit 2; \
	fi
	${PURE} ${CC} $(LDFLAGS) ${OPTS} -o ${PROGRAMN} ${OBJN} ${LIBS} 

blind.dbg:   $(OBJP) ${CMDS_O}
	@if [ x${FORECAST} != x ] ; then \
	echo ""; \
	echo ""; \
	echo "Blind configure error ..."; \
	echo "FORECAST defined, undefine, or build dbg-plus"; \
	echo ""; \
	exit 2; \
	fi
	@if [ x${NEWGAME} != x ] ; then \
	echo ""; \
	echo ""; \
	echo "Blind configure error ..."; \
	echo "NEWGAME defined, undefine"; \
	echo ""; \
	exit 2; \
	fi
	@if [ x${PREPROC} = x ] ; then \
	echo ""; \
	echo ""; \
	echo "Blind configure error .."; \
	echo "PREPROC not defined"; \
	echo ""; \
	exit 2; \
	fi
	${PURE} ${CC} $(LDFLAGS) ${OPTS} -o ${PREPROCP} ${OBJP} ${CMDS_O} ${LIBS}

dbg-plus:   $(OBJPP) $(CMDS_O)
	@if [ x${FORECAST} = x ] ; then \
	echo ""; \
	echo ""; \
	echo "Blind configure error ..."; \
	echo "FORECAST not defined, define, or build blind.dbg"; \
	echo ""; \
	exit 2; \
	fi
	@if [ x${NEWGAME} != x ] ; then \
	echo ""; \
	echo ""; \
	echo "Blind configure error ..."; \
	echo "NEWGAME defined, undefine"; \
	echo ""; \
	exit 2; \
	fi
	@if [ x${PREPROC} = x ] ; then \
	echo ""; \
	echo ""; \
	echo "Blind configure error .."; \
	echo "PREPROC not defined"; \
	echo ""; \
	exit 2; \
	fi
	${PURE} ${CC} $(LDFLAGS) ${OPTS} -o ${PREPROCP} ${OBJPP} ${CMDS_O} ${LIBS}
	@chmod 755 ${PREPROCP}
	@touch dbg-plus

# For brain dead Ultrix/IRIX
#dbg-plus:   $(OBJPP) $(CMDS_O)
#	${PURE} ${CC} $(LDFLAGS) ${OPTS} -o ${PREPROCP} ${OBJPP} ${CMDS_O} ${LIBS}
	@touch dbg-plus

Order: ${OBJORDER}
	@if [ x${ORDER} = x ] ; then \
	echo ""; \
	echo ""; \
	echo "Configuration error .."; \
	echo "ORDER not defined, code will compile, but not work!"; \
	echo ""; \
	exit 2; \
	fi
	${PURE} ${CC} $(LDFLAGS) ${DEFINES} ${OPTS} -o Order ${OBJORDER}


edit: $(OBJE)
	${PURE} ${CC} $(LDFLAGS) ${DEFINES} ${OPTS} -o Edit $(OBJE) ${LIBS}

blind2ascii: ${OBJB2A}
	${PURE} ${CC} -o ${BTOA} ${OBJB2A} ${LDFLAGS} ${OPTS} ${LIBS}

ascii2blind: ${OBJA2B}
	${PURE} ${CC} -o ${ATOB} ${OBJA2B} ${LDFLAGS} ${OPTS} ${LIBS}

install:
	${CP} ${PROGRAM} ${PREPROCP} ${INSTALLDIR}

#
# Individual object (*.o) files start here:
#

Blind.o: Blind.c
	${CC} $*.c ${CFLAGS} ${BACKUPS} ${PREPROC} -DVER=${VER} ${REPORTDIR} \
	${GAMENAME}

new-galaxy.o: new-galaxy.c
	${CC} $*.c ${CFLAGS} ${BACKUPS} ${NEWGAME} -DVER=${VER} \
	${GAMENAME} ${MINSEP} ${BACKUPS} ${BALANCE}


addplayer.o: addplayer.c
	${CC} $*.c ${CFLAGS} ${RANDPLACE} ${MINSEP} ${INTERACTIVE}

battle.o: battle.c
	${CC} $*.c ${CFLAGS} ${VERBOSE} ${SPEED2}

#b2.o: b2.c
#	${CC} $*.c ${CFLAGS} ${VERBOSE} ${SPEED2}

util/edit.o: util/edit.c
	${CC} $*.c ${CFLAGS} -DVER=${VER} ${GAMENAME}
	@mv edit.o util

#cmds.o: cmds.c
#	${CC} $*.c ${CFLAGS} ${KCMD} ${SIZEBUG} \
#	 ${PTECH}

cmds/a.o: cmds/a.c
	${CC} $*.c ${CFLAGS} 
	@mv a.o cmds

cmds/b.o: cmds/b.c
	${CC} $*.c ${CFLAGS}
	@mv b.o cmds

cmds/c.o: cmds/c.c
	${CC} $*.c ${CFLAGS} 
	@mv c.o cmds

cmds/d.o: cmds/d.c
	${CC} $*.c ${CFLAGS} ${SIZEBUG}
	@mv d.o cmds

cmds/e.o: cmds/e.c
	${CC} $*.c ${CFLAGS}
	@mv e.o cmds

cmds/f.o: cmds/f.c
	${CC} $*.c ${CFLAGS} 
	@mv f.o cmds

cmds/g.o: cmds/g.c
	${CC} $*.c ${CFLAGS} ${PTECH}
	@mv g.o cmds

cmds/h.o: cmds/h.c
	${CC} $*.c ${CFLAGS} 
	@mv h.o cmds

cmds/i.o: cmds/i.c
	${CC} $*.c ${CFLAGS}
	@mv i.o cmds

cmds/j.o: cmds/j.c
	${CC} $*.c ${CFLAGS} 
	@mv j.o cmds

cmds/k.o: cmds/k.c
	${CC} $*.c ${CFLAGS} ${KCMD}
	@mv k.o cmds

cmds/l.o: cmds/l.c
	${CC} $*.c ${CFLAGS} 
	@mv l.o cmds

cmds/m.o: cmds/m.c
	${CC} $*.c ${CFLAGS}
	@mv m.o cmds

cmds/n.o: cmds/n.c
	${CC} $*.c ${CFLAGS} 
	@mv n.o cmds

cmds/o.o: cmds/o.c
	${CC} $*.c ${CFLAGS} ${PTECH}
	@mv o.o cmds

cmds/p.o: cmds/p.c
	${CC} $*.c ${CFLAGS} ${PREPROC} ${PTECH}
	@mv p.o cmds

cmds/q.o: cmds/q.c
	${CC} $*.c ${CFLAGS} ${PREPROC} ${QCMDOK} ${QADDR}
	@mv q.o cmds

cmds/r.o: cmds/r.c
	${CC} $*.c ${CFLAGS} ${FORECAST}
	@mv r.o cmds

cmds/s.o: cmds/s.c
	${CC} $*.c ${CFLAGS} ${FORECAST}
	@mv s.o cmds

cmds/t.o: cmds/t.c
	${CC} $*.c ${CFLAGS}
	@mv t.o cmds

cmds/u.o: cmds/u.c
	${CC} $*.c ${CFLAGS}
	@mv u.o cmds

cmds/w.o: cmds/w.c
	${CC} $*.c ${CFLAGS} 
	@mv w.o cmds

cmds/x.o: cmds/x.c
	${CC} $*.c ${CFLAGS} 
	@mv x.o cmds

cmds/y.o: cmds/y.c
	${CC} $*.c ${CFLAGS}  ${PASSWORDS} ${PREPROC}
	@mv y.o cmds

cmds/z.o: cmds/z.c
	${CC} $*.c ${CFLAGS}  ${ZCMDOK} ${PREPROC}
	@mv z.o cmds


cmds/Cmds-lib.o: cmds/Cmds-lib.c
	${CC} $*.c ${CFLAGS} ${PREPROC} ${PTECH}
	@mv Cmds-lib.o cmds

enterturn.o: enterturn.c
	${CC} $*.c ${CFLAGS} ${INTERACTIVE} ${KCMD} ${PREPROC} ${FORECAST} \
	${PASSWORDS} ${GAMENAME} ${ZCMDOK} ${ORDER}

findplayer.o: findplayer.c
	${CC} $*.c ${CFLAGS} ${PASSWORDS} ${GAMENAME}  ${ORDER} ${PREPROC}

List.o: List.c protos/list.h
	${CC} $*.c ${CFLAGS} 

loadgame.o: loadgame.c
	${CC} $*.c ${CFLAGS} ${KCMD} ${VERBOSE} ${SIZEBUG} ${GAMENAME} ${SPEED}

misc.o: misc.c
	${CC} $*.c ${CFLAGS} ${PREPROC} ${KCMD} ${PTECH} ${INTERACTIVE}  \
	${SPEED} ${NGBOMBING}

new-game.o: new-game.c
	${CC} $*.c ${CFLAGS} ${GAMENAME} ${BALANCE} ${VERBOSE} ${MINSEP}

report/Main.o: report/Main.c
	${CC} $*.c ${CFLAGS} ${PREPROC} ${NEWGAME} ${VERBOSE} ${EDIT} \
	${KCMD} -DVER=${VER} ${FORECAST} ${FCASTNAMES} ${GAMENAME} ${PTECH} \
	${PASSWORDS} ${SMARTC} ${ZCMDOK}
	@mv Main.o report

report/Battle.o: report/Battle.c
	${CC} $*.c ${CFLAGS}
	@mv Battle.o report

report/status.o: report/status.c
	${CC} $*.c ${CFLAGS} ${PREPROC} ${FORECAST} ${BLINDCARRY}
	@mv status.o report

report/gm.o: report/gm.c
	${CC} $*.c ${CFLAGS} ${NEWGAME}
	@mv gm.o report

report/ships.o: report/ships.c
	${CC} $*.c ${CFLAGS} ${FORECAST} ${PREPROC}
	@mv ships.o report

report/map.o: report/map.c
	${CC} $*.c ${CFLAGS} ${FORECAST} 
	@mv map.o report

report/planets.o: report/planets.c
	${CC} $*.c ${CFLAGS} ${KCMD} ${FORECAST} ${NEWGAME} ${SPEED} ${EDIT} \
	${PTECH}
	@mv planets.o report

savegame.o: savegame.c
	${CC} $*.c ${CFLAGS} ${PREPOC} ${KCMD} ${SIZEBUG} ${GAMENAME}

turn.o: turn.c
	${CC} $*.c ${CFLAGS} ${PREPROC} ${FORECAST} ${VERBOSE}  \
	${PTECH} ${SPEED} ${SMARTC} ${PASSWORDS}

version.o: version.c
	${CC} $*.c ${CFLAGS} ${BACKUPS} ${INTERACTIVE} ${PTECH} ${KCMD} \
	${RANDPLACE} ${MINSEP} ${NEWGAME} ${ZCMDOK} ${PREPROC} ${FORECAST} \
	-DVER=${VER} ${BOMBBUG} ${SIZEBUG} ${BALANCE} ${VERBOSE} ${FCASTNAMES} \
	${SMARTC} ${GAMENAME} ${NONAMEBUG} ${SPEED} ${PASSWORDS} ${QCMDOK} \
	${QADDR}

util/blindrc-to-ascii.o: util/blindrc-to-ascii.c
	${CC} $*.c ${CFLAGS} -DVER=${VER} ${GAMENAME} ${KCMD} ${NONAMEBUG} 
	@mv blindrc-to-ascii.o util

util/ascii-to-blindrc.o: util/ascii-to-blindrc.c
	${CC} $*.c ${CFLAGS} -DVER=${VER} ${GAMENAME} ${KCMD} ${NONAMEBUG} \
	${VERBOSE} 
	@mv ascii-to-blindrc.o util

server/order.o: server/order.c
	${CC} $*.c  ${CFLAGS} -DVER=${VER} ${VERBOSE} ${PASSWORDS} ${GAMENAME}
	mv order.o server

Cserver: server/main.o
	${CC} server/main.o ${LDFLAGS} -DVER=${VER} -o Cserver

server/main.o: server/main.c
	${CC} $*.c ${CFLAGS}
	@mv main.o server

build-dirs:;
	@if [ -d Blind-${VER} ] ; then \
	echo "Warning, directory exists" ; \
	else \
	mkdir Blind-${VER} Blind-${VER}/doc Blind-${VER}/cmds \
	Blind-${VER}/protos Blind-${VER}/scripts Blind-${VER}/support \
	Blind-${VER}/util Blind-${VER}/report Blind-${VER}/server; \
	fi
	${CP} ${SRCS}  ${MISC} Blind-${VER}
	${CP} ${DOCS} Blind-${VER}/doc
	${CP} ${CMDS_C} Blind-${VER}/cmds
	${CP} ${HEADERS} Blind-${VER}/protos
	${CP} ${SERVER} Blind-${VER}/scripts
	${CP} ${SCRIPTS} Blind-${VER}/support
	${CP} ${UTILS} Blind-${VER}/util
	${CP} ${REPORT_C} Blind-${VER}/report
	${CP} ${CSERVER} Blind-${VER}/server

tar: ${ALLSRC} build-dirs manifest
	tar cvf Blind-src-V${VER}.tar Blind-${VER}
	compress Blind-src-V${VER}.tar
	chmod 644 Blind-src-V${VER}.tar.Z

zip: ${ALLSRC} build-dirs manifest
	zip -9r Blind-src-V${VER}.zip Blind-${VER}
	chmod 644 Blind-src-V${VER}.zip

rcs-ver::
	ci -l${VER} ${SRCS} ${HEADERS} Makefile ${SCRIPTS} ${SERVER} ${CMDS_C} \
	${UTILS}

ftp::
	${CP} Blind-src-V${VER}.zip Blind-src-V${VER}.tar.Z doc/Rules doc/FAQ \
	doc/UFAQ doc/QuickRef /ruby/homes/ftp/pub/bampton/Blind
	(cd /ruby/homes/ftp/pub/bampton/Blind; compress QuickRef Rules UFAQ)
	${CP} doc/Rules /ruby/homes/ftp/pub/bampton/Blind/Rules.txt

clean::
	- ${RM} *.o cmds/*.o util/*.o report/*.o server/*.o *.ln *~ cmds/*~ util/*~ report/*~ server/*~ core


very-clean: clean
	${RM} ${PROGRAM} ${PREPROCP} New-game Edit blindrc forecast.F blind2ascii ascii2blind blindrc.*.bak *.r Cserver Order *.orders

spotless: clean
	${RM} mainifest


print::
	enscript -2 -r -h ${SRCS} ${HEADERS} ${MISC} ${DOCS}


lint:           l${PROGRAM}.ln


manifest: build-dirs
	@echo "Files included in this release:" > Blind-${VER}/manifest
	@echo "" >> Blind-${VER}/manifest
	@ls -lR Blind-${VER} >> Blind-${VER}/manifest
	@echo "Made Blind-${VER}/manifest"

l${PROGRAM}.ln: ${SRCS}
	${LINT} ${LINTFLAGS} ${SRCS} ${BACKUPS} ${INTERACTIVE} ${KCMD} \
	${RANDPLACE} ${MINSEP} ${NEWGAME} ${PREPROC} ${FORECAST} -DVER=${VER} \
	${SIZEBUG} ${BALANCE} ${VERBOSE} ${FCASTNAMES} ${NEW1} \
        ${FORECASTNAMES} ${GAMENAME} ${NONAMEBUG}

# Header file dependancies:

Blind.o: protos/common.h protos/global.h protos/prototypes.h protos/new-game.h \
	protos/turn-g.h protos/exit.h protos/report-g.h protos/str.h
addplayer.c: protos/common.h protos/global.h protos/prototypes.h \
	protos/misc-g.h protos/addplayer.h protos/options.h
battle.o: protos/common.h protos/global.h protos/prototypes.h protos/battle.h \
	protos/battle-g.h protos/misc-g.h
cmds.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h \
	protos/global.h protos/cmds-g.h protos/misc-g.h
enterturn.o: protos/common.h protos/global.h protos/prototypes.h \
	protos/enterturn.h protos/cmds-g.h protos/enterturn-g.h protos/str.h \
	protos/misc-g.h protos/exit.h protos/cmds.h protos/options.h
loadgame.o: protos/common.h protos/global.h protos/prototypes.h protos/i-o.h \
	protos/misc-g.h protos/exit.h
misc.o: protos/common.h protos/prototypes.h protos/misc.h protos/global.h \
	protos/misc-g.h protos/exit.h protos/speed.h
new-galaxy.o: protos/common.h protos/global.h protos/prototypes.h \
	protos/new-game.h
new-game.o: protos/common.h protos/global.h protos/prototypes.h  \
	protos/new-game.h protos/i-o.h
Str.o: protos/str.h
savegame.o: protos/common.h protos/global.h protos/prototypes.h protos/i-o.h \
	protos/misc-g.h
turn.o: protos/common.h protos/global.h protos/prototypes.h protos/turn.h \
	protos/turn-g.h protos/battle-g.h protos/speed.h protos/misc-g.h \
	protos/options.h protos/cmds.h protos/exit.h protos/enterturn.h \
	protos/enterturn-g.h protos/str.h
version.o: protos/common.h protos/global.h protos/prototypes.h protos/version.h
version.o: protos/options.h
findplayer.o: protos/common.h protos/prototypes.h protos/findplayer.h
findplayer.o: protos/exit.h 
server/order.o: protos/common.h protos/prototypes.h protos/findplayer.h
server/order.o: protos/exit.h protos/order.h
util/edit.o: protos/common.h protos/prototypes.h protos/report-g.h protos/global.h
cmds/Cmds-lib.o: protos/common.h protos/prototypes.h protos/enterturn-g.h
cmds/Cmds-lib.o: protos/cmds.h protos/cmds-g.h protos/misc-g.h protos/options.h
cmds/Cmds-lib.o: protos/str.h
cmds/a.o: protos/common.h protos/prototypes.h protos/cmds.h protos/cmds-g.h
cmds/a.o: protos/enterturn-g.h protos/str.h
cmds/b.o: protos/common.h protos/prototypes.h protos/cmds.h protos/cmds-g.h
cmds/b.o: protos/enterturn-g.h protos/misc-g.h protos/options.h protos/str.h
cmds/c.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/c.o: protos/cmds-g.h protos/str.h
cmds/d.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/d.o: protos/cmds-g.h protos/str.h
cmds/e.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/e.o: protos/cmds-g.h protos/str.h
cmds/f.o: protos/common.h protos/prototypes.h protos/cmds.h protos/cmds-g.h
cmds/f.o: protos/options.h protos/str.h
cmds/g.o: protos/common.h protos/prototypes.h protos/cmds.h protos/cmds-g.h
cmds/g.o: protos/enterturn-g.h protos/misc-g.h protos/str.h
cmds/h.o: protos/common.h protos/prototypes.h protos/cmds.h protos/cmds-g.h
cmds/h.o: protos/enterturn-g.h protos/str.h
cmds/i.o: protos/common.h protos/prototypes.h protos/cmds.h protos/cmds-g.h
cmds/i.o: protos/enterturn-g.h protos/str.h
cmds/j.o: protos/common.h protos/prototypes.h protos/cmds.h protos/cmds-g.h
cmds/j.o: protos/enterturn-g.h protos/str.h
cmds/k.o: protos/common.h protos/prototypes.h protos/cmds.h protos/cmds-g.h
cmds/k.o: protos/enterturn-g.h protos/str.h
cmds/l.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/l.o: protos/cmds-g.h protos/str.h
cmds/m.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/m.o: protos/cmds-g.h protos/options.h protos/str.h
cmds/n.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/n.o: protos/cmds-g.h protos/str.h
cmds/o.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/o.o: protos/cmds-g.h protos/options.h protos/str.h
cmds/p.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/p.o: protos/cmds-g.h protos/str.h
cmds/r.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/r.o: protos/cmds-g.h protos/options.h protos/str.h
cmds/s.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/s.o: protos/cmds-g.h protos/options.h protos/str.h
cmds/t.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/t.o: protos/cmds-g.h protos/str.h
cmds/u.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/u.o: protos/cmds-g.h protos/str.h
cmds/w.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/w.o: protos/cmds-g.h protos/str.h
cmds/x.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/x.o: protos/cmds-g.h protos/str.h
cmds/y.o: protos/common.h protos/prototypes.h protos/enterturn-g.h protos/cmds.h
cmds/y.o: protos/cmds-g.h protos/str.h
util/blindrc-to-ascii.o: protos/common.h protos/prototypes.h protos/b2a.h
util/ascii-to-blindrc.o: protos/common.h protos/prototypes.h protos/a2b.h
report/Battle.o: protos/common.h protos/prototypes.h protos/report-g.h
report/Battle.o: protos/report.h protos/misc-g.h protos/i-o.h protos/options.h
report/Battle.o: protos/global.h
report/Main.o: protos/common.h protos/prototypes.h protos/report-g.h
report/Main.o: protos/report.h protos/misc-g.h protos/exit.h protos/options.h
report/Main.o: protos/global.h protos/str.h
report/gm.o: protos/common.h protos/prototypes.h protos/report-g.h
report/gm.o: protos/report.h protos/options.h protos/global.h protos/gm.h
report/map.o: protos/common.h  protos/options.h protos/prototypes.h
report/map.o:  protos/report.h protos/report-g.h protos/global.h
report/planets.o: protos/common.h protos/misc-g.h protos/options.h 
report/planets.o: protos/global.h
report/planets.o: protos/prototypes.h protos/report-g.h protos/report.h
report/ships.o: protos/common.h  protos/global.h
report/ships.o: protos/prototypes.h protos/report-g.h protos/report.h
report/ships.o: protos/misc-g.h protos/options.h
report/status.o: protos/common.h  protos/global.h
report/status.o: protos/prototypes.h protos/report-g.h protos/report.h
report/status.o: protos/misc-g.h protos/options.h
# If .KEEP_STATE is ignored, try uncommenting this line out
#.o: Makefile
# DO NOT DELETE THIS LINE -- make depend depends on it.
