|
@@ -181,6 +181,35 @@ ifeq ($(filter-out $(NON_CONFIG_TARGETS),$(MAKECMDGOALS)),)
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
|
|
|
|
+# The fixdep build - we force fixdep tool to be built as
|
|
|
|
+# the first target in the separate make session not to be
|
|
|
|
+# disturbed by any parallel make jobs. Once fixdep is done
|
|
|
|
+# we issue the requested build with FIXDEP=1 variable.
|
|
|
|
+#
|
|
|
|
+# The fixdep build is disabled for $(NON_CONFIG_TARGETS)
|
|
|
|
+# targets, because it's not necessary.
|
|
|
|
+
|
|
|
|
+ifdef FIXDEP
|
|
|
|
+ force_fixdep := 0
|
|
|
|
+else
|
|
|
|
+ force_fixdep := $(config)
|
|
|
|
+endif
|
|
|
|
+
|
|
|
|
+export srctree OUTPUT RM CC CXX LD AR CFLAGS CXXFLAGS V BISON FLEX AWK
|
|
|
|
+export HOSTCC HOSTLD HOSTAR
|
|
|
|
+
|
|
|
|
+include $(srctree)/tools/build/Makefile.include
|
|
|
|
+
|
|
|
|
+ifeq ($(force_fixdep),1)
|
|
|
|
+goals := $(filter-out all sub-make, $(MAKECMDGOALS))
|
|
|
|
+
|
|
|
|
+$(goals) all: sub-make
|
|
|
|
+
|
|
|
|
+sub-make: fixdep
|
|
|
|
+ $(Q)$(MAKE) FIXDEP=1 -f Makefile.perf $(goals)
|
|
|
|
+
|
|
|
|
+else # force_fixdep
|
|
|
|
+
|
|
# Set FEATURE_TESTS to 'all' so all possible feature checkers are executed.
|
|
# Set FEATURE_TESTS to 'all' so all possible feature checkers are executed.
|
|
# Without this setting the output feature dump file misses some features, for
|
|
# Without this setting the output feature dump file misses some features, for
|
|
# example, liberty. Select all checkers so we won't get an incomplete feature
|
|
# example, liberty. Select all checkers so we won't get an incomplete feature
|
|
@@ -365,10 +394,6 @@ strip: $(PROGRAMS) $(OUTPUT)perf
|
|
|
|
|
|
PERF_IN := $(OUTPUT)perf-in.o
|
|
PERF_IN := $(OUTPUT)perf-in.o
|
|
|
|
|
|
-export srctree OUTPUT RM CC CXX LD AR CFLAGS CXXFLAGS V BISON FLEX AWK
|
|
|
|
-export HOSTCC HOSTLD HOSTAR
|
|
|
|
-include $(srctree)/tools/build/Makefile.include
|
|
|
|
-
|
|
|
|
JEVENTS := $(OUTPUT)pmu-events/jevents
|
|
JEVENTS := $(OUTPUT)pmu-events/jevents
|
|
JEVENTS_IN := $(OUTPUT)pmu-events/jevents-in.o
|
|
JEVENTS_IN := $(OUTPUT)pmu-events/jevents-in.o
|
|
|
|
|
|
@@ -487,7 +512,7 @@ $(OUTPUT)perf: $(PERFLIBS) $(PERF_IN) $(PMU_EVENTS_IN) $(LIBTRACEEVENT_DYNAMIC_L
|
|
$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS) \
|
|
$(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(LIBTRACEEVENT_DYNAMIC_LIST_LDFLAGS) \
|
|
$(PERF_IN) $(PMU_EVENTS_IN) $(LIBS) -o $@
|
|
$(PERF_IN) $(PMU_EVENTS_IN) $(LIBS) -o $@
|
|
|
|
|
|
-$(GTK_IN): fixdep FORCE
|
|
|
|
|
|
+$(GTK_IN): FORCE
|
|
$(Q)$(MAKE) $(build)=gtk
|
|
$(Q)$(MAKE) $(build)=gtk
|
|
|
|
|
|
$(OUTPUT)libperf-gtk.so: $(GTK_IN) $(PERFLIBS)
|
|
$(OUTPUT)libperf-gtk.so: $(GTK_IN) $(PERFLIBS)
|
|
@@ -536,7 +561,7 @@ endif
|
|
__build-dir = $(subst $(OUTPUT),,$(dir $@))
|
|
__build-dir = $(subst $(OUTPUT),,$(dir $@))
|
|
build-dir = $(if $(__build-dir),$(__build-dir),.)
|
|
build-dir = $(if $(__build-dir),$(__build-dir),.)
|
|
|
|
|
|
-prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h fixdep archheaders
|
|
|
|
|
|
+prepare: $(OUTPUT)PERF-VERSION-FILE $(OUTPUT)common-cmds.h archheaders
|
|
|
|
|
|
$(OUTPUT)%.o: %.c prepare FORCE
|
|
$(OUTPUT)%.o: %.c prepare FORCE
|
|
$(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=$(build-dir) $@
|
|
$(Q)$(MAKE) -f $(srctree)/tools/build/Makefile.build dir=$(build-dir) $@
|
|
@@ -586,7 +611,7 @@ $(patsubst perf-%,%.o,$(PROGRAMS)): $(wildcard */*.h)
|
|
|
|
|
|
LIBPERF_IN := $(OUTPUT)libperf-in.o
|
|
LIBPERF_IN := $(OUTPUT)libperf-in.o
|
|
|
|
|
|
-$(LIBPERF_IN): prepare fixdep FORCE
|
|
|
|
|
|
+$(LIBPERF_IN): prepare FORCE
|
|
$(Q)$(MAKE) $(build)=libperf
|
|
$(Q)$(MAKE) $(build)=libperf
|
|
|
|
|
|
$(LIB_FILE): $(LIBPERF_IN)
|
|
$(LIB_FILE): $(LIBPERF_IN)
|
|
@@ -594,10 +619,10 @@ $(LIB_FILE): $(LIBPERF_IN)
|
|
|
|
|
|
LIBTRACEEVENT_FLAGS += plugin_dir=$(plugindir_SQ)
|
|
LIBTRACEEVENT_FLAGS += plugin_dir=$(plugindir_SQ)
|
|
|
|
|
|
-$(LIBTRACEEVENT): fixdep FORCE
|
|
|
|
|
|
+$(LIBTRACEEVENT): FORCE
|
|
$(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) $(OUTPUT)libtraceevent.a
|
|
$(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) $(OUTPUT)libtraceevent.a
|
|
|
|
|
|
-libtraceevent_plugins: fixdep FORCE
|
|
|
|
|
|
+libtraceevent_plugins: FORCE
|
|
$(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) plugins
|
|
$(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) plugins
|
|
|
|
|
|
$(LIBTRACEEVENT_DYNAMIC_LIST): libtraceevent_plugins
|
|
$(LIBTRACEEVENT_DYNAMIC_LIST): libtraceevent_plugins
|
|
@@ -610,21 +635,21 @@ $(LIBTRACEEVENT)-clean:
|
|
install-traceevent-plugins: libtraceevent_plugins
|
|
install-traceevent-plugins: libtraceevent_plugins
|
|
$(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) install_plugins
|
|
$(Q)$(MAKE) -C $(TRACE_EVENT_DIR) $(LIBTRACEEVENT_FLAGS) O=$(OUTPUT) install_plugins
|
|
|
|
|
|
-$(LIBAPI): fixdep FORCE
|
|
|
|
|
|
+$(LIBAPI): FORCE
|
|
$(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) $(OUTPUT)libapi.a
|
|
$(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) $(OUTPUT)libapi.a
|
|
|
|
|
|
$(LIBAPI)-clean:
|
|
$(LIBAPI)-clean:
|
|
$(call QUIET_CLEAN, libapi)
|
|
$(call QUIET_CLEAN, libapi)
|
|
$(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) clean >/dev/null
|
|
$(Q)$(MAKE) -C $(LIB_DIR) O=$(OUTPUT) clean >/dev/null
|
|
|
|
|
|
-$(LIBBPF): fixdep FORCE
|
|
|
|
|
|
+$(LIBBPF): FORCE
|
|
$(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) $(OUTPUT)libbpf.a FEATURES_DUMP=$(FEATURE_DUMP_EXPORT)
|
|
$(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) $(OUTPUT)libbpf.a FEATURES_DUMP=$(FEATURE_DUMP_EXPORT)
|
|
|
|
|
|
$(LIBBPF)-clean:
|
|
$(LIBBPF)-clean:
|
|
$(call QUIET_CLEAN, libbpf)
|
|
$(call QUIET_CLEAN, libbpf)
|
|
$(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) clean >/dev/null
|
|
$(Q)$(MAKE) -C $(BPF_DIR) O=$(OUTPUT) clean >/dev/null
|
|
|
|
|
|
-$(LIBSUBCMD): fixdep FORCE
|
|
|
|
|
|
+$(LIBSUBCMD): FORCE
|
|
$(Q)$(MAKE) -C $(SUBCMD_DIR) O=$(OUTPUT) $(OUTPUT)libsubcmd.a
|
|
$(Q)$(MAKE) -C $(SUBCMD_DIR) O=$(OUTPUT) $(OUTPUT)libsubcmd.a
|
|
|
|
|
|
$(LIBSUBCMD)-clean:
|
|
$(LIBSUBCMD)-clean:
|
|
@@ -832,3 +857,4 @@ FORCE:
|
|
.PHONY: $(GIT-HEAD-PHONY) TAGS tags cscope FORCE prepare
|
|
.PHONY: $(GIT-HEAD-PHONY) TAGS tags cscope FORCE prepare
|
|
.PHONY: libtraceevent_plugins archheaders
|
|
.PHONY: libtraceevent_plugins archheaders
|
|
|
|
|
|
|
|
+endif # force_fixdep
|