##
# Makefile for generateing man page tarballs that are used in each of the
# SUNW*.spec files
#
# Generates : $(PACKAGE)-manpages-$(MANPAGE_VERSION).tar.gz
# e.g. sun-manpage-tarballs/*.tar.gz
#
# Usage :
# "make" : Rebuilds all man page tarballs
#
# "make check-used" : Outputs list of man pages not being used.
#
# "make check-version" : Prints current man page tarball version
#
# "make $(PACKAGE)-manpages-$(MANPAGE_VERSION).tar.gz
# e.g. "make SUNWgnome-panel-manpages-0.1.tar.gz"
# will only generate SUNWgnome-panel's man page tarball
#
# For each package that contains man pages.
# - Ensure all relevant man pages for your package are located under the
# correct man page section dir i.e.
# entities/man1/man1m/man3/man3tiff/man4/man5
# - Add Package name to PACKAGES Variable
# e.g. PACKAGES = \
# SUNWgnome-panel \
# SUNWyour-package
#
# - Add two package specific variables
# PACKAGE - Full path of all manpages for this package with section
# suffix.
# e.g. SUNWgnome-panel_PAGES = man1/gnome-panel.1 etc...
#
#
# To Add new man pages to existing packages
# -----------------------------------------
# Put very simply, all that is required from engineers is to make some changes
# and commit in SVN.
#
# - Ensure the man page exists in SVN under the relevant man page section sub
# dir
# - Add man page to the SUNW<package>_PAGES Makefile variable
# e.g. For a new gnome-panel man page it would be added to
# SUNWgnome-panel_PAGES
# - Remake tarballs
# $ make
# This will re-generate all man page tarballs.
# - Copy newly generated tarball from sun-manpage-tarballs to package build
# sources e.g. /jds/packages/SOURCES, and ensure package builds and manpages
# install correctly.
# - New man page tarball will be generated by RE for each nightly, and for each
# milestone build.
# - Commit change back to subverison, e.g. new/amended man pagees,
# Solaris/manpages/Makefile, Solaris/S*.spec files if affected.
#
#
# MANPAGE_VERSION is maintained by RE and only gets bumped when spec-files gets
# branched. PLEASE do not change this.
#
SHELL=/bin/ksh
MANPAGE_VERSION=0.1
MANPAGE_DIR=sun-manpages
TARBALL_DIR=sun-manpage-tarballs
GZIP=/usr/bin/gzip
TAR=/usr/bin/tar
AWK=/usr/bin/awk
MAKE=/usr/sfw/bin/gmake
GREP=/usr/bin/grep
PACKAGES = \
SUNWclutter \
SUNWclutter-gst \
SUNWclutter-gtk \
SUNWseahorse-plugins \
SUNWgnome-cd-burner \
SUNWnwam-manager \
SUNWlibtasn1-bin
SUNWclutter = \
man3/libclutter-glx-1.0.3
SUNWclutter-gst = \
man3/libclutter-gst-0.10.3
SUNWclutter-gtk = \
man3/libclutter-gtk-0.10.3
SUNWseahorse-plugins = \
man1/seahorse-agent.1 \
man1/seahorse-tool.1
SUNWgnome-cd-burner = \
man1/brasero.1
SUNWnwam-manager = \
man1m/nwam-manager.1m \
man1m/nwam-manager-properties.1m
SUNWlibtasn1-bin = \
man1/asn1Parser.1 \
man1/asn1Coding.1 \
man1/asn1Decoding.1
all: TARBALLS
.PHONY: all clean prep check-used $(PACKAGES)
TARBALLS = $(TARBALL_DIR)/$(addsuffix -$(MANPAGE_VERSION).tar.bz2, $(PACKAGES))
prep:
@test -d $(TARBALL_DIR) || mkdir -p "$(TARBALL_DIR)"
@test -x $(GZIP) || echo "gzip utility not found"
TARBALLS: prep
rm -rf $(TARBALL_DIR)/*.tar.gz
@for package in $(PACKAGES); do \
$(MAKE) MAKE=\"$(MAKE)\" $$package-manpages-$(MANPAGE_VERSION).tar.gz; \
done
%-manpages-$(MANPAGE_VERSION).tar.gz: % prep
@rm -rf $(TARBALL_DIR)/$@
@rm -rf $(MANPAGE_DIR)/*
@test -d $(MANPAGE_DIR) || mkdir -p "$(MANPAGE_DIR)"
@cp Makefile.template $(MANPAGE_DIR)/Makefile
@tarball=`basename "$@" .gz`; echo "Making tarball $$tarball"; \
for manpage in $($<); do \
suffix_name=`echo $$manpage | \
sed -n "s/man[0-9]\w*\/.*\.\([0-9]\w*\)$$/\1/p"`; \
section_name=`echo "$$manpage" | \
sed -n "s/man\([0-9]\w*\)\/.*\.\([0-9]\w*\)$$/\1/p"`; \
[ "$$section_name" == "$$suffix_name" ] || \
{ echo "Can't recognize the section name of $$manpage_name"; exit 1; }; \
manpage_name=`basename $$manpage`; \
manpage_name=$$manpage_name; \
cp $$manpage $(MANPAGE_DIR)/$$manpage_name; \
done; \
$(TAR) -cf $(TARBALL_DIR)/$$tarball $(MANPAGE_DIR); \
$(GZIP) $(TARBALL_DIR)/$$tarball
@rm -rf $(MANPAGE_DIR)
check-used:
@test -d check-used-manpages || mkdir -p "check-used-manpages"
@test -d check-all-manpages || mkdir -p "check-all-manpages"
@rm -f unused-manpages.txt
@cp man*/* check-all-manpages
@for package in $(PACKAGES); do \
$(MAKE) MAKE=\"$(MAKE)\" $$package.check-used; \
done
@all_manpages=`ls check-all-manpages/*`; \
for manpage in $$all_manpages; do \
base_manpage=`basename $$manpage`; \
if test -f check-used-manpages/$$base_manpage; then \
echo " "$$base_manpage >> /dev/null; \
else \
echo " "$$base_manpage >> unused-manpages.txt; \
fi; \
done
@if test -f unused-manpages.txt; then \
echo "Following Manpages are not being used in any SUNW package :"; \
cat unused-manpages.txt; \
rm -f unused-manpages.txt; \
else \
echo "All man pages are being used"; \
fi
@rm -rf check-all-manpages
@rm -rf check-used-manpages
%.check-used: %
@for manpage in $($<); do \
cp $$manpage check-used-manpages; \
done
check-version:
@echo $(MANPAGE_VERSION)
clean:
rm -rf $(MANPAGE_DIR)
rm -rf $(TARBALL_DIR)/*.tar.gz