Skip to content

Commit a3d1ee1

Browse files
mfwittenacmel
authored andcommitted
perf tools: Makefile: Remove various and sundry cruft
This commit squashes several commits that remove: unnecessary uname calls `sh -c' BUILT_INS and QUIET_BUILT_IN They have no effect, and the `fixup-builtins' and `check-builtins.sh' scripts don't even exist. RUNTIME_PREFIX It's currently never anything but unset, and it's apparently only meaningful when Microsoft Windows is the operating system (according to the source for git). TEST_PROGRAMS EXTRA_PROGRAMS unused SHELL_PATH_SQ portions unused test for V=2 useless exports Only when `V' is undefined (that is, only when the value of `V' is empty) is `export V' performed, which just has the effect of placing the empty-valued variable `V' in the environment. The only other script to make use of `V' is `Documentation/Makefile', which only checks whether `V' is undefined (that is, whether the value of `V' is empty); hence, the `export V' has no effect whatsoever. Similarly, `export QUIET_GEN' is useless because it will only have a non-empty value when `V' has an empty-value, and when `V' has an empty-value, `QUIET_GEN' is always explicitly set in every script in which it is used. `DESTDIR' is only ever defined by the user via the environment or the command line, both of which are automatically exported to sub-make processes. Furthermore, no non-make sub-scripts make use of `DESTDIR' as an environment variable. No other scripts use `perfexec_instdir'. unused QUIET_SUBDIR{0,1} TAR and RPMBUILD PTHREAD_LIBS Maintainer's dist rules and commands distclean target Test suite coverage testing PRINT_DIR and NO_SUBDIR `configure' target NO_CURL @@PERF_VERSION@@ substitution Without the sed command, all of the rule's commands can be reduced to a single line that copies a file and sets the permissions properly in the process. `make test' echo line template_instdir PERF-BUILD-OPTIONS double-colon rules The use of double-colon rules seems misguided or vestigial git. Essentially hard-coded $(SCRIPTS) expansion Signed-off-by: Michael Witten <[email protected]> LKML-Reference: <new-submission> Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent 0a54fb6 commit a3d1ee1

File tree

3 files changed

+10
-223
lines changed

3 files changed

+10
-223
lines changed

tools/perf/.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
PERF-BUILD-OPTIONS
21
PERF-CFLAGS
32
PERF-GUI-VARS
43
PERF-VERSION-FILE

tools/perf/Makefile

Lines changed: 10 additions & 203 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@ ifeq ("$(origin O)", "command line")
33
endif
44

55
# The default target of this Makefile is...
6-
all::
6+
all:
77

88
ifneq ($(OUTPUT),)
99
# check that the output directory actually exists
1010
OUTDIR := $(shell cd $(OUTPUT) && /bin/pwd)
1111
$(if $(OUTDIR),, $(error output directory "$(OUTPUT)" does not exist))
1212
endif
1313

14-
# Define V=1 to have a more verbose compile.
15-
# Define V=2 to have an even more verbose compile.
14+
# Define V to have a more verbose compile.
1615
#
1716
# Define ASCIIDOC8 if you want to format documentation with AsciiDoc 8
1817
#
@@ -28,12 +27,7 @@ $(OUTPUT)PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE
2827
@$(SHELL_PATH) util/PERF-VERSION-GEN $(OUTPUT)
2928
-include $(OUTPUT)PERF-VERSION-FILE
3029

31-
uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
32-
uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
33-
uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
34-
uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not')
35-
uname_P := $(shell sh -c 'uname -p 2>/dev/null || echo not')
36-
uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not')
30+
uname_M := $(shell uname -m 2>/dev/null || echo not)
3731

3832
ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
3933
-e s/arm.*/arm/ -e s/sa110/arm/ \
@@ -52,8 +46,6 @@ ifeq ($(ARCH),x86_64)
5246
ARCH_INCLUDE = ../../arch/x86/lib/memcpy_64.S
5347
endif
5448

55-
# CFLAGS and LDFLAGS are for the users to override from the command line.
56-
5749
#
5850
# Include saner warnings here, which can catch bugs:
5951
#
@@ -131,22 +123,13 @@ CC = $(CROSS_COMPILE)gcc
131123
AR = $(CROSS_COMPILE)ar
132124
RM = rm -f
133125
MKDIR = mkdir
134-
TAR = tar
135126
FIND = find
136127
INSTALL = install
137-
RPMBUILD = rpmbuild
138-
PTHREAD_LIBS = -lpthread
139128

140129
# sparse is architecture-neutral, which means that we need to tell it
141130
# explicitly what architecture to check for. Fix this up for yours..
142131
SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__
143132

144-
ifeq ($(V), 2)
145-
QUIET_STDERR = ">/dev/null"
146-
else
147-
QUIET_STDERR = ">/dev/null 2>&1"
148-
endif
149-
150133
-include feature-tests.mak
151134

152135
ifeq ($(call try-cc,$(SOURCE_HELLO),-Werror -fstack-protector-all),y)
@@ -171,12 +154,10 @@ BASIC_LDFLAGS =
171154

172155
# Guard against environment variables
173156
BUILTIN_OBJS =
174-
BUILT_INS =
175157
LIB_H =
176158
LIB_OBJS =
177159
PYRF_OBJS =
178160
SCRIPT_SH =
179-
TEST_PROGRAMS =
180161

181162
SCRIPT_SH += perf-archive.sh
182163

@@ -192,23 +173,13 @@ $(OUTPUT)python/perf.so: $(PYRF_OBJS)
192173

193174
SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH))
194175

195-
# Empty...
196-
EXTRA_PROGRAMS =
197-
198-
# ... and all the rest that could be moved out of bindir to perfexecdir
199-
PROGRAMS += $(EXTRA_PROGRAMS)
200-
201176
#
202177
# Single 'perf' binary right now:
203178
#
204179
PROGRAMS += $(OUTPUT)perf
205180

206181
LANG_BINDINGS =
207182

208-
# List built-in command $C whose implementation cmd_$C() is not in
209-
# builtin-$C.o but is linked in as part of some other command.
210-
#
211-
212183
# what 'all' will build and 'install' will install, in perfexecdir
213184
ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
214185

@@ -565,33 +536,13 @@ else
565536
endif
566537
endif
567538

568-
ifdef RUNTIME_PREFIX
569-
COMPAT_CFLAGS += -DRUNTIME_PREFIX
570-
endif
571-
572-
QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
573-
QUIET_SUBDIR1 =
574-
575-
ifneq ($(findstring $(MAKEFLAGS),w),w)
576-
PRINT_DIR = --no-print-directory
577-
else # "make -w"
578-
NO_SUBDIR = :
579-
endif
580-
581539
ifneq ($(findstring $(MAKEFLAGS),s),s)
582540
ifndef V
583541
QUIET_CC = @echo ' ' CC $@;
584542
QUIET_AR = @echo ' ' AR $@;
585543
QUIET_LINK = @echo ' ' LINK $@;
586544
QUIET_MKDIR = @echo ' ' MKDIR $@;
587-
QUIET_BUILT_IN = @echo ' ' BUILTIN $@;
588545
QUIET_GEN = @echo ' ' GEN $@;
589-
QUIET_SUBDIR0 = +@subdir=
590-
QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
591-
$(MAKE) $(PRINT_DIR) -C $$subdir
592-
export V
593-
export QUIET_GEN
594-
export QUIET_BUILT_IN
595546
endif
596547
endif
597548

@@ -621,16 +572,14 @@ ALL_CFLAGS += $(BASIC_CFLAGS)
621572
ALL_CFLAGS += $(ARCH_CFLAGS)
622573
ALL_LDFLAGS += $(BASIC_LDFLAGS)
623574

624-
export TAR INSTALL DESTDIR SHELL_PATH
575+
export INSTALL SHELL_PATH
625576

626577

627578
### Build rules
628579

629580
SHELL = $(SHELL_PATH)
630581

631-
all:: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(BUILT_INS) $(OTHER_PROGRAMS) $(OUTPUT)PERF-BUILD-OPTIONS
632-
633-
all::
582+
all: shell_compatibility_test $(ALL_PROGRAMS) $(LANG_BINDINGS) $(OTHER_PROGRAMS)
634583

635584
please_set_SHELL_PATH_to_a_more_modern_shell:
636585
@$$(:)
@@ -661,37 +610,17 @@ $(OUTPUT)builtin-timechart.o: builtin-timechart.c $(OUTPUT)common-cmds.h $(OUTPU
661610
'-DPERF_MAN_PATH="$(mandir_SQ)"' \
662611
'-DPERF_INFO_PATH="$(infodir_SQ)"' $<
663612

664-
$(BUILT_INS): $(OUTPUT)perf$X
665-
$(QUIET_BUILT_IN)$(RM) $@ && \
666-
ln perf$X $@ 2>/dev/null || \
667-
ln -s perf$X $@ 2>/dev/null || \
668-
cp perf$X $@
669-
670613
$(OUTPUT)common-cmds.h: util/generate-cmdlist.sh command-list.txt
671614

672615
$(OUTPUT)common-cmds.h: $(wildcard Documentation/perf-*.txt)
673616
$(QUIET_GEN). util/generate-cmdlist.sh > $@+ && mv $@+ $@
674617

675-
$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
676-
$(QUIET_GEN)$(RM) $(OUTPUT)$@ $(OUTPUT)$@+ && \
677-
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
678-
-e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
679-
-e 's/@@PERF_VERSION@@/$(PERF_VERSION)/g' \
680-
-e 's/@@NO_CURL@@/$(NO_CURL)/g' \
681-
$@.sh > $(OUTPUT)$@+ && \
682-
chmod +x $(OUTPUT)$@+ && \
683-
mv $(OUTPUT)$@+ $(OUTPUT)$@
684-
685-
configure: configure.ac
686-
$(QUIET_GEN)$(RM) $@ $<+ && \
687-
sed -e 's/@@PERF_VERSION@@/$(PERF_VERSION)/g' \
688-
$< > $<+ && \
689-
autoconf -o $@ $<+ && \
690-
$(RM) $<+
618+
$(SCRIPTS) : % : %.sh
619+
$(QUIET_GEN)$(INSTALL) '[email protected]' '$(OUTPUT)$@'
691620

692621
# These can record PERF_VERSION
693622
$(OUTPUT)perf.o perf.spec \
694-
$(patsubst %.sh,%,$(SCRIPT_SH)) \
623+
$(SCRIPTS) \
695624
: $(OUTPUT)PERF-VERSION-FILE
696625

697626
$(OUTPUT)%.o: %.c $(OUTPUT)PERF-CFLAGS
@@ -826,23 +755,8 @@ $(OUTPUT)PERF-CFLAGS: .FORCE-PERF-CFLAGS
826755
echo "$$FLAGS" >$(OUTPUT)PERF-CFLAGS; \
827756
fi
828757

829-
# We need to apply sq twice, once to protect from the shell
830-
# that runs $(OUTPUT)PERF-BUILD-OPTIONS, and then again to protect it
831-
# and the first level quoting from the shell that runs "echo".
832-
$(OUTPUT)PERF-BUILD-OPTIONS: .FORCE-PERF-BUILD-OPTIONS
833-
@echo SHELL_PATH=\''$(subst ','\'',$(SHELL_PATH_SQ))'\' >$@
834-
@echo TAR=\''$(subst ','\'',$(subst ','\'',$(TAR)))'\' >>$@
835-
@echo NO_CURL=\''$(subst ','\'',$(subst ','\'',$(NO_CURL)))'\' >>$@
836-
837758
### Testing rules
838759

839-
#
840-
# None right now:
841-
#
842-
# TEST_PROGRAMS += test-something$X
843-
844-
all:: $(TEST_PROGRAMS)
845-
846760
# GNU make supports exporting all variables by "export" without parameters.
847761
# However, the environment gets quite big, and some programs have problems
848762
# with that.
@@ -855,29 +769,17 @@ check: $(OUTPUT)common-cmds.h
855769
sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || exit; \
856770
done; \
857771
else \
858-
echo 2>&1 "Did you mean 'make test'?"; \
859772
exit 1; \
860773
fi
861774

862-
remove-dashes:
863-
./fixup-builtins $(BUILT_INS) $(PROGRAMS) $(SCRIPTS)
864-
865775
### Installation rules
866776

867-
ifneq ($(filter /%,$(firstword $(template_dir))),)
868-
template_instdir = $(template_dir)
869-
else
870-
template_instdir = $(prefix)/$(template_dir)
871-
endif
872-
export template_instdir
873-
874777
ifneq ($(filter /%,$(firstword $(perfexecdir))),)
875778
perfexec_instdir = $(perfexecdir)
876779
else
877780
perfexec_instdir = $(prefix)/$(perfexecdir)
878781
endif
879782
perfexec_instdir_SQ = $(subst ','\'',$(perfexec_instdir))
880-
export perfexec_instdir
881783

882784
install: all
883785
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
@@ -894,14 +796,6 @@ install: all
894796
$(INSTALL) scripts/python/*.py -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python'
895797
$(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
896798

897-
ifdef BUILT_INS
898-
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
899-
$(INSTALL) $(BUILT_INS) '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
900-
ifneq (,$X)
901-
$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) $(OUTPUT)perf$X)), $(RM) '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/$p';)
902-
endif
903-
endif
904-
905799
install-doc:
906800
$(MAKE) -C Documentation install
907801

@@ -926,104 +820,17 @@ quick-install-man:
926820
quick-install-html:
927821
$(MAKE) -C Documentation quick-install-html
928822

929-
930-
### Maintainer's dist rules
931-
#
932-
# None right now
933-
#
934-
#
935-
# perf.spec: perf.spec.in
936-
# sed -e 's/@@VERSION@@/$(PERF_VERSION)/g' < $< > $@+
937-
# mv $@+ $@
938-
#
939-
# PERF_TARNAME=perf-$(PERF_VERSION)
940-
# dist: perf.spec perf-archive$(X) configure
941-
# ./perf-archive --format=tar \
942-
# --prefix=$(PERF_TARNAME)/ HEAD^{tree} > $(PERF_TARNAME).tar
943-
# @mkdir -p $(PERF_TARNAME)
944-
# @cp perf.spec configure $(PERF_TARNAME)
945-
# @echo $(PERF_VERSION) > $(PERF_TARNAME)/version
946-
# $(TAR) rf $(PERF_TARNAME).tar \
947-
# $(PERF_TARNAME)/perf.spec \
948-
# $(PERF_TARNAME)/configure \
949-
# $(PERF_TARNAME)/version
950-
# @$(RM) -r $(PERF_TARNAME)
951-
# gzip -f -9 $(PERF_TARNAME).tar
952-
#
953-
# htmldocs = perf-htmldocs-$(PERF_VERSION)
954-
# manpages = perf-manpages-$(PERF_VERSION)
955-
# dist-doc:
956-
# $(RM) -r .doc-tmp-dir
957-
# mkdir .doc-tmp-dir
958-
# $(MAKE) -C Documentation WEBDOC_DEST=../.doc-tmp-dir install-webdoc
959-
# cd .doc-tmp-dir && $(TAR) cf ../$(htmldocs).tar .
960-
# gzip -n -9 -f $(htmldocs).tar
961-
# :
962-
# $(RM) -r .doc-tmp-dir
963-
# mkdir -p .doc-tmp-dir/man1 .doc-tmp-dir/man5 .doc-tmp-dir/man7
964-
# $(MAKE) -C Documentation DESTDIR=./ \
965-
# man1dir=../.doc-tmp-dir/man1 \
966-
# man5dir=../.doc-tmp-dir/man5 \
967-
# man7dir=../.doc-tmp-dir/man7 \
968-
# install
969-
# cd .doc-tmp-dir && $(TAR) cf ../$(manpages).tar .
970-
# gzip -n -9 -f $(manpages).tar
971-
# $(RM) -r .doc-tmp-dir
972-
#
973-
# rpm: dist
974-
# $(RPMBUILD) -ta $(PERF_TARNAME).tar.gz
975-
976823
### Cleaning rules
977824

978-
distclean: clean
979-
# $(RM) configure
980-
981825
clean:
982826
$(RM) $(OUTPUT){*.o,*/*.o,*/*/*.o,*/*/*/*.o,$(LIB_FILE),perf-archive}
983-
$(RM) $(ALL_PROGRAMS) $(BUILT_INS) perf
984-
$(RM) $(TEST_PROGRAMS)
827+
$(RM) $(ALL_PROGRAMS) perf
985828
$(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo $(OUTPUT)common-cmds.h TAGS tags cscope*
986-
$(RM) -r $(PERF_TARNAME) .doc-tmp-dir
987-
$(RM) $(PERF_TARNAME).tar.gz perf-core_$(PERF_VERSION)-*.tar.gz
988-
$(RM) $(htmldocs).tar.gz $(manpages).tar.gz
989829
$(MAKE) -C Documentation/ clean
990-
$(RM) $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)PERF-CFLAGS $(OUTPUT)PERF-BUILD-OPTIONS
830+
$(RM) $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)PERF-CFLAGS
991831
@python util/setup.py clean --build-lib='$(OUTPUT)python' \
992832
--build-temp='$(OUTPUT)python/temp'
993833

994834
.PHONY: all install clean strip
995835
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
996836
.PHONY: .FORCE-PERF-VERSION-FILE TAGS tags cscope .FORCE-PERF-CFLAGS
997-
.PHONY: .FORCE-PERF-BUILD-OPTIONS
998-
999-
### Make sure built-ins do not have dups and listed in perf.c
1000-
#
1001-
check-builtins::
1002-
./check-builtins.sh
1003-
1004-
### Test suite coverage testing
1005-
#
1006-
# None right now
1007-
#
1008-
# .PHONY: coverage coverage-clean coverage-build coverage-report
1009-
#
1010-
# coverage:
1011-
# $(MAKE) coverage-build
1012-
# $(MAKE) coverage-report
1013-
#
1014-
# coverage-clean:
1015-
# rm -f *.gcda *.gcno
1016-
#
1017-
# COVERAGE_CFLAGS = $(CFLAGS) -O0 -ftest-coverage -fprofile-arcs
1018-
# COVERAGE_LDFLAGS = $(CFLAGS) -O0 -lgcov
1019-
#
1020-
# coverage-build: coverage-clean
1021-
# $(MAKE) CFLAGS="$(COVERAGE_CFLAGS)" LDFLAGS="$(COVERAGE_LDFLAGS)" all
1022-
# $(MAKE) CFLAGS="$(COVERAGE_CFLAGS)" LDFLAGS="$(COVERAGE_LDFLAGS)" \
1023-
# -j1 test
1024-
#
1025-
# coverage-report:
1026-
# gcov -b *.c */*.c
1027-
# grep '^function.*called 0 ' *.c.gcov */*.c.gcov \
1028-
# | sed -e 's/\([^:]*\)\.gcov: *function \([^ ]*\) called.*/\1: \2/' \
1029-
# | tee coverage-untested-functions

0 commit comments

Comments
 (0)