dthelp/parser/pass1: get it to build

So this is going to be tricky/painful getting this parser fully
operational.  It's pretty hairy with various interdependencies and
generated code.

It's rather complicated how each sub dir depends on the previous one.
Also, the parser subdir has dependencies on the helptag subdir, and
vice-versa, so some hackery was needed to get that to work.

Due to the wierd interdepencencies between helptag and parser,
we disable parallel builds there.

This is some really horrible code and design - not surprising since it
dates to 1989.

I think it should just be removed -- who can maintain or refactor this
code?

Also, dthelp_htag1 is now built in pass1/parser/, not in
pass1/helptag/ as it used to be.
This commit is contained in:
Jon Trulson
2020-04-15 11:34:01 -06:00
parent 349802ddd3
commit 6da55905ec
10 changed files with 135 additions and 118 deletions

View File

@@ -2,10 +2,6 @@ MAINTAINERCLEANFILES = Makefile.in
noinst_PROGRAMS = eltdef
ARCCMD = arc u
UNARCCMD = arc x
ARCDELCMD = arc d
HELPTAG = ..
HELPTAGSRC = $(HELPTAG)/helptag
HELPPARSERSRC = $(HELPTAG)/parser
@@ -17,15 +13,7 @@ HELPUTILLIB = $(HELPTAG)/util/libutil.a
HELPIFFILE = $(HELPTAGSRC)/help.if
HELPTSSFILE = $(HELPTAGSRC)/htag.tss
eltdef_LDADD = -l$(HELPUTILLIB)
if HPUX
eltdef_LDFLAGS = -Wl,-a archive
endif
if SOLARIS
.NO_PARALLEL:
endif
eltdef_LDADD = $(HELPUTILLIB)
eltdef_CFLAGS = -I$(HELPUTILSRC) -I$(HELPBUILDSRC)
@@ -44,28 +32,22 @@ CTRASH = delim.dat error
ETRASH = estring.h error
TRASH = delim.dat estring.h error
PRODUCTS = $(CPRODS) $(EPRODS)
BUILT_SOURCES = $(CPRODS) $(EPRODS)
CLEANFILES = $(BUILT_SOURCES) $(TRASH) CDONE EDONE
all:: $(PRODUCTS)
$(CPRODS): CDONE
$(EPRODS): eltdef $(HELPIFFILE) $(HELPTSSFILE)
$(EPRODS): EDONE
EDONE: eltdef $(HELPIFFILE) $(HELPTSSFILE)
$(RM) $(EPRODS) $(ETRASH)
./eltdef $(HELPIFFILE)
touch EDONE
$(CPRODS): $(HELPUTILSRC)/context $(HELPTAGSRC)/delim.elt context.dat
CDONE: $(HELPUTILSRC)/context $(HELPTAGSRC)/delim.elt context.dat
$(RM) $(CPRODS) $(CTRASH)
$(CP) $(HELPTAGSRC)/delim.elt delim.dat # appl.-specific delim.dat
$(HELPUTILSRC)/context
touch CDONE
$(HELPUTILSRC)/context:
cd $(HELPUTILSRC); make context
arc package :
if exist util.arc $(CP) build.arc old.arc
$(ARCCMD) util.arc *.c *.h makefile
unarc dearc :
$(UNARCCMD) util.arc
clean::
$(RM) $(PRODUCTS) $(TRASH)