 #
##                      Softwarepraktikum iMaze
##                              1993/94
##                Joerg Czeranski    Hans-Ulrich Kiel
##
## Datei: Makefile
##
## SccsID:
##  @(#)Makefile	1.95 17 Dec 1994
#

#DEFINES=
BINDIR=..
COPT=-O
#CC=

#
# moegliche Defines:
#
# aus baulab.c:        -DNORMALFARBE=5
# aus bewegung.c:      -DSCHRITT='(RASPT/8)' -DSCHUSSSCHRITT='(RASPT/4)'
#                      -DSPIELER_TOT_ZEIT=30 -DMIN_GEGNER_NAEHE=5
#                      -DMIN_SCHUSS_NAEHE=3
# aus global.h:        -DTRIGANZ=1024
# aus grafik.h:        -DSICHTW=16
# aus ip_netz.c:       -DDEFAULT_SERVER='"imaze.rz.tu-clausthal.de"'
#                      -DDEFAULT_PORT=5323
# aus ip_server.c:     -DDEFAULT_PORT=5323
# aus netzwerk.c:      -DSPIEL_VERLASSEN_TIMEOUT=3
# aus session.c:       -DZEITTAKT=90
# aus system.c:        -DSYSV_SIGNAL
# aus X_grafik.h:      -DAUGENECKENANZ=32 -DMUNDECKENANZ=32 -DKREUZ_INRAD=4
#                      -DKREUZ_AUSRAD=10
# aus xv_ereignisse.c: -DSOUND -DSUN_AUDIOIO_H -DSOUND_NICHT_MISCHEN
#                      -DDEFAULT_SOUND_DIR=.
# aus xv_tasten.c:     -DJOYSTICK -DDEFAULT_JOYSTICK_DEVICE='"/dev/js0"'
#

unbekannt:
	@echo "use 'make SYSTEM' with SYSTEM one of:"
	@echo ""
	@echo "  sunos4 (SunOS 4.1.3, OpenWindows)"
	@echo "  sunos5 (SunOS 5.3, OpenWindows)"
	@echo "  linux  (Linux Slackware 2.01, OpenWindows)"
	@echo "  linux-joystick (Linux Slackware 2.01, OpenWindows, Joystick)"
	@echo "  ultrix (Ultrix 4.3A, XView)"
	@echo "  hpux   (HP-UX 9.05, XView)"
	@echo "  osf1   (DEC OSF/1 2.0, no XView client)"
	@echo "  aix    (AIX 3.2.5, no XView client)"

sunos4:
	$(MAKE) \
	  GRAF=XV \
	  SYSDEFS='-DSOUND -DSUN_AUDIOIO_H' \
	  all

sunos5:
	$(MAKE) \
	  GRAF=XV \
	  LIBS='-lsocket -lnsl -R$$(OPENWINHOME)/lib' \
	  SYSDEFS='-DSYSV_SIGNAL -DSOUND' \
	  all

linux:
	$(MAKE) \
	  GRAF=XV \
	  SYSDEFS='-DSYSV_SIGNAL -DSOUND -DSOUND_NICHT_MISCHEN' \
	  all

linux-joystick:
	$(MAKE) \
	  GRAF=XV \
	  SYSDEFS='-DSYSV_SIGNAL -DSOUND -DSOUND_NICHT_MISCHEN -DJOYSTICK' \
	  all

ultrix:
	$(MAKE) \
	  GRAFLIBS='$$(XVLIBS)' \
	  GRAFINCLUDES='$$(XVINCLUDES)' \
	  GRAFOBJS='$$(XVOBJS)' \
	  all

hpux:
	$(MAKE) \
	  GRAFLIBS='$$(XVLIBS)' \
	  GRAFINCLUDES='$$(XVINCLUDES)' \
	  GRAFOBJS='$$(XVOBJS)' \
	  LIBS='-L/usr/lib/X11R5 -lBSD' \
	  SYSDEFS='-I/usr/include/X11R5' \
	  all

osf1:
	$(MAKE) \
	  EXECS='$$(NONGRAFEXECS)' \
	  all

aix:
	$(MAKE) \
	  EXECS='$$(NONGRAFEXECS) \
	  all

###########################################################################

LD=$(CC)
INSTALL=install -s -m 755

XVLIBS=-L$(OPENWINHOME)/lib -lxview -lolgx -lX11
XVINCLUDES=-I$(OPENWINHOME)/include

GRAFLIBS=$($(GRAF)LIBS)
GRAFINCLUDES=$($(GRAF)INCLUDES)
GRAFOBJS=$($(GRAF)OBJS)

GRAF=NONE

LDFLAGS=
CFLAGS=$(GRAFINCLUDES) $(COPT) $(DEFINES) $(SYSDEFS)

# bis hier Optionen eintragen
###########################################################################

CLIENTOBJS=client.o rechne3d.o trigtab.o speicher.o \
	rechne_karte.o ip_netz.o netzwerk.o global.o system.o
XVOBJS=xv_fenster.o X_farben.o xv_tasten.o X_grafik.o xv_ereignisse.o
GENTRIGOBJS=gentrigtab.o global.o
SERVEROBJS=server.o ip_server.o speicher.o bewegung.o trigtab.o global.o \
	system.o init_spieler.o session.o
NINJAOBJS=ip_netz.o netzwerk.o ninja.o speicher.o global.o system.o
GENLABOBJS=baulab.o speicher.o global.o
OBJS=$(CLIENTOBJS) $(XVOBJS) $(GENTRIGOBJS) $(SERVEROBJS) $(NINJAOBJS) \
	$(GENLABOBJS)

SRCS=baulab.c bewegung.c client.c xv_fenster.c X_farben.c rechne3d.c \
	gentrigtab.c speicher.c xv_tasten.c rechne_karte.c X_grafik.c \
	xv_ereignisse.c ip_netz.c netzwerk.c server.c ninja.c global.c \
	system.c ip_server.c init_spieler.c session.c

HEADERS=X_farben.h X_grafik.h ereignisse.h farben.h global.h grafik.h \
	labyrinth.h signale.h spieler.h xv_einaus.h client.h rechne.h \
	speicher.h fehler.h xv_icon.h xv_icon_maske.h protokoll.h netzwerk.h \
	system.h spiel.h server_netz.h bewegung.h server.h init_spieler.h \
	einaus.h

NONGRAFEXECS=imazesrv ninja genlab

EXECS=imaze $(NONGRAFEXECS)

###########################################################################
# ab hier rules

default: all

all: 	$(EXECS)

dist:	$(SRCS) $(HEADERS) Makefile
	rm -f imaze.tar.Z
	tar cf imaze.tar $(SRCS) $(HEADERS) Makefile
	compress imaze.tar

install: $(EXECS)
	$(INSTALL) $(EXECS) $(BINDIR)

clean:
	rm -f $(OBJS) $(EXECS) gentrigtab trigtab.c core

mostly-clean:
	rm -f $(OBJS) gentrigtab trigtab.c core

imaze: $(CLIENTOBJS) $(GRAFOBJS)
	$(LD) $(LDFLAGS) $(CLIENTOBJS) $(GRAFOBJS) $(LIBS) $(GRAFLIBS) -o imaze

imazesrv: $(SERVEROBJS)
	$(LD) $(LDFLAGS) $(SERVEROBJS) $(LIBS) -o imazesrv

ninja: $(NINJAOBJS)
	$(LD) $(LDFLAGS) $(NINJAOBJS) $(LIBS) -o ninja

genlab: $(GENLABOBJS)
	$(LD) $(LDFLAGS) $(GENLABOBJS) $(LIBS) -o genlab

gentrigtab: $(GENTRIGOBJS)
	$(LD) $(LDFLAGS) $(GENTRIGOBJS) $(LIBS) -lm -o gentrigtab

trigtab.c: gentrigtab
	./gentrigtab > trigtab.c

X_farben.o: farben.h X_farben.h X_farben.c

X_grafik.o: global.h speicher.h farben.h grafik.h fehler.h X_farben.h \
	X_grafik.h X_grafik.c

baulab.o: global.h speicher.h labyrinth.h farben.h baulab.c

bewegung.o: global.h speicher.h labyrinth.h spieler.h \
	signale.h ereignisse.h protokoll.h bewegung.h server.h bewegung.c

client.o: global.h fehler.h speicher.h labyrinth.h client.h spieler.h \
	grafik.h signale.h ereignisse.h einaus.h rechne.h netzwerk.h spiel.h \
	client.c

gentrigtab.o: global.h gentrigtab.c

global.o: global.h global.c

init_spieler.o: global.h speicher.h labyrinth.h protokoll.h server_netz.h \
	init_spieler.h init_spieler.c

ip_netz.o: fehler.h speicher.h netzwerk.h system.h ip_netz.c

ip_server.o: speicher.h server_netz.h system.h ip_server.c

netzwerk.o: global.h fehler.h speicher.h labyrinth.h spieler.h signale.h \
	ereignisse.h protokoll.h netzwerk.h spiel.h system.h netzwerk.c

ninja.o: global.h speicher.h labyrinth.h farben.h spieler.h signale.h \
	ereignisse.h netzwerk.h spiel.h system.h ninja.c

rechne3d.o: global.h speicher.h labyrinth.h farben.h spieler.h grafik.h \
	rechne.h rechne3d.c

rechne_karte.o: global.h speicher.h labyrinth.h farben.h spieler.h \
	grafik.h rechne.h rechne_karte.c

server.o: global.h fehler.h speicher.h labyrinth.h server_netz.h server.h \
	init_spieler.h server.c

session.o: global.h speicher.h spieler.h protokoll.h system.h \
	server_netz.h bewegung.h server.h session.c

speicher.o: global.h fehler.h speicher.h speicher.c

system.o: speicher.h system.c

trigtab.o: global.h trigtab.c

xv_ereignisse.o: signale.h ereignisse.h einaus.h xv_einaus.h xv_ereignisse.c

xv_fenster.o: speicher.h grafik.h fehler.h client.h system.h X_grafik.h \
	xv_einaus.h xv_icon.h xv_icon_maske.h xv_fenster.c

xv_tasten.o: signale.h ereignisse.h einaus.h grafik.h xv_einaus.h \
	xv_tasten.c

