1*58e6ee5fSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0 2*58e6ee5fSAndroid Build Coastguard Worker 3*58e6ee5fSAndroid Build Coastguard Worker# Include the utils 4*58e6ee5fSAndroid Build Coastguard Workerinclude $(src)/scripts/utils.mk 5*58e6ee5fSAndroid Build Coastguard Worker 6*58e6ee5fSAndroid Build Coastguard Worker# This Makefile and manpage XSL files were taken from libtracefs 7*58e6ee5fSAndroid Build Coastguard Worker# and modified for libtracecmd 8*58e6ee5fSAndroid Build Coastguard Worker 9*58e6ee5fSAndroid Build Coastguard WorkerMAN3_TXT= \ 10*58e6ee5fSAndroid Build Coastguard Worker $(wildcard libtracecmd-*.txt) \ 11*58e6ee5fSAndroid Build Coastguard Worker libtracecmd.txt 12*58e6ee5fSAndroid Build Coastguard Worker 13*58e6ee5fSAndroid Build Coastguard WorkerMAN_TXT = $(MAN3_TXT) 14*58e6ee5fSAndroid Build Coastguard Worker_MAN_XML=$(patsubst %.txt,%.xml,$(MAN_TXT)) 15*58e6ee5fSAndroid Build Coastguard Worker_MAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT)) 16*58e6ee5fSAndroid Build Coastguard Worker_DOC_MAN3=$(patsubst %.txt,%.m,$(MAN3_TXT)) 17*58e6ee5fSAndroid Build Coastguard Worker 18*58e6ee5fSAndroid Build Coastguard WorkerMAN_XML=$(addprefix $(OUTPUT),$(_MAN_XML)) 19*58e6ee5fSAndroid Build Coastguard WorkerMAN_HTML=$(addprefix $(OUTPUT),$(_MAN_HTML)) 20*58e6ee5fSAndroid Build Coastguard WorkerDOC_MAN3=$(addprefix $(OUTPUT),$(_DOC_MAN3)) 21*58e6ee5fSAndroid Build Coastguard Worker 22*58e6ee5fSAndroid Build Coastguard Worker# Make the path relative to DESTDIR, not prefix 23*58e6ee5fSAndroid Build Coastguard Workerifndef DESTDIR 24*58e6ee5fSAndroid Build Coastguard Workerprefix?=$(HOME) 25*58e6ee5fSAndroid Build Coastguard Workerendif 26*58e6ee5fSAndroid Build Coastguard Workerbindir?=$(prefix)/bin 27*58e6ee5fSAndroid Build Coastguard Workerhtmldir?=$(prefix)/share/doc/libtracecmd-doc 28*58e6ee5fSAndroid Build Coastguard Workerpdfdir?=$(prefix)/share/doc/libtracecmd-doc 29*58e6ee5fSAndroid Build Coastguard Workermandir?=$(prefix)/share/man 30*58e6ee5fSAndroid Build Coastguard Workerman3dir=$(mandir)/man3 31*58e6ee5fSAndroid Build Coastguard Worker 32*58e6ee5fSAndroid Build Coastguard Workerifdef USE_ASCIIDOCTOR 33*58e6ee5fSAndroid Build Coastguard WorkerASCIIDOC_EXTRA += -a mansource="libtracecmd" -a manmanual="libtracecmd Manual" 34*58e6ee5fSAndroid Build Coastguard Workerendif 35*58e6ee5fSAndroid Build Coastguard Worker 36*58e6ee5fSAndroid Build Coastguard Workerall: check-man-tools html man 37*58e6ee5fSAndroid Build Coastguard Worker 38*58e6ee5fSAndroid Build Coastguard Workerman: man3 39*58e6ee5fSAndroid Build Coastguard Workerman3: $(DOC_MAN3) 40*58e6ee5fSAndroid Build Coastguard Worker 41*58e6ee5fSAndroid Build Coastguard Workerhtml: $(MAN_HTML) 42*58e6ee5fSAndroid Build Coastguard Worker 43*58e6ee5fSAndroid Build Coastguard Worker$(MAN_HTML) $(DOC_MAN3): $(ASCIIDOC_CONF) 44*58e6ee5fSAndroid Build Coastguard Worker 45*58e6ee5fSAndroid Build Coastguard Workerinstall: check-man-tools install-man install-html 46*58e6ee5fSAndroid Build Coastguard Worker 47*58e6ee5fSAndroid Build Coastguard Workercheck-man-tools: 48*58e6ee5fSAndroid Build Coastguard Workerifdef missing_tools 49*58e6ee5fSAndroid Build Coastguard Worker $(error "You need to install $(missing_tools) for man pages") 50*58e6ee5fSAndroid Build Coastguard Workerendif 51*58e6ee5fSAndroid Build Coastguard Worker 52*58e6ee5fSAndroid Build Coastguard Workerinstall-%.3: $(OUTPUT)%.3 53*58e6ee5fSAndroid Build Coastguard Worker $(Q)$(call do_install_docs,$<,$(man3dir),644); 54*58e6ee5fSAndroid Build Coastguard Worker 55*58e6ee5fSAndroid Build Coastguard Workerdo-install-man: man $(addprefix install-,$(wildcard $(OUTPUT)*.3)) 56*58e6ee5fSAndroid Build Coastguard Worker 57*58e6ee5fSAndroid Build Coastguard Workerinstall-man: man 58*58e6ee5fSAndroid Build Coastguard Worker $(Q)$(MAKE) -C . do-install-man 59*58e6ee5fSAndroid Build Coastguard Worker 60*58e6ee5fSAndroid Build Coastguard Workerinstall-%.txt: $(OUTPUT)%.html 61*58e6ee5fSAndroid Build Coastguard Worker $(Q)$(call do_install_docs,$<,$(htmldir),644); 62*58e6ee5fSAndroid Build Coastguard Worker 63*58e6ee5fSAndroid Build Coastguard Workerdo-install-html: html $(addprefix install-,$(wildcard *.txt)) 64*58e6ee5fSAndroid Build Coastguard Worker 65*58e6ee5fSAndroid Build Coastguard Workerinstall-html: html do-install-html 66*58e6ee5fSAndroid Build Coastguard Worker 67*58e6ee5fSAndroid Build Coastguard Workeruninstall: uninstall-man uninstall-html 68*58e6ee5fSAndroid Build Coastguard Worker 69*58e6ee5fSAndroid Build Coastguard Workeruninstall-man: 70*58e6ee5fSAndroid Build Coastguard Worker $(Q)$(RM) $(addprefix $(DESTDIR)$(man3dir)/,$(DOC_MAN3)) 71*58e6ee5fSAndroid Build Coastguard Worker 72*58e6ee5fSAndroid Build Coastguard Workeruninstall-html: 73*58e6ee5fSAndroid Build Coastguard Worker $(Q)$(RM) $(addprefix $(DESTDIR)$(htmldir)/,$(MAN_HTML)) 74*58e6ee5fSAndroid Build Coastguard Worker 75*58e6ee5fSAndroid Build Coastguard Workerifdef missing_tools 76*58e6ee5fSAndroid Build Coastguard Worker DO_INSTALL_MAN = $(warning Please install $(missing_tools) to have the man pages installed) 77*58e6ee5fSAndroid Build Coastguard Workerelse 78*58e6ee5fSAndroid Build Coastguard Worker DO_INSTALL_MAN = do-install-man 79*58e6ee5fSAndroid Build Coastguard Workerendif 80*58e6ee5fSAndroid Build Coastguard Worker 81*58e6ee5fSAndroid Build Coastguard WorkerCLEAN_FILES = \ 82*58e6ee5fSAndroid Build Coastguard Worker $(MAN_XML) $(addsuffix +,$(MAN_XML)) \ 83*58e6ee5fSAndroid Build Coastguard Worker $(MAN_HTML) $(addsuffix +,$(MAN_HTML)) \ 84*58e6ee5fSAndroid Build Coastguard Worker $(DOC_MAN3) *.3 *.m 85*58e6ee5fSAndroid Build Coastguard Worker 86*58e6ee5fSAndroid Build Coastguard Workerclean: 87*58e6ee5fSAndroid Build Coastguard Worker $(Q) $(RM) $(CLEAN_FILES) 88*58e6ee5fSAndroid Build Coastguard Worker 89*58e6ee5fSAndroid Build Coastguard Workerifdef USE_ASCIIDOCTOR 90*58e6ee5fSAndroid Build Coastguard Worker$(OUTPUT)%.m : $(OUTPUT)%.txt 91*58e6ee5fSAndroid Build Coastguard Worker $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \ 92*58e6ee5fSAndroid Build Coastguard Worker $(ASCIIDOC) -b manpage -d manpage \ 93*58e6ee5fSAndroid Build Coastguard Worker $(ASCIIDOC_EXTRA) -alibtracecmd_version=$(LIBTRACECMD_VERSION) -o $@+ $< && \ 94*58e6ee5fSAndroid Build Coastguard Worker mv $@+ $@ 95*58e6ee5fSAndroid Build Coastguard Workerendif 96*58e6ee5fSAndroid Build Coastguard Worker 97*58e6ee5fSAndroid Build Coastguard Worker$(OUTPUT)%.m : $(OUTPUT)%.xml 98*58e6ee5fSAndroid Build Coastguard Worker $(QUIET_XMLTO)$(RM) $@ && \ 99*58e6ee5fSAndroid Build Coastguard Worker $(XMLTO) -o $(OUTPUT). -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<; \ 100*58e6ee5fSAndroid Build Coastguard Worker touch $@ 101*58e6ee5fSAndroid Build Coastguard Worker 102*58e6ee5fSAndroid Build Coastguard Worker$(OUTPUT)%.xml : %.txt 103*58e6ee5fSAndroid Build Coastguard Worker $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \ 104*58e6ee5fSAndroid Build Coastguard Worker $(ASCIIDOC) -b docbook -d manpage \ 105*58e6ee5fSAndroid Build Coastguard Worker $(ASCIIDOC_EXTRA) -alibtracecmd_version=$(LIBTRACECMD_VERSION) -o $@+ $< && \ 106*58e6ee5fSAndroid Build Coastguard Worker mv $@+ $@ 107*58e6ee5fSAndroid Build Coastguard Worker 108*58e6ee5fSAndroid Build Coastguard Worker$(MAN_HTML): $(OUTPUT)%.html : %.txt 109*58e6ee5fSAndroid Build Coastguard Worker $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \ 110*58e6ee5fSAndroid Build Coastguard Worker $(ASCIIDOC) -b $(ASCIIDOC_HTML) -d manpage \ 111*58e6ee5fSAndroid Build Coastguard Worker $(ASCIIDOC_EXTRA) -alibtracecmd_version=$(LIBTRACECMD_VERSION) -o $@+ $< && \ 112*58e6ee5fSAndroid Build Coastguard Worker mv $@+ $@ 113