Makefile revision 13727
1fdd2470b625a58b57d0b155e6caf8c4fc0afe8aAutomatic Updater# Makefile for generateing man page tarballs that are used in each of the
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews# SUNW*.spec files
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Generates : $(PACKAGE)-manpages-$(MANPAGE_VERSION).tar.gz
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# e.g. sun-manpage-tarballs/*.tar.gz
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# "make" : Rebuilds all man page tarballs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# "make check-used" : Outputs list of man pages not being used.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# "make check-version" : Prints current man page tarball version
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# "make $(PACKAGE)-manpages-$(MANPAGE_VERSION).tar.gz
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# e.g. "make SUNWgnome-panel-manpages-0.1.tar.gz"
9fbbfb5757a1e3e86d7dea62c4e63ffc2303ca2bAutomatic Updater# will only generate SUNWgnome-panel's man page tarball
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# For each package that contains man pages.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# - Ensure all relevant man pages for your package are located under the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# correct man page section dir i.e.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# - Add Package name to PACKAGES Variable
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# e.g. PACKAGES = \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# SUNWgnome-panel \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# SUNWyour-package
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# - Add two package specific variables
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# PACKAGE_PAGES - Full path of all manpages for this package
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# e.g. SUNWgnome-panel_PAGES = man1/gnome-panel.1 etc...
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# PACKAGE.PAGES - Assigned to $(PACKAGE_PAGES).
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# e.g. SUNWgnome-panel.PAGES: $(SUNWgnome-panel_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# To Add new man pages to existing packages
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# -----------------------------------------
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Put very simply, all that is required from engineers is to make some changes
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and commit in SVN.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# - Ensure the man page exists in SVN under the relevant man page section sub
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# - Add man page to the SUNW<package>_PAGES Makefile variable
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# e.g. For a new gnome-panel man page it would be added to
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# SUNWgnome-panel_PAGES
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# - Remake tarballs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This will re-generate all man page tarballs.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# - Copy newly generated tarball from sun-manpage-tarballs to package build
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# sources e.g. /jds/packages/SOURCES, and ensure package builds and manpages
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# install correctly.
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater# - New man page tarball will be generated by RE for each nightly, and for each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# milestone build.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# - Commit change back to subverison, e.g. new/amended man pagees,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Solaris/manpages/Makefile, Solaris/S*.spec files if affected.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# MANPAGE_VERSION is maintained by RE and only gets bumped when spec-files gets
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater# branched. PLEASE do not change this.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWdbus-bindings.PAGES: $(SUNWdbus-bindings_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWevolution-libs.PAGES: $(SUNWevolution-libs_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWevolution-exchange.PAGES: $(SUNWevolution-exchange_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWevolution-data-server.PAGES: $(SUNWevolution-data-server_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWevolution-webcal.PAGES: $(SUNWevolution-webcal_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-a11y-dasher.PAGES: $(SUNWgnome-a11y-dasher_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-a11y-gok.PAGES: $(SUNWgnome-a11y-gok_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-a11y-libs.PAGES: $(SUNWgnome-a11y-libs_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-a11y-reader.PAGES: $(SUNWgnome-a11y-reader_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-a11y-poke.PAGES: $(SUNWgnome-a11y-poke_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-archive-mgr.PAGES: $(SUNWgnome-archive-mgr_PAGES)
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic UpdaterSUNWgnome-audio.PAGES: $(SUNWgnome-audio_PAGES)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsSUNWgnome-base-libs.PAGES: $(SUNWgnome-base-libs_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-base-libs-java.PAGES: $(SUNWgnome-base-libs-java_PAGES)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsSUNWgnome-calculator.PAGES: $(SUNWgnome-calculator_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-cd-burner.PAGES: $(SUNWgnome-cd-burner_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-character-map.PAGES: $(SUNWgnome-character-map_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-common-devel.PAGES: $(SUNWgnome-common-devel_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-component.PAGES: $(SUNWgnome-component_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-config-editor.PAGES: $(SUNWgnome-config-editor_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-config.PAGES: $(SUNWgnome-config_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-crash-report.PAGES: $(SUNWgnome-crash-report_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein man1/gnome-accessibility-keyboard-properties.1 \
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater man1/gnome-default-applications-properties.1 \
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic UpdaterSUNWgnome-desktop-prefs.PAGES: $(SUNWgnome-desktop-prefs_PAGES)
4556ad3a270bf049b3225433a402666aaffe3c36Mark AndrewsSUNWgnome-dialog.PAGES: $(SUNWgnome-dialog_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-display-mgr.PAGES: $(SUNWgnome-display-mgr_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-file-mgr.PAGES: $(SUNWgnome-file-mgr_PAGES)
4556ad3a270bf049b3225433a402666aaffe3c36Mark AndrewsSUNWgnome-gtksourceview.PAGES: $(SUNWgnome-gtksourceview_PAGES)
035992291cb70ec3be4046fcea921b4a6acb1c77Mark AndrewsSUNWgnome-help-viewer.PAGES: $(SUNWgnome-help-viewer_PAGES)
035992291cb70ec3be4046fcea921b4a6acb1c77Mark AndrewsSUNWgnome-hex-editor.PAGES: $(SUNWgnome-hex-editor_PAGES)
4556ad3a270bf049b3225433a402666aaffe3c36Mark AndrewsSUNWgnome-im-client.PAGES: $(SUNWgnome-im-client_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-meeting.PAGES: $(SUNWgnome-meeting_PAGES)
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic UpdaterSUNWgnome-img-viewer.PAGES: $(SUNWgnome-img-viewer_PAGES)
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater man1/scrollkeeper-get-index-from-docpath.1 \
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic UpdaterSUNWgnome-libs.PAGES: $(SUNWgnome-libs_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-media-apps.PAGES: $(SUNWgnome-media-apps_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-media-player.PAGES: $(SUNWgnome-media-player_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-menu-editor.PAGES: $(SUNWgnome-menu-editor_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-pdf-viewer.PAGES: $(SUNWgnome-pdf-viewer_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-removable-media.PAGES: $(SUNWgnome-removable-media_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-remote-desktop.PAGES: $(SUNWgnome-remote-desktop_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-session.PAGES: $(SUNWgnome-session_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-sys-suspend.PAGES: $(SUNWgnome-sys-suspend_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-system-tools.PAGES: $(SUNWgnome-system-tools_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-system-monitor.PAGES: $(SUNWgnome-system-monitor_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-terminal.PAGES: $(SUNWgnome-terminal_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-text-editor.PAGES: $(SUNWgnome-text-editor_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-ui-designer.PAGES: $(SUNWgnome-ui-designer_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-devhelp.PAGES: $(SUNWgnome-devhelp_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-power-manager.PAGES: $(SUNWgnome-manager_PAGES)
c6d486af36165da7eb970354981d145249e342e4Mark AndrewsSUNWprint-monitor.PAGES: $(SUNWprint-monitor_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWvirt-manager.PAGES: $(SUNWvirt-manager_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWxdg-user-dirs.PAGES: $(SUNWxdg-user-dirs_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWxdg-user-dirs-gtk.PAGES: $(SUNWxdg-user-dirs-gtk_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWgnome-spell.PAGES: $(SUNWgnome-manager_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSUNWlibgpg-error.PAGES: $(SUNWgnome-manager_PAGES)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein.SUFFIXES: -manpages-$(MANPAGE_VERSION).tar.gz .PAGES
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinTARBALLS = $(TARBALL_DIR)/$(addsuffix -$(MANPAGE_VERSION).tar.bz2, $(PACKAGES))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @test -d $(TARBALL_DIR) || mkdir -p "$(TARBALL_DIR)"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @test -x $(SGML2ROFF) || echo "sgml2roff utility not found"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @test -x $(GZIP) || echo "gzip utility not found"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(MAKE) MAKE=\"$(MAKE)\" $$package-manpages-$(MANPAGE_VERSION).tar.gz; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @test -d $(TARBALL_DIR) || mkdir -p "$(TARBALL_DIR)"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @if test -f $(TARBALL_DIR)/$@; then \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @test -d $(MANPAGE_DIR) || mkdir -p "$(MANPAGE_DIR)"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @echo "Converting manpages for $@"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @for manpage in $($(subst .PAGES,_PAGES,$<)); do \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein suffix=`expr "$$base_manpage" : '.*\.\([^./]*\)$'`; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(SGML2ROFF) $$manpage > $(MANPAGE_DIR)/$$base_manpage; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein idx1 = index($$0, "ARC "); \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein idx2 = index($$0, "-->"); \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if (idx1 > 0 && idx2 > 0) { \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein print "...\\\" " substr($$0, idx1+6, idx2-(idx1+6)); \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo $$base_manpage >> $(MANPAGE_DIR)/$$suffix; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein mv $(MANPAGE_DIR)/ent $(MANPAGE_DIR)/entities; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "MAN"$$mantype"PAGES = \\" >> $(MANPAGE_DIR)/Makefile; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if (length(saved_page) > 0) \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein print " " saved_page " \\"; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein saved_page=$$0; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein print " " saved_page; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }' $(MANPAGE_DIR)/$$mantype >> $(MANPAGE_DIR)/Makefile; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo " install -d \$$(DESTDIR)\$$(MAN"$$mantype"DIR)" >> $(MANPAGE_DIR)/Makefile; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo " for mp in \$$(MAN"$$mantype"PAGES); do \\" >> $(MANPAGE_DIR)/Makefile; \
2cc6eb92f9443695bc32fa6eed372d983d261a35Automatic Updater echo " install --mode=0644 \$$\$$mp \$$(DESTDIR)\$$(MAN"$$mantype"DIR); \\" >> $(MANPAGE_DIR)/Makefile; \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews @tarball=`basename "$@" .gz`; echo "Making tarball $$tarball"; \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(TAR) -cf $(TARBALL_DIR)/$$tarball $(MANPAGE_DIR); \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @test -d check-used-manpages || mkdir -p "check-used-manpages"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @test -d check-all-manpages || mkdir -p "check-all-manpages"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(MAKE) MAKE=\"$(MAKE)\" $$package.check-used; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if test -f check-used-manpages/$$base_manpage; then \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews echo " "$$base_manpage >> unused-manpages.txt; \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews @if test -f unused-manpages.txt; then \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews echo "Following Manpages are not being used in any SUNW package :"; \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews echo "All man pages are being used"; \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @for manpage in $($(subst .PAGES,_PAGES,$<)); do \