# Makefile for NFMT 

#
# Change these to configure 
#
BINDIR = /cs/public/bin
MANDIR = /cs/public/generic/man/man1
INSTALL = install -s 

#
# Change this for site compilation
#
#CC = gcc
#CC = cc -systype bsd43  # On mips machines.
CC = cc
CFLAGS = -O 


#
# Change these if not on standard UNIX.
#
NROFF-MAN=nroff -man
COLCRT=colcrt -
CP=cp
RM=rm -f
DIR=ls -l
TIME=time
NULL=/dev/null
STRIP=strip
WORDS=/usr/dict/words
UNFMT=tr ' ' '\012'
UNHYPHEN=sed 's/\([a-zA-Z]\)- \([a-zA-Z]\)/\1\2/g'
ZIPCREATE=zip 


#
# 
#
PRODUCT=nfmt
MANPAGE=$(PRODUCT).1
SRC=Makefile $(PRODUCT).c options.h config.h 
DOC=README $(MANPAGE) sample.inp sample.out 
OBJ=$(PRODUCT).o

all: $(PRODUCT)

$(PRODUCT): $(OBJ)
	$(CC) -o $(PRODUCT) $(OBJ)

$(PRODUCT).o: options.h config.h

install: $(BINDIR)/$(PRODUCT) $(MANDIR)/$(MANPAGE)

$(BINDIR)/$(PRODUCT): $(PRODUCT)
	$(INSTALL) $(PRODUCT) $(BINDIR)

$(MANDIR)/$(MANPAGE): $(MANPAGE)
	$(CP) $(MANPAGE) $(MANDIR)

doc: $(PRODUCT).doc

$(PRODUCT).doc: $(PRODUCT) $(MANPAGE) 
	$(NROFF-MAN) $(MANPAGE) | $(COLCRT) \
		| $(PRODUCT) | $(UNHYPHEN) | $(PRODUCT) > $(PRODUCT).doc


test: sample.inp sample.out $(PRODUCT) 
	$(PRODUCT) sample.inp | diff sample.out -  
	$(PRODUCT) $(WORDS) | $(UNFMT) | diff $(WORDS) -
	cat $(WORDS) |  tr '\012' _ $(WORDS) | $(PRODUCT) \
		| tr _ '\012' | sed '$$d' | diff $(WORDS) - 
	$(STRIP) $(PRODUCT)
	$(DIR) $(PRODUCT)
	$(TIME) $(PRODUCT) sample.inp > $(NULL) 

output: sample.inp $(PRODUCT)
	$(PRODUCT) sample.inp > sample.out 
	
	
shar: $(PRODUCT).shar

$(PRODUCT).shar: $(DOC) $(SRC)
	shar -p X $(DOC) $(SRC) > $(PRODUCT).shar 

zip: $(PRODUCT).zip

$(PRODUCT).zip: $(DOC) $(PRODUCT).doc $(SRC) 
	$(RM) $(PRODUCT.ZIP)
	$(ZIPCREATE) $(PRODUCT).zip $(DOC) $(PRODUCT).doc $(SRC)

$(PRODUCT).exe: $(PRODUCT).c options.h
	tcc -Z -N- -O -X $(PRODUCT).c
clean:
	$(RM) $(OBJ) $(PRODUCT) $(PRODUCT).doc
	$(RM) $(PRODUCT).zip $(PRODUCT).shar 
	$(RM) $(PRODUCT).exe $(PRODUCT).obj
	$(RM) core a.out *.bak
