From 5501ba607badfcbef894db22a6968cdf23556a15 Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Fri, 5 Apr 2019 14:44:55 +0200 Subject: Makefile.common.inc: add {,un}install targets Allow installing generated pdfs with 'make install' in all Osmocom projects using osmo-gsm-manuals. This makes proper debian packaging of the manuals easier. Autotools will automatically run this file's install target, when running 'make install' in the top source dir. Do not install anything, when OSMO_GSM_MANUALS_NO_INSTALL is set, and set this variable for the tests dir, so we don't install the test pdfs. Related: OS#3899 Change-Id: I66f33172fa410681acbaef4592e9405627948705 --- build/Makefile.common.inc | 28 +++++++++++++++++++++++++++- tests/Makefile.am | 3 +++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/build/Makefile.common.inc b/build/Makefile.common.inc index aaad088..b98e83f 100644 --- a/build/Makefile.common.inc +++ b/build/Makefile.common.inc @@ -3,12 +3,18 @@ # Other makefiles like Makefile.asciidoc.inc and Makefile.vty-reference.inc add # entries to UPLOAD_FILES and CLEAN_FILES. # -# Include this file at the end to have the common targets (upload, clean etc.). +# Put the repository name (e.g. "osmo-bts") into OSMO_REPOSITORY and include +# this file at the end to have the common targets (upload, clean, install etc.). SSH_COMMAND = ssh -o 'UserKnownHostsFile=$(OSMO_GSM_MANUALS_DIR)/build/known_hosts' -p 48 UPLOAD_PATH ?= generic@sysmocom-downloads:documents SYMLINKS = common build CLEAN_FILES += $(SYMLINKS) +PDF_FILES = $(patsubst %.adoc,%.pdf,$(ASCIIDOC)) $(patsubst %.xml,%.pdf,$(VTY_REFERENCE)) +OSMO_REPOSITORY ?= osmo-gsm-manuals + +# Prefix (Makefile.am sets this to configure's --prefix when including) +prefix ?= /usr/local $(SYMLINKS): ln -s $(OSMO_GSM_MANUALS_DIR)/$@ $@ @@ -25,3 +31,23 @@ publish: all mkdir -p out cp *.pdf out rsync -avz -e "$(SSH_COMMAND)" ./out/ docs@rita.osmocom.org:web-files/latest/ + +# Install and uninstall targets +# Notes about OSMO_GSM_MANUALS_NO_INSTALL: +# - osmo-gsm-manuals.git's tests/Makefile.am sets this, so the test pdfs will not +# get installed +# - installing manuals by default is fine, because Osmocom projects won't include +# the whole Makefile.common.inc unless --enable-manuals is passed to configure. +install: $(PDF_FILES) + if [ "$(OSMO_GSM_MANUALS_NO_INSTALL)" != "1" ]; then \ + for i in $(PDF_FILES); do \ + install -vDm644 "$$i" "$(DESTDIR)$(prefix)/share/doc/$(OSMO_REPOSITORY)-doc/$$i" || exit 1; \ + done; \ + fi + +uninstall: + if [ "$(OSMO_GSM_MANUALS_NO_INSTALL)" != "1" ]; then \ + for i in $(PDF_FILES); do \ + rm -v "$(DESTDIR)$(prefix)/share/doc/$(OSMO_REPOSITORY)-doc/$$i"; \ + done; \ + fi diff --git a/tests/Makefile.am b/tests/Makefile.am index 32f23b0..7dc9544 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -3,6 +3,9 @@ EXTRA_DIST = test-usermanual-docinfo.xml \ test-vty-reference.xml \ vty +# Do not install any of the test pdfs +OSMO_GSM_MANUALS_NO_INSTALL = 1 + # Generate adoc file that includes all chapters ASCIIDOC = test-usermanual.adoc ASCIIDOC_DEPS = -- cgit v1.2.3