# ------------------------------------------------------------------------
# LAST EDIT: Sat Feb 25 23:06:46 1995 by Christian Krone (gutamil.v12.de!krischan) 
# ------------------------------------------------------------------------
# $Id: Makefile,v 1.12 1995/02/18 19:32:44 krischan Exp krischan $
# ------------------------------------------------------------------------

# ------------------------------------------------------------------------
# Um welche Version handelt es sich denn gerade?
# ------------------------------------------------------------------------
PAT_VERS = 1.7

# ------------------------------------------------------------------------
# In welchen Pfad soll das ausfuehrbare Programm und wohin die Library?
# ------------------------------------------------------------------------
 BIN_DIR = /usr/bin/X11
 LIB_DIR = /usr/lib/X11/patience-${PAT_VERS}

# ------------------------------------------------------------------------
# Maschinen- und installationsabhaengiger Teil des Makefiles, dessen
# Variablendefinitionen evtl. den Gegebenheiten der aktuellen Umgebung
# bzw. den persoenlichen Praeferenzen angepasst werden muessen.
# Die genauere Bedeutung der Variablen steht im Handbuch, Abschnitt 5.
# ------------------------------------------------------------------------
     WISH = /usr/bin/wish

   TKLIBS = -ltk -ltcl -lm -lX11
   CFLAGS = -O -I/usr/include/tcl
       CC = gcc

# ------------------------------------------------------------------------
# Im nun folgenden Teil des Makefiles sollten eigentlich keine Aenderungen
# mehr noetig sein, um die Patience zu portieren...
# ------------------------------------------------------------------------
# Copyright (c) 1995 Christian Krone, Varziner Str. 12, D-12161 Berlin
# All rights reserved.
# ------------------------------------------------------------------------
# Permission is hereby granted, without written agreement and without
# license or royalty fees, to use, copy, modify, and distribute this
# software and its documentation for any purpose, provided that the
# above copyright notice and the following two paragraphs appear in
# all copies of this software.
# ------------------------------------------------------------------------
# IN NO EVENT SHALL CHRISTIAN KRONE BE LIABLE TO ANY PARTY FOR DIRECT,
# INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
# OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF CHRISTIAN
# KRONE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ------------------------------------------------------------------------
# CHRISTIAN KRONE SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT
# NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN
# "AS IS" BASIS, AND CHRISTIAN KRONE HAS NO OBLIGATION TO PROVIDE
# MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
# ------------------------------------------------------------------------

 SRC = patience.nw
 SPR = spiel/canfield.spr spiel/klHarfe.spr spiel/standard.spr \
       spiel/streit.spr   spiel/spider.spr
 TCL = patience.tcl patsh.tcl tclIndex
 TXT = app-default text/deutsch text/english
 DOC = manual/pat-deutsch.ps.gz manual/pat-english.ps.gz \
       manual/pat-deutsch.tty   manual/pat-english.tty

 FILES = patience-${PAT_VERS}/patience.tcl		\
	 patience-${PAT_VERS}/patsh.tcl			\
	 patience-${PAT_VERS}/patsh.c			\
	 patience-${PAT_VERS}/tclIndex			\
	 patience-${PAT_VERS}/spiel			\
	 patience-${PAT_VERS}/text			\
	 patience-${PAT_VERS}/app-default		\
	 patience-${PAT_VERS}/bitmaps/icon		\
	 patience-${PAT_VERS}/bitmaps/normal		\
	 patience-${PAT_VERS}/Makefile			\
	 patience-${PAT_VERS}/README			\
	 patience-${PAT_VERS}/LIESMICH			\
	 patience-${PAT_VERS}/INSTALL-deutsch		\
	 patience-${PAT_VERS}/INSTALL-english		\
	 patience-${PAT_VERS}/patience.nw		\
	 patience-${PAT_VERS}/manual/pat-deutsch.tty	\
	 patience-${PAT_VERS}/manual/pat-english.tty

 FONTS = patience-${PAT_VERS}/bitmaps/sw		\
	 patience-${PAT_VERS}/bitmaps/gross		\
	 patience-${PAT_VERS}/bitmaps/goyette		\
	 patience-${PAT_VERS}/bitmaps/sager		\
	 patience-${PAT_VERS}/bitmaps/traub

 MANS  = patience-${PAT_VERS}/manual/pat-deutsch.ps.gz	\
	 patience-${PAT_VERS}/manual/pat-english.ps.gz

.SUFFIXES: .nw .tex .dvi .tcl .spr .ps .ps.gz .tty

patience : patience.tcl patsh.tcl tclIndex
	@echo "Erzeugen der ausfuehrbaren Datei patience..."
	@echo "#!${WISH} -f"			>  patience
	@echo "set patienceVersion ${PAT_VERS}" >> patience
	@echo "set patiencePath \"${LIB_DIR}\"" >> patience
	@cat  patience.tcl			>> patience
	@chmod a+x patience

patc : patience.tcl patsh
	@echo "Erzeugen der ausfuehrbaren Datei patc..."
	@echo "#!${LIB_DIR}/patsh -f"		>  patc
	@echo "set patienceVersion ${PAT_VERS}" >> patc
	@echo "set patiencePath \"${LIB_DIR}\"" >> patc
	@cat  patience.tcl			>> patc
	@chmod a+x patc

install : patience
	mv patience ${BIN_DIR}

installc : patc
	mv patc ${BIN_DIR}/patience

auslieferung : tclDateien regeln texte doc

disk : auslieferung
	@mv Makefile Makefile.org
	@sed -e '/^ ..._DIR/d' -e 's/^#\(...\)_DIR/ \1_DIR/' \
		 < Makefile.org > Makefile
	@tar cvfz /dev/fd0 -C .. ${FILES} ${FONTS}
	@mv Makefile.org Makefile

tarfile : auslieferung
	@mv Makefile Makefile.org
	@sed -e '/^ ..._DIR/d' -e 's/^#\(...\)_DIR/ \1_DIR/' \
		 < Makefile.org > Makefile
	@tar cvfz /tmp/patience-${PAT_VERS}.tgz -C .. ${FILES}
	@mv Makefile.org Makefile

fontfile :
	@tar cvfz /tmp/patiencecards-${PAT_VERS}.tgz -C .. ${FONTS}

manfile :
	@tar cvf /tmp/patienceman-${PAT_VERS}.tar -C .. ${MANS}

tclDateien : ${TCL}
patience.tcl : patience.nw
	notangle -Rpatience.tcl patience.nw > patience.tcl
tclIndex     : patience.nw
	notangle -RtclIndex     patience.nw > tclIndex
patsh.tcl    : patience.nw
	notangle -Rpatsh.tcl    patience.nw > patsh.tcl
patsh.c      : patience.nw
	notangle -Rpatsh.c      patience.nw > patsh.c

regeln : ${SPR}
spiel/standard.spr : patience.nw
	notangle -Rstandard.spr patience.nw > spiel/standard.spr
spiel/canfield.spr : patience.nw
	notangle -Rcanfield.spr patience.nw > spiel/canfield.spr
spiel/klHarfe.spr  : patience.nw
	notangle -RklHarfe.spr  patience.nw > spiel/klHarfe.spr
spiel/streit.spr   : patience.nw
	notangle -Rstreit.spr   patience.nw > spiel/streit.spr
spiel/spider.spr   : patience.nw
	notangle -Rspider.spr   patience.nw > spiel/spider.spr

texte : ${TXT}
text/deutsch	   : patience.nw
	notangle -Rtext/deutsch patience.nw > text/deutsch
text/english	   : patience.nw
	notangle -Rtext/english patience.nw > text/english
app-default	   : patience.nw
	notangle -Rapp-default  patience.nw > app-default

doc : ${DOC}

src_doc/patience.tex: patience.nw
	noweave -x patience.nw > src_doc/patience.tex

patsh : patsh.o
	${CC} patsh.o -o patsh ${TKLIBS}

clean : 
	@echo "Loeschen der z.Z. nicht bearbeiteten Quellen..."
	@for src in ${SRC}; do [ ! -w $$src ] && rm -f $$src; done; :
	@echo "Loeschen der z.Z. nicht bearbeiteten Spielregeln..."
	@for spr in ${SPR}; do [ ! -w $$spr ] && rm -f $$spr; done; :
	@echo "Loeschen der erzeugten Textdateien..."
	@rm -f ${TXT}
	@echo "Loeschen der erzeugten Tcl-Dateien..."
	@rm -f ${TCL}
	@echo "Loeschen des ausfuehrbaren Programms..."
	@rm -f patience patc patsh patsh.o
	@echo "Loeschen der erzeugten Dokumentationen..."
	@rm -f ${DOC}
	@echo "Loeschen aller sonstigen Zwischendateien..."
	@find . -print | egrep ".dvi|.aux|.log" | xargs rm -f

.tex.dvi:
	@echo "Rerun to get cross-references right" > $*.log
	@-while tail -15 $*.log |					\
              grep "Rerun to get cross-references right" > /dev/null;	\
        do (cd `dirname $*`; latex `basename $*`); done

.dvi.ps :
	@cd `dirname $*`; dvips -o `basename $*.ps` `basename $*.dvi`
.dvi.tty :
	@manual/dvi2help $*
.ps.ps.gz :
	@gzip -f $*.ps
