From c6e269febbc946a54ed9dbbb2dc70feba6017607 Mon Sep 17 00:00:00 2001
From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
Date: Fri, 20 Jan 2023 15:39:55 -0800
Subject: [PATCH 18/50] gprofng: PR29521 [docs] man pages are not in the
 release tarball

gprofng/ChangeLog
2023-01-20  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

	PR gprofng/29521
	* configure.ac: Check if $MAKEINFO and $HELP2MAN are missing.
	* Makefile.am: Build doc if $MAKEINFO exists.
	* doc/gprofng.texi: Update documentation for gprofng.
	* doc/Makefile.am: Build gprofng.1.
	* src/Makefile.am: Move the build of gprofng.1 to doc/Makefile.am.
	* configure: Rebuild.
	* Makefile.in: Rebuild.
	* doc/Makefile.in: Rebuild.
	* src/Makefile.in: Rebuild.
---
 gprofng/Makefile.am      |   2 +-
 gprofng/Makefile.in      |   2 +-
 gprofng/configure        |  79 +++++++++++++++---
 gprofng/configure.ac     |  21 +++--
 gprofng/doc/Makefile.am  |  24 +++++-
 gprofng/doc/Makefile.in  |  93 ++++++++++++++++++---
 gprofng/doc/gprofng.texi | 169 +++++++++++++++++++++++++++++++++++++++
 gprofng/src/Makefile.am  |   8 +-
 gprofng/src/Makefile.in  |   8 +-
 9 files changed, 364 insertions(+), 42 deletions(-)

--- a/gprofng/Makefile.am
+++ b/gprofng/Makefile.am
@@ -23,7 +23,7 @@ AUTOMAKE_OPTIONS = dejagnu foreign
 if BUILD_COLLECTOR
     COLLECTOR_SUBDIRS = libcollector
 endif
-if BUILD_MAN
+if BUILD_DOC
     DOC_SUBDIR = doc
 endif
 if BUILD_SRC
--- a/gprofng/Makefile.in
+++ b/gprofng/Makefile.in
@@ -381,7 +381,7 @@ zlibinc = @zlibinc@
 ACLOCAL_AMFLAGS = -I . -I .. 
 AUTOMAKE_OPTIONS = dejagnu foreign
 @BUILD_COLLECTOR_TRUE@COLLECTOR_SUBDIRS = libcollector
-@BUILD_MAN_TRUE@DOC_SUBDIR = doc
+@BUILD_DOC_TRUE@DOC_SUBDIR = doc
 @BUILD_SRC_TRUE@SRC_SUBDIRS = src gp-display-html $(DOC_SUBDIR)
 SUBDIRS = $(COLLECTOR_SUBDIRS) $(SRC_SUBDIRS)
 DIST_SUBDIRS = libcollector src gp-display-html $(DOC_SUBDIR)
--- a/gprofng/configure
+++ b/gprofng/configure
@@ -639,6 +639,8 @@ GPROFNG_CPPFLAGS
 GPROFNG_NO_FORMAT_TRUNCATION_CFLAGS
 GPROFNG_CFLAGS
 LD_NO_AS_NEEDED
+BUILD_DOC_FALSE
+BUILD_DOC_TRUE
 BUILD_MAN_FALSE
 BUILD_MAN_TRUE
 HELP2MAN
@@ -12221,7 +12223,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12224 "configure"
+#line 12226 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12327,7 +12329,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12330 "configure"
+#line 12332 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -16737,9 +16739,58 @@ fi
 
 # Generate manpages, if possible.
 build_man=false
+build_doc=false
 if test $cross_compiling = no; then
+  for ac_prog in help2man
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_HELP2MAN+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$HELP2MAN"; then
+  ac_cv_prog_HELP2MAN="$HELP2MAN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_HELP2MAN="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+HELP2MAN=$ac_cv_prog_HELP2MAN
+if test -n "$HELP2MAN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HELP2MAN" >&5
+$as_echo "$HELP2MAN" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"}
+
+  test -n "$HELP2MAN" && break
+done
+test -n "$HELP2MAN" || HELP2MAN="$MISSING help2man"
+
+  case "x$HELP2MAN" in
+    x | */missing\ help2man* )
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gprofng: help2man is missing. Man pages will not be built." >&5
+$as_echo "$as_me: WARNING: gprofng: help2man is missing. Man pages will not be built." >&2;}
+      ;;
+    * ) build_man=true ;;
+    esac
 
   for ac_prog in makeinfo
 do
@@ -16782,10 +16833,10 @@ fi
 
   test -n "$MAKEINFO" && break
 done
-test -n "$MAKEINFO" || MAKEINFO=""@echo makeinfo missing; true""
+test -n "$MAKEINFO" || MAKEINFO="$MISSING makeinfo"
 
-  case "$MAKEINFO" in
-    *true)
+  case "x$MAKEINFO" in
+    x | */missing\ makeinfo*)
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gprofng: makeinfo is missing. Info documentation will not be built." >&5
 $as_echo "$as_me: WARNING: gprofng: makeinfo is missing. Info documentation will not be built." >&2;}
       ;;
@@ -16796,9 +16847,7 @@ $as_echo "$as_me: WARNING: gprofng: make
 $as_echo "$as_me: WARNING: gprofng: $MAKEINFO is too old. Info documentation will not be built." >&2;}
 	  MAKEINFO="@echo $MAKEINFO is too old, 6.5 or newer required; true"
 	  ;;
-	x* )
-	  build_man=true
-	  ;;
+	x* ) build_doc=true ;;
 	esac
       ;;
     esac
@@ -16812,6 +16861,14 @@ else
   BUILD_MAN_FALSE=
 fi
 
+ if test x$build_doc = xtrue; then
+  BUILD_DOC_TRUE=
+  BUILD_DOC_FALSE='#'
+else
+  BUILD_DOC_TRUE='#'
+  BUILD_DOC_FALSE=
+fi
+
 
 LD_NO_AS_NEEDED=${no_as_needed}
 
@@ -17070,6 +17127,10 @@ if test -z "${BUILD_MAN_TRUE}" && test -
   as_fn_error $? "conditional \"BUILD_MAN\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${BUILD_DOC_TRUE}" && test -z "${BUILD_DOC_FALSE}"; then
+  as_fn_error $? "conditional \"BUILD_DOC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 
 : "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
--- a/gprofng/configure.ac
+++ b/gprofng/configure.ac
@@ -210,11 +210,19 @@ AM_ZLIB
 
 # Generate manpages, if possible.
 build_man=false
+build_doc=false
 if test $cross_compiling = no; then
-  AM_MISSING_PROG(HELP2MAN, help2man)
-  AC_CHECK_PROGS([MAKEINFO], makeinfo, ["@echo makeinfo missing; true"])
-  case "$MAKEINFO" in
-    *true)
+  AC_CHECK_PROGS([HELP2MAN], help2man, [$MISSING help2man])
+  case "x$HELP2MAN" in
+    x | */missing\ help2man* )
+      AC_MSG_WARN([gprofng: help2man is missing. Man pages will not be built.])
+      ;;
+    * ) build_man=true ;;
+    esac
+
+  AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
+  case "x$MAKEINFO" in
+    x | */missing\ makeinfo*)
       AC_MSG_WARN([gprofng: makeinfo is missing. Info documentation will not be built.])
       ;;
     *)
@@ -223,15 +231,14 @@ if test $cross_compiling = no; then
 	  AC_MSG_WARN([gprofng: $MAKEINFO is too old. Info documentation will not be built.])
 	  MAKEINFO="@echo $MAKEINFO is too old, 6.5 or newer required; true"
 	  ;;
-	x* )
-	  build_man=true
-	  ;;
+	x* ) build_doc=true ;;
 	esac
       ;;
     esac
   AC_SUBST(MAKEINFO)
 fi
 AM_CONDITIONAL([BUILD_MAN], [test x$build_man = xtrue])
+AM_CONDITIONAL([BUILD_DOC], [test x$build_doc = xtrue])
 
 AC_SUBST(LD_NO_AS_NEEDED, [${no_as_needed}])
 AC_SUBST(GPROFNG_CFLAGS, [${gprofng_cflags}])
--- a/gprofng/doc/Makefile.am
+++ b/gprofng/doc/Makefile.am
@@ -19,9 +19,31 @@
 
 AUTOMAKE_OPTIONS = info-in-builddir foreign no-texinfo.tex
 
+# Options to extract the man page
+MANCONF = -Dman
+
+TEXI2POD = perl $(srcdir)/../../etc/texi2pod.pl $(AM_MAKEINFOFLAGS)
+POD2MAN = pod2man --center="User Commands" \
+	--release="binutils-$(VERSION)" --section=1
+
 info_TEXINFOS       = gprofng.texi
 gprofng_TEXINFOS    = fdl.texi
 TEXINFO_TEX         = .
 MAKEINFOHTML        = $(MAKEINFO) --html --no-split
 
-MAINTAINERCLEANFILES = gprofng.info
+man_MANS = gprofng.1
+
+# Build the man page from the texinfo file
+# The sed command removes the no-adjust Nroff command so that
+# the man output looks standard.
+gprofng.1: $(srcdir)/gprofng.texi
+	$(AM_V_GEN)touch $@
+	$(AM_V_at)-$(TEXI2POD) $(MANCONF) < $(srcdir)/gprofng.texi > gprofng.pod
+	$(AM_V_at)-($(POD2MAN) gprofng.pod | \
+	  sed -e '/^.if n .na/d' > $@.tmp && \
+	  mv -f $@.tmp $@) || (rm -f $@.tmp && exit 1)
+	$(AM_V_at)rm -f gprofng.pod
+
+MAINTAINERCLEANFILES = gprofng.info $(man_MANS)
+
+info: $(man_MANS)
--- a/gprofng/doc/Makefile.in
+++ b/gprofng/doc/Makefile.in
@@ -182,7 +182,7 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
-am__installdirs = "$(DESTDIR)$(infodir)"
+am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -210,6 +210,9 @@ am__uninstall_files_from_dir = { \
     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
          $(am__cd) "$$dir" && rm -f $$files; }; \
   }
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(man_MANS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 am__DIST_COMMON = $(gprofng_TEXINFOS) $(srcdir)/Makefile.in \
 	$(top_srcdir)/../mkinstalldirs mdate-sh texinfo.tex
@@ -361,11 +364,19 @@ top_srcdir = @top_srcdir@
 zlibdir = @zlibdir@
 zlibinc = @zlibinc@
 AUTOMAKE_OPTIONS = info-in-builddir foreign no-texinfo.tex
+
+# Options to extract the man page
+MANCONF = -Dman
+TEXI2POD = perl $(srcdir)/../../etc/texi2pod.pl $(AM_MAKEINFOFLAGS)
+POD2MAN = pod2man --center="User Commands" \
+	--release="binutils-$(VERSION)" --section=1
+
 info_TEXINFOS = gprofng.texi
 gprofng_TEXINFOS = fdl.texi
 TEXINFO_TEX = .
 MAKEINFOHTML = $(MAKEINFO) --html --no-split
-MAINTAINERCLEANFILES = gprofng.info
+man_MANS = gprofng.1
+MAINTAINERCLEANFILES = gprofng.info $(man_MANS)
 all: all-am
 
 .SUFFIXES:
@@ -558,6 +569,49 @@ maintainer-clean-aminfo:
 	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
 	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
 	done
+install-man1: $(man_MANS)
+	@$(NORMAL_INSTALL)
+	@list1=''; \
+	list2='$(man_MANS)'; \
+	test -n "$(man1dir)" \
+	  && test -n "`echo $$list1$$list2`" \
+	  || exit 0; \
+	echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+	$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+	{ for i in $$list1; do echo "$$i"; done;  \
+	if test -n "$$list2"; then \
+	  for i in $$list2; do echo "$$i"; done \
+	    | sed -n '/\.1[a-z]*$$/p'; \
+	fi; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+	  fi; \
+	done; \
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+	done; }
+
+uninstall-man1:
+	@$(NORMAL_UNINSTALL)
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 tags TAGS:
 
 ctags CTAGS:
@@ -600,9 +654,9 @@ distdir: $(DISTFILES)
 	  dist-info
 check-am: all-am
 check: check-am
-all-am: Makefile $(INFO_DEPS)
+all-am: Makefile $(INFO_DEPS) $(MANS)
 installdirs:
-	for dir in "$(DESTDIR)$(infodir)"; do \
+	for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -652,11 +706,9 @@ html: html-am
 
 html-am: $(HTMLS)
 
-info: info-am
-
 info-am: $(INFO_DEPS)
 
-install-data-am: install-info-am
+install-data-am: install-info-am install-man
 
 install-dvi: install-dvi-am
 
@@ -739,7 +791,7 @@ install-info-am: $(INFO_DEPS)
 	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
 	  done; \
 	else : ; fi
-install-man:
+install-man: install-man1
 
 install-pdf: install-pdf-am
 
@@ -794,7 +846,9 @@ ps: ps-am
 ps-am: $(PSS)
 
 uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
-	uninstall-pdf-am uninstall-ps-am
+	uninstall-man uninstall-pdf-am uninstall-ps-am
+
+uninstall-man: uninstall-man1
 
 .MAKE: install-am install-strip
 
@@ -804,19 +858,32 @@ uninstall-am: uninstall-dvi-am uninstall
 	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
 	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
+	install-info-am install-man install-man1 install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
 	maintainer-clean-aminfo maintainer-clean-generic \
 	maintainer-clean-vti mostlyclean mostlyclean-aminfo \
 	mostlyclean-generic mostlyclean-libtool mostlyclean-vti pdf \
 	pdf-am ps ps-am tags-am uninstall uninstall-am \
 	uninstall-dvi-am uninstall-html-am uninstall-info-am \
-	uninstall-pdf-am uninstall-ps-am
+	uninstall-man uninstall-man1 uninstall-pdf-am uninstall-ps-am
 
 .PRECIOUS: Makefile
 
 
+# Build the man page from the texinfo file
+# The sed command removes the no-adjust Nroff command so that
+# the man output looks standard.
+gprofng.1: $(srcdir)/gprofng.texi
+	$(AM_V_GEN)touch $@
+	$(AM_V_at)-$(TEXI2POD) $(MANCONF) < $(srcdir)/gprofng.texi > gprofng.pod
+	$(AM_V_at)-($(POD2MAN) gprofng.pod | \
+	  sed -e '/^.if n .na/d' > $@.tmp && \
+	  mv -f $@.tmp $@) || (rm -f $@.tmp && exit 1)
+	$(AM_V_at)rm -f gprofng.pod
+
+info: $(man_MANS)
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
--- a/gprofng/doc/gprofng.texi
+++ b/gprofng/doc/gprofng.texi
@@ -1,5 +1,8 @@
 \input texinfo @c -*-texinfo-*-
 
+@c for $sect (qw(NAME SYNOPSIS TARGET DESCRIPTION OPTIONS ENVIRONMENT FILES
+@c               BUGS NOTES FOOTNOTES SEEALSO AUTHOR COPYRIGHT)) {
+
 @c ----------------------------------------------------------------------------
 @c This is the Texinfo source file for the GPROFNG manual.
 @c
@@ -59,6 +62,10 @@ gprofng
 @cindex \label\, \string\
 @end macro
 
+@macro gcctabopt{body}
+@code{\body\}
+@end macro
+
 @c -- Get the version information ---------------------------------------------
 @include version.texi
 
@@ -99,6 +106,20 @@ section entitled ``GNU Free Documentatio
 @page
 @vskip 0pt plus 1filll
 @insertcopying
+
+@c man begin COPYRIGHT
+
+Copyright @copyright{} 2022-2023 Free Software Foundation, Inc.
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3
+or any later version published by the Free Software Foundation;
+with no Invariant Sections, with no Front-Cover Texts, and with no
+Back-Cover Texts.  A copy of the license is included in the
+section entitled ``GNU Free Documentation License''.
+
+@c man end
+
 @end titlepage
 
 @c -- Generate the Table of Contents ------------------------------------------
@@ -163,6 +184,154 @@ Terminology
 @end menu
 @end ifinfo
 
+@ifset man
+
+@c man title gprofng the driver for the gprofng tool suite
+
+@c man begin SYNOPSIS
+gprofng [OPTION(S)] ACTION [@b{QUALIFIER}] [ARGUMENTS] TARGET
+@c man end
+
+@c man begin DESCRIPTION
+This is the driver for the GPROFNG tools suite to gather and analyze performance data.
+
+The driver executes the action specified. An example of an action is @code{collect}
+to collect performance data. Depending on the action, a qualifier may be needed to
+define the command. Several qualifiers support options. The last item on the command
+is the target the command applies to.
+
+For example, to collect performance data for an application called @code{a.out} and
+store the results in experiment directory @code{mydata.er}, the following command may
+be used:
+
+@smallexample
+$ gprofng collect app -o mydata.er a.out
+@end smallexample
+
+In this example, the action is @code{collect}, the qualifier is @code{app}, the single
+argument is @code{-o mydata.er} and the target is @code{a.out}.
+
+If gprofng is executed without any additional option, action, or target, a usage
+overview is printed.
+
+@c man end
+
+@c man begin OPTIONS
+
+@table @gcctabopt
+
+@item @var{--version}
+print the version number and exit.
+
+@item @var{--help}
+print usage information and exit.
+
+@end table
+
+@c man end
+
+@c man begin NOTES
+
+The gprofng driver supports the following commands.
+
+@c The man pages for the commands below can be viewed using the command name with "gprofng" replaced by "gp" and the spaces replaced by a dash ("-"). For example the man page
+@c        name for "gprofng collect app" is "gp-collect-app".
+
+Collect performance data:
+
+@table @code
+
+@item gprofng collect app
+collect application performance data.
+
+@end table
+
+Display the performance results:
+
+@table @code
+
+@item gprofng display text
+display the performance data in ASCII format.
+
+@item gprofng display html
+generate an HTML file from one or more experiments.
+
+@end table
+
+Miscellaneous commands:
+
+@table @code
+
+@item gprofng display src
+display source or disassembly with compiler annotations.
+
+@item gprofng archive
+include binaries and source code in an experiment directory.
+
+@end table
+
+It is also possible to invoke the lower level commands directly, but since
+these are subject to change, in particular the options, we recommend to
+use the driver.
+
+@c man end
+
+@c man begin ENVIRONMENT
+The following environment variables are supported:
+
+@table @code
+
+@item @env{GPROFNG_MAX_CALL_STACK_DEPTH}
+set the depth of the call stack (default is 256).
+
+@item @env{GPROFNG_USE_JAVA_OPTIONS}
+may be set when profiling a C/C++ application that uses dlopen() to execute Java code.
+
+@item @env{GPROFNG_SSH_REMOTE_DISPLAY}
+use this variable to define the ssh command executed by the remote display tool.
+
+@item @env{GPROFNG_SKIP_VALIDATION}
+set this variable to disable checking hardware, system, and Java versions.
+
+@item @env{GPROFNG_ALLOW_CORE_DUMP}
+set this variable to allow a core file to be generated; otherwise an error report is created on /tmp.
+
+@item @env{GPROFNG_ARCHIVE}
+use this variable to define the settings for automatic archiving upon experiment recording completion.
+
+@item @env{GPROFNG_ARCHIVE_COMMON_DIR}
+set this variable to the location of the common archive.
+
+@item @env{GPROFNG_JAVA_MAX_CALL_STACK_DEPTH}
+set the depth of the Java call stack; the default is 256; set to 0 to disable capturing of call stacks.
+
+@item @env{GPROFNG_JAVA_NATIVE_MAX_CALL_STACK_DEPTH}
+set the depth of the Java native call stack; the default is 256; set to 0 to disable capturing of call stacks (JNI and assembly call stacks are not captured).
+
+@end table
+
+@c man end
+
+@c man begin SEEALSO
+The man pages for the various gprofng commands are not available yet, but
+the @option{--help} option supported on each of the commands lists the options
+and provides more information.
+
+For example this displays the options supported on the @command{gprofng collect app}
+command:
+
+@smallexample
+$ gprofng collect app --help
+@end smallexample
+
+The user guide is available as an Info entry for @file{gprofng}.
+@c man end
+
+@end ifset
+
+@c man begin DESCRIPTION
+@c man end
+
 @c -- A new node --------------------------------------------------------------
 @node    Introduction
 @chapter Introduction
--- a/gprofng/src/Makefile.am
+++ b/gprofng/src/Makefile.am
@@ -160,7 +160,7 @@ gp_display_text_LDADD = $(LIBGPROFNG) $(
 
 if BUILD_MAN
 
-man_MANS = gprofng.1 \
+man_MANS = \
 	gp-archive.1 \
 	gp-collect-app.1 \
 	gp-display-src.1 \
@@ -191,10 +191,6 @@ H2M_FILTER = | sed 's/\.TP/\.TP\n.B/' |
   | sed 's/See also:/\.SH SEE ALSO/' | sed 's/Documentation:/.SH DOCUMENTATION/' \
   | sed 's/Limitations:/.SH LIMITATIONS/'
 
-gprofng.1: $(srcdir)/gprofng.cc $(common_mandeps) | ./gprofng$(EXEEXT)
-	$(AM_V_GEN)_BUILDING_MANPAGE=1 $(HELP2MAN) $(HELP2MAN_OPT) \
-	  --name=$(TEXT_GPROFNG) ./gprofng$(EXEEXT) $(H2M_FILTER) > $@
-
 gp-archive.1: $(srcdir)/gp-archive.cc $(common_mandeps) | ./gp-archive$(EXEEXT)
 	$(AM_V_GEN)_BUILDING_MANPAGE=1 $(HELP2MAN) $(HELP2MAN_OPT) \
 	  --name=$(TEXT_GP_ARCHIVE) ./gp-archive$(EXEEXT) $(H2M_FILTER) > $@
@@ -223,3 +219,5 @@ dist-hook: $(LIBGPROFNG)
 
 install-data-local: install-pkglibLTLIBRARIES
 	rm -f $(DESTDIR)/$(pkglibdir)/*.la $(DESTDIR)/$(pkglibdir)/*.a
+
+$(srcdir)/DbeSession.cc: QLParser.tab.hh
--- a/gprofng/src/Makefile.in
+++ b/gprofng/src/Makefile.in
@@ -572,7 +572,7 @@ gp_display_src_SOURCES = gp-display-src.
 gp_display_src_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
 gp_display_text_SOURCES = gp-display-text.cc ipc.cc ipcio.cc
 gp_display_text_LDADD = $(LIBGPROFNG) $(CLOCK_GETTIME_LINK) $(ZLIB)
-@BUILD_MAN_TRUE@man_MANS = gprofng.1 \
+@BUILD_MAN_TRUE@man_MANS = \
 @BUILD_MAN_TRUE@	gp-archive.1 \
 @BUILD_MAN_TRUE@	gp-collect-app.1 \
 @BUILD_MAN_TRUE@	gp-display-src.1 \
@@ -1176,10 +1176,6 @@ uninstall-man: uninstall-man1
 QLParser.tab.cc QLParser.tab.hh: QLParser.yy
 	$(BISON) $^
 
-@BUILD_MAN_TRUE@gprofng.1: $(srcdir)/gprofng.cc $(common_mandeps) | ./gprofng$(EXEEXT)
-@BUILD_MAN_TRUE@	$(AM_V_GEN)_BUILDING_MANPAGE=1 $(HELP2MAN) $(HELP2MAN_OPT) \
-@BUILD_MAN_TRUE@	  --name=$(TEXT_GPROFNG) ./gprofng$(EXEEXT) $(H2M_FILTER) > $@
-
 @BUILD_MAN_TRUE@gp-archive.1: $(srcdir)/gp-archive.cc $(common_mandeps) | ./gp-archive$(EXEEXT)
 @BUILD_MAN_TRUE@	$(AM_V_GEN)_BUILDING_MANPAGE=1 $(HELP2MAN) $(HELP2MAN_OPT) \
 @BUILD_MAN_TRUE@	  --name=$(TEXT_GP_ARCHIVE) ./gp-archive$(EXEEXT) $(H2M_FILTER) > $@
@@ -1207,6 +1203,8 @@ dist-hook: $(LIBGPROFNG)
 install-data-local: install-pkglibLTLIBRARIES
 	rm -f $(DESTDIR)/$(pkglibdir)/*.la $(DESTDIR)/$(pkglibdir)/*.a
 
+$(srcdir)/DbeSession.cc: QLParser.tab.hh
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
