# Where do you want the configuration file to live:

  INITFILE    = `pwd`/wbuild.cfg
  #INITFILE   = /usr/local/lib/wbuild.cfg

# Compiler flags, change as needed.
# SGI seems to need -ansiposix
# Add -DMISSING_STRDUP if you don't have the strdup() function
# (It is not available on some BSD Unix systems)
# Add -DUSE_VARARGS if you want to use varargs instead of stdarg
# Add -DNDEBUG to disables assert()
# Remove -Ae and -z if you're not on HP-UX

  CC	      = gcc -Wall
  #COMPFLAGS   = +O3 -Ae -z -DNDEBUG
  #COMPFLAGS   = -g -DUSE_VARARGS
  #COMPFLAGS   = -O -DNDEBUG -DMISSING_STRDUP
  #COMPFLAGS  = -O -DUSE_VARARGS
  COMPFLAGS  = -O

  CFLAGS      = -DINITFILE=\"$(INITFILE)\" $(COMPFLAGS)

# Where should the executable and the man page be installed?

  DEST	      = $(HOME)/bin
  MANDIR      =	$(HOME)/Man/man1

# If alloca() is not defined on your system, you might need
# this. Otherwise leave it commented out.

  ALLOCA      = alloca.c

# Choose lex or flex and yacc or bison

  #LEX	      = lex
  #LFLAGS     = 
  LEX	      = flex
  LFLAGS      = -s -I

  #YACC	      = yacc
  #YFLAGS     = -d# -t
  YACC	      = bison
  YFLAGS      = -d -y -t

  INSTALL     = cp

  LD	      = $(CC)
  LDFLAGS     = $(COMPFLAGS)

  LIBS	      =
  LINTLIBS    =

  LINTFLAGS   = -u $(CFLAGS)

  MAKEFILE    = Makefile

  EXTHDRS     =
  HDRS	      = debug.e\
		export.h\
		generate.e\
		util.e\
		y.tab.h

  PROGRAM     = wbuild

  SHELL	      = /bin/sh

  SRCS	      = $(ALLOCA)\
		debug.web\
		generate.web\
		parse.y\
		scan.l\
		types.web\
		util.web\
		wbuild.web

  OBJS	      = $(ALLOCA:.c=.o)\
		debug.o\
		generate.o\
		parse.o\
		scan.o\
		util.o\
		wbuild.o

  DOCS	      =	wbuildman.tex\
  		wbuild.html\
		$(SGMLDECL)\
		$(MAP1)\
		$(MAP2)\
		HTML+.dtd\
  		README\
  		bugs

  DISCARD     =	debug.tex debug.c debug.e\
  		generate.tex generate.c generate.e\
  		parse.c y.tab.h parse.output\
  		scan.c\
  		types.tex types.c types.e\
  		util.tex util.c util.e\
  		wbuild.tex wbuild.c wbuild.e\
  		wbuildtex.tex wbuildman.dvi wbuildman.aux\
  		wbuildman.log wbuild.1


SUFFIX	      =	.web:sC .ch:sC .c:sC .l:sC .y:sC .s:s .e:h .h:h
.SUFFIXES:	.e .dvi .tex .web .ch

.c.e:;		$(CC) $*.c $(CFLAGS) -E | cproto -e -f4 -v >$*.e
.web.e:;	touch -r $*.web $*.ch
		$(TANGLE) $* $*
		cexprt $(CFLAGS) $*
.tex.dvi:;	$(TEX) $*.tex
.ch.tex:;	$(WEAVE) $* $*
.web.tex:;	touch -r $*.web $*.ch
		$(WEAVE) $* $*
.web.dvi:;	touch -r $*.web $*.ch
		$(WEAVE) $* $*
		$(TEX) $*.tex
.ch.c:;		$(TANGLE) $* $*
.web.c:;	touch -r $*.web $*.ch
		$(TANGLE) $* $*
.web.o:;	touch -r $*.web $*.ch
		$(TANGLE) $* $*
		$(CC) $(CFLAGS) -c $<
.web.ch:;	touch -r $*.web $*.ch

TANGLE	      =	ceetangle
WEAVE	      = ceeweave
TEX	      = plftex

SGMLDECL      = HTML+.sgml
MAP1	      = HTML+2LaTeX.map
MAP2	      = HTML+2man.map
SGMLS	      = nsgmls
SGMLSASP      = sgmlsasp

# top-level targets:

all:		$(PROGRAM)

$(PROGRAM):     $(OBJS) $(LIBS) $(MAKEFILE)
		@echo "Linking $(PROGRAM) ..."
		@$(LD) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROGRAM)
		@echo "done"

clean:;		rm -f $(OBJS) core *~

clobber:;	rm -f $(OBJS) $(PROGRAM) core tags *~ $(DISCARD)

depend:		$(SRCS)
		@mkmf -f $(MAKEFILE) ROOT=$(ROOT)

install:	$(PROGRAM)
		@echo Installing $(PROGRAM) in $(DEST)
#		@-strip $(PROGRAM)
		@if [ $(DEST) != . ]; then \
		  (rm -f $(DEST)/$(PROGRAM); $(INSTALL) $(PROGRAM) $(DEST)); fi
		@echo Copying wbuild.cfg to $(INITFILE)
		@$(INSTALL) wbuild.cfg $(INITFILE)

lint:		$(LINTLIBS) $(SRCS) $(HDRS) $(EXTHDRS) $(SRCS:.web=.c)
		lint $(LINTFLAGS) $(LINTLIBS) $(SRCS) $(SRCS:.web=.c)

update:		$(DEST)/$(PROGRAM)

touch:;		@touch $(SRCS) $(HDRS)

$(DEST)/$(PROGRAM): $(SRCS) $(LIBS) $(HDRS) $(EXTHDRS)
		@$(MAKE) -f $(MAKEFILE) ROOT=$(ROOT) DEST=$(DEST) install

wbuildman.dvi:	wbuildman.tex wbuildtex.tex
		latex '\scrollmode \input wbuildman.tex'

wbuildtex.tex:	wbuild.html $(SGMLDECL) $(MAP1) HTML+.dtd
		SGML_PATH=LaTeX/%N:%N:%S $(SGMLS) $(SGMLDECL) wbuild.html \
		| $(SGMLSASP) $(MAP1) >$@

wbuild.1:	wbuild.html $(SGMLDECL) $(MAP2) HTML+.dtd
		SGML_PATH=Nroff/%N:%N:%S $(SGMLS) $(SGMLDECL) wbuild.html \
		| $(SGMLSASP) $(MAP2) >$@

install.man:	wbuild.1
		cp wbuild.1 $(MANDIR)

revision:;	ci -f$(REV) -m"new revision" -l -q $(SRCS) $(DOCS)

dont:		scan.c parse.c
		cp scan.c scan.c.nolex
		cp parse.c parse.c.noyacc

###
generate.o: types.c util.e debug.e
parse.o: types.c debug.e util.e
scan.o: types.c y.tab.h util.e
wbuild.o: types.c util.e generate.e
