cleanup Makefile and add complete man PDF generation

This commit is contained in:
Cary R 2026-02-08 22:21:26 -08:00
parent 4cc6ae35dd
commit a838d5143d
4 changed files with 26 additions and 17 deletions

View File

@ -89,6 +89,7 @@ LEX = @LEX@
YACC = @YACC@
MAN = @MAN@
PS2PDF = @PS2PDF@
GROFF = @GROFF@
GIT = @GIT@
ifeq (@srcdir@,.)
@ -275,17 +276,24 @@ lexor.cc: $(srcdir)/lexor.lex
lexor_keyword.o: lexor_keyword.cc parse.h
lexor_keyword.cc: $(srcdir)/lexor_keyword.gperf
gperf -o -i 7 -C -k 1-4,6,9,$$ -H keyword_hash -N check_identifier -t $(srcdir)/lexor_keyword.gperf > lexor_keyword.cc || (rm -f lexor_keyword.cc ; false)
gperf -o -i 7 -C -k 1-4,6,9,$$ -H keyword_hash -N check_identifier -t $< > $@ || (rm -f $@ ; false)
iverilog-vpi.man: $(srcdir)/iverilog-vpi.man.in version.exe
./version.exe `head -1 $(srcdir)/iverilog-vpi.man.in`'\n' > $@
tail -n +2 $(srcdir)/iverilog-vpi.man.in >> $@
./version.exe `head -1 $<`'\n' > $@
tail -n +2 $< >> $@
iverilog-vpi.ps: iverilog-vpi.man
$(MAN) -t ./iverilog-vpi.man > iverilog-vpi.ps
iverilog-vpi.ps: ./iverilog-vpi.man
$(MAN) -t $< > $@
iverilog-vpi.pdf: iverilog-vpi.ps
$(PS2PDF) iverilog-vpi.ps iverilog-vpi.pdf
$(PS2PDF) $< $@
iverilog_man.ps: driver/iverilog.man vvp/vvp.man iverilog-vpi.man
$(GROFF) -man -rC1 -rD1 -T ps $^ > $@
iverilog_man.pdf: iverilog_man.ps ./version.exe
$(PS2PDF) $< $@
cp $@ iverilog_man_`./version.exe %M_%n`.pdf
# For VERSION_TAG in driver/main.c, first try git-describe, then look for a
# release_tag.h file in the source tree (included in snapshots and releases),

View File

@ -26,6 +26,7 @@ AC_CHECK_TOOL(WINDRES,windres,false)
AC_CHECK_PROGS(XGPERF,gperf,none)
AC_CHECK_PROGS(MAN,man,none)
AC_CHECK_PROGS(PS2PDF,ps2pdf,none)
AC_CHECK_PROGS(GROFF,groff,none)
AC_CHECK_PROGS(GIT,git,none)
if test "$XGPERF" = "none"
then

View File

@ -103,14 +103,14 @@ main.o: main.c globals.h $(srcdir)/../version_base.h ../version_tag.h Makefile
cflexor.o: cflexor.c cfparse.h
iverilog.man: $(srcdir)/iverilog.man.in ../version.exe
../version.exe `head -1 $(srcdir)/iverilog.man.in`'\n' > $@
tail -n +2 $(srcdir)/iverilog.man.in >> $@
../version.exe `head -1 $<`'\n' > $@
tail -n +2 $< >> $@
iverilog.ps: iverilog.man
$(MAN) -t ./iverilog.man > iverilog.ps
iverilog.ps: ./iverilog.man
$(MAN) -t $< > $@
iverilog.pdf: iverilog.ps
$(PS2PDF) iverilog.ps iverilog.pdf
$(PS2PDF) $< $@
ifeq (@MINGW32@,yes)
ifeq ($(MAN),none)

View File

@ -183,17 +183,17 @@ parse%cc parse%h: $(srcdir)/parse%y
$(YACC) --verbose -t --defines=parse.h -o parse.cc $<
lexor.cc: $(srcdir)/lexor.lex
$(LEX) -s -olexor.cc $(srcdir)/lexor.lex
$(LEX) -s -o$@ $<
vvp.man: $(srcdir)/vvp.man.in ../version.exe
../version.exe `head -1 $(srcdir)/vvp.man.in`'\n' > $@
tail -n +2 $(srcdir)/vvp.man.in >> $@
../version.exe `head -1 $<`'\n' > $@
tail -n +2 $< >> $@
vvp.ps: vvp.man
$(MAN) -t ./vvp.man > vvp.ps
vvp.ps: ./vvp.man
$(MAN) -t $< > $@
vvp.pdf: vvp.ps
$(PS2PDF) vvp.ps vvp.pdf
$(PS2PDF) $< $@
ifeq (@MINGW32@,yes)
ifeq ($(MAN),none)