#       LIB is directory for object code for 3 style programs
#       if defined, CATCH is for collecting data from style
#       if defined, NOMIN is for collecting nominalizations from style
#       if you don't want them, clear the definitions of CATCH or NOMIN
#
CFLAGS = -O
I      = /usr/include
NOMIN  =
CATCH  =
LIB    = /usr/lib/style
# NOMIN  = -DNOMIN=\"/usr/lib/style/style.save.nom\"
# CATCH  = -DCATCH=\"/usr/lib/style/style.save\"

style:  style1 style2 style3


style1: .o/words.o .o/nhash.o .o/dict.o .o/ydict.o
	cc .o/words.o .o/nhash.o .o/dict.o .o/ydict.o -ll -n -o style1

.o/words.o:     words.c         $I/stdio.h names.h
	cd .o; cc $(CFLAGS) -c -TR2 -DR5 ../words.c
words.c:        words.l
	lex -t -n words.l > words.c
.o/nhash.o:     nhash.c         $I/stdio.h
	cd .o; cc $(CFLAGS) -c ../nhash.c
.o/dict.o:      dict.c
	cd .o; cc $(CFLAGS) -c ../dict.c
.o/ydict.o:     ydict.c
	cd .o; cc $(CFLAGS) -c ../ydict.c


style2:  .o/end.o .o/ehash.o .o/edict.o
	cc .o/end.o .o/ehash.o .o/edict.o -ll -n -o style2

.o/end.o:       end.c           $I/stdio.h names.h
	cd .o; cc $(CFLAGS) -c -TR2 -DR2 ../end.c
end.c:          end.l
	lex -t end.l > end.c
.o/ehash.o:     ehash.c         $I/stdio.h
	cd .o; cc $(CFLAGS) -c ../ehash.c
.o/edict.o:     edict.c
	cd .o; cc $(CFLAGS) -c ../edict.c


style3: .o/part.o .o/pscan.o .o/outp.o
	cc .o/part.o .o/pscan.o .o/outp.o -ll -n -o style3

.o/part.o:      part.c          $I/stdio.h style.h names.h conp.h
	cd .o; cc $(CFLAGS) -c -TR2 $(CATCH) $(NOMIN) ../part.c
part.c:         part.l
	lex -t part.l > part.c
.o/pscan.o:     pscan.c         names.h conp.h
	cd .o; cc $(CFLAGS) -c -TR2 ../pscan.c
.o/outp.o:      outp.c          $I/stdio.h style.h names.h conp.h
	cd .o; cc $(CFLAGS) -c -TR2 $(NOMIN) ../outp.c


$(LIB)/style:   $(LIB)/style1 $(LIB)/style2 $(LIB)/style3
$(LIB)/style1: style1
	/etc/instcmd style1 $(LIB)/style1
$(LIB)/style2: style2
	/etc/instcmd style2 $(LIB)/style2
$(LIB)/style3: style3
	/etc/instcmd style3 $(LIB)/style3
