#
# @(#) Makefile - makefile for Rail package
#
# 07-Feb-1991 L. Rooijakkers	added 'tar' target
# 12-Feb-1991 L. Rooijakkers	added 'patch' target
# 23-Sep-1992 C. Langhans       made this file from makefile

BINDIR=bin
TEXDIR=tex
MANDIR=man
MANSUFFIX=l
OBJS=rail.o gram.o lex.o

CC      = dcc 
#CFLAGS  = -v -DYYDEBUG -mC -O "" -T T:
# -DYYDEBUG does not work with DICE
CFLAGS  = -v  -mC -O "" -T T:

YACC    = bison
YFLAGS  = -y

LEX     = flex
LFLAGS  =

CP      = copy
RM      = delete
MV      = move

all: rail

install: rail rail.sty rail.man
	$(CP) rail $(BINDIR)
	$(CP) rail.sty $(TEXDIR)
	$(CP) rail.man $(MANDIR)/man$(MANSUFFIX)/rail.$(MANSUFFIX)

clean:
	-$(RM)  $(OBJS) rail gram.[ch] lex.[cs] lex.yy.c y.tab.[ch] y.output a.out core PATCH
	-$(RM)  *.log *.aux *.rai *.rao *.dvi rail.txt SHAR.* TAR MANIFEST.BAK

lint: rail.c gram.c lex.c gram.h
	lint rail.c gram.c lex.c

shar:
	makekit -m -n SHAR.

tar:
	tar cvf TAR `sed -n '3,$$s/^[ 	]*\([^ 	]*\).*$$/\1/p' MANIFEST`

lha:    
        -$(RM) /rail.lha
        lha a /rail.lha /rail
        lha v /rail.lha 

patch:
	diff -bc old . | sed '/^diff/d' >PATCH

doc:	rail.dvi rail.txt

$(OBJS): rail.h


lex.o: lex.c
       $(CC) $(CFLAGS) -c -o lex.o lex.c
        
rail.o : rail.c patchlevel.h rail.h gram.h
       $(CC) $(CFLAGS) -c -o rail.o rail.c

gram.o: gram.c rail.h config.h
       $(CC) $(CFLAGS) -c -o gram.o gram.c 
 
gram.c gram.h: y.tab.c y.tab.h
	$(CP) y.tab.c gram.c
	$(CP) y.tab.h gram.h

lex.c: lex.yy.c
        $(CP) lex.yy.c lex.c

lex.yy.c:  lex.l
        $(LEX) lex.l
        
y.tab.c y.tab.h y.output: gram.y
	$(YACC) $(YFLAGS) -dv gram.y


rail: $(OBJS)
	$(CC) $(CFLAGS) $(OBJS) -o rail

rail.rai: rail.tex
	latex rail

rail.rao: rail rail.rai
	rail rail

rail.dvi: rail.rao rail.tex
	latex rail
	latex rail

rail.txt: rail.man
	nroff -man rail.man >rail.txt
