From: Bastian Blank Date: Mon, 26 Sep 2011 13:53:12 +0100 Subject: Create manpages and binaries including the version Forwarded: no [bwh: Fix version insertion in perf man page cross-references and perf man page title. Install bash_completion script for perf with a version-dependent name. And do the same for trace.] Index: linux/tools/perf/Makefile.perf =================================================================== --- linux.orig/tools/perf/Makefile.perf +++ linux/tools/perf/Makefile.perf @@ -759,23 +759,23 @@ endif install-tools: all install-gtk $(call QUIET_INSTALL, binaries) \ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'; \ - $(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)'; \ - $(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf' '$(DESTDIR_SQ)$(bindir_SQ)/trace' + $(INSTALL) $(OUTPUT)perf '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)'; \ + $(LN) '$(DESTDIR_SQ)$(bindir_SQ)/perf_$(VERSION)' '$(DESTDIR_SQ)$(bindir_SQ)/trace_$(VERSION)' + $(call QUIET_INSTALL, libexec) \ + $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' ifndef NO_PERF_READ_VDSO32 $(call QUIET_INSTALL, perf-read-vdso32) \ - $(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(bindir_SQ)'; + $(INSTALL) $(OUTPUT)perf-read-vdso32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'; endif ifndef NO_PERF_READ_VDSOX32 $(call QUIET_INSTALL, perf-read-vdsox32) \ - $(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(bindir_SQ)'; + $(INSTALL) $(OUTPUT)perf-read-vdsox32 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'; endif ifndef NO_JVMTI $(call QUIET_INSTALL, $(LIBJVMTI)) \ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(libdir_SQ)'; \ $(INSTALL) $(OUTPUT)$(LIBJVMTI) '$(DESTDIR_SQ)$(libdir_SQ)'; endif - $(call QUIET_INSTALL, libexec) \ - $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' ifndef NO_LIBBPF $(call QUIET_INSTALL, bpf-headers) \ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perf_include_instdir_SQ)/bpf'; \ @@ -811,7 +811,7 @@ ifndef NO_LIBPYTHON endif $(call QUIET_INSTALL, perf_completion-script) \ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'; \ - $(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf' + $(INSTALL) perf-completion.sh '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf_$(VERSION)' $(call QUIET_INSTALL, perf-tip) \ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(tip_instdir_SQ)'; \ $(INSTALL) Documentation/tips.txt -t '$(DESTDIR_SQ)$(tip_instdir_SQ)' @@ -836,7 +836,7 @@ install-python_ext: # 'make install-doc' should call 'make -C Documentation install' $(INSTALL_DOC_TARGETS): - $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=) + $(QUIET_SUBDIR0)Documentation $(QUIET_SUBDIR1) $(@:-doc=) VERSION=$(VERSION) ### Cleaning rules Index: linux/tools/perf/Documentation/Makefile =================================================================== --- linux.orig/tools/perf/Documentation/Makefile +++ linux/tools/perf/Documentation/Makefile @@ -194,14 +194,16 @@ ifdef missing_tools $(error "You need to install $(missing_tools) for man pages") endif -do-install-man: man +do-install-man: $(addprefix install-man-,$(_DOC_MAN1)) + +install-man-perf.1: $(OUTPUT)perf.1 + $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir) + sed -e 's/"PERF"/"PERF_$(VERSION)"/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION).1 + +install-man-perf%.1: $(OUTPUT)perf%.1 $(call QUIET_INSTALL, Documentation-man) \ $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir); \ -# $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir); \ -# $(INSTALL) -d -m 755 $(DESTDIR)$(man7dir); \ - $(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(man1dir); \ -# $(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir); \ -# $(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir) + sed -e 's/"PERF\\-/"PERF_$(VERSION)\\-/' -e 's/fBperf-/fBperf_$(VERSION)-/g' $^ > $(DESTDIR)$(man1dir)/perf_$(VERSION)$*.1 install-man: check-man-tools man do-install-man Index: linux/tools/perf/util/Build =================================================================== --- linux.orig/tools/perf/util/Build +++ linux/tools/perf/util/Build @@ -193,6 +193,7 @@ CFLAGS_libstring.o += -Wno-unused-pa CFLAGS_hweight.o += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))" CFLAGS_parse-events.o += -Wno-redundant-decls CFLAGS_header.o += -include $(OUTPUT)PERF-VERSION-FILE +CFLAGS_vdso.o += -DPERFEXECDIR='"$(perfexec_instdir_SQ)"' $(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE $(call rule_mkdir) Index: linux/tools/perf/util/vdso.c =================================================================== --- linux.orig/tools/perf/util/vdso.c +++ linux/tools/perf/util/vdso.c @@ -52,12 +52,12 @@ static struct vdso_info *vdso_info__new( .vdso32 = { .temp_file_name = VDSO__TEMP_FILE_NAME, .dso_name = DSO__NAME_VDSO32, - .read_prog = "perf-read-vdso32", + .read_prog = PERFEXECDIR "/perf-read-vdso32", }, .vdsox32 = { .temp_file_name = VDSO__TEMP_FILE_NAME, .dso_name = DSO__NAME_VDSOX32, - .read_prog = "perf-read-vdsox32", + .read_prog = PERFEXECDIR "/perf-read-vdsox32", }, #endif };