Hello, A few months ago, I tried to make a proposal to introduce Kconfig in perf's generation procedure. (cf. https://lkml.org/lkml/2013/12/20/511)
I started from David Ahern's work; I was not aware that Jiri Olsa pushed further the idea and proposed an alternative which integrated kbuild too. So, here is another proposal based on Jiri Olsa work (from April 2013). * Most of the NO_* and HAVE_* makefile variables were removed on behalf of Kconfig's ones (CONFIG_*); perf source code was modified accordingly; * These changes make the glue files tools/perf/config/Makefile.fix-* useless * The build test cases now relies on generated configuration files (in tools/perf/tests/configs); Hope this helps, Alexis. Alexis Berlemont (29): perf kbuild: fix recursive invocation of config/features-checks perf kbuild: store in config-detected missing variables (libdir, ...) perf kbuild: remove useless #ifdef directives perf kbuild: fix a link issue if BUILTIN_TRACE is disabled perf kbuild: add missing files and missing flags in Kbuild files perf kbuild: update kbuild files according to last changes perf kbuild: remove legacy slang-related build variables perf kbuild: remove legacy libaudit-related build variables perf kbuild: remove legacy libgtk2-related build variables perf kbuild: remove legacy libperl-related build variables perf kbuild: remove legacy timerfd-related build variable perf kbuild: remove legacy demangle-related build variables perf kbuild: remove legacy on_exit-related build variable perf kbuild: remove legacy backtrace-related build variable perf kbuild: remove legacy numa-related build variable perf kbuild: remove legacy bionic-related build variable perf kbuild: remove legacy libelf-related build variables (1st part) perf kbuild: remove legacy libelf-related build variables (2nd part) perf kbuild: remove legacy libdwarf-related build variables perf kbuild: remove legacy libunwind-related build variables perf kbuild: remove legacy libpython-related build variable perf kbuild: add generated Kconfig build-test cases perf kbuild: fix installation of traceevent plugins perf kbuild: fix tarpkg target in tests/make perf kbuild: update Kbuild files with new and removed sources perf kbuild: update build test configurations perf kbuild: relocate the configs generating script perf kbuild: minor changes perf kbuild: remove Makefile.perf Jiri Olsa (5): kbuild: Introduce KBUILD_AUTOCONF variable for auto.conf include kbuild: Introduce KCONFIG_AUTOCONFIGDEP variable for conf tool perf tools: Kbuild builtin source related fixies perf tools: Kbuild source related fixies perf tools: Add kbuild support into Makefile.kbuild scripts/Makefile.build | 3 +- scripts/kconfig/confdata.c | 11 +- scripts/kconfig/lkc.h | 1 + tools/perf/Kbuild | 47 ++ tools/perf/Kconfig | 370 ++++++++ tools/perf/MANIFEST | 1 + tools/perf/Makefile | 2 +- tools/perf/Makefile.kbuild | 414 +++++++++ tools/perf/Makefile.perf | 930 --------------------- tools/perf/arch/Kbuild | 3 + tools/perf/arch/arm/Makefile | 4 +- tools/perf/arch/powerpc/Makefile | 2 +- tools/perf/arch/s390/Makefile | 2 +- tools/perf/arch/sh/Makefile | 2 +- tools/perf/arch/sparc/Makefile | 2 +- tools/perf/arch/x86/Kbuild | 2 + tools/perf/arch/x86/Makefile | 8 +- tools/perf/arch/x86/tests/Kbuild | 2 + tools/perf/arch/x86/util/Kbuild | 5 + tools/perf/bench/Kbuild | 12 + tools/perf/builtin-annotate.c | 8 +- tools/perf/builtin-bench.c | 5 +- tools/perf/builtin-cmds.h | 31 + tools/perf/builtin-help.c | 1 + tools/perf/builtin-inject.c | 2 +- tools/perf/builtin-kvm.c | 32 +- tools/perf/builtin-lock.c | 4 +- tools/perf/builtin-mem.c | 3 +- tools/perf/builtin-probe.c | 15 +- tools/perf/builtin-record.c | 14 +- tools/perf/builtin-report.c | 3 + tools/perf/builtin-sched.c | 2 + tools/perf/builtin-script.c | 6 +- tools/perf/builtin-top.c | 15 +- tools/perf/config/Makefile | 397 +++++---- tools/perf/config/defconfig | 54 ++ tools/perf/perf.c | 53 +- tools/perf/perf.h | 2 + tools/perf/scripts/perl/Perf-Trace-Util/Kbuild | 3 + tools/perf/scripts/python/Perf-Trace-Util/Kbuild | 5 + tools/perf/tests/Kbuild | 34 + tools/perf/tests/builtin-test.c | 3 +- tools/perf/tests/configs/MINIMAL_config | 60 ++ tools/perf/tests/configs/NO_BACKTRACE_config | 69 ++ .../perf/tests/configs/NO_BUILTIN_ANNOTATE_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_BENCH_config | 69 ++ .../tests/configs/NO_BUILTIN_BUILDID_CACHE_config | 69 ++ .../tests/configs/NO_BUILTIN_BUILDID_LIST_config | 68 ++ tools/perf/tests/configs/NO_BUILTIN_DIFF_config | 68 ++ tools/perf/tests/configs/NO_BUILTIN_EVLIST_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_HELP_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_INJECT_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_KMEM_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_KVM_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_LIST_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_LOCK_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_MEM_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_PROBE_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_RECORD_config | 60 ++ tools/perf/tests/configs/NO_BUILTIN_REPORT_config | 65 ++ tools/perf/tests/configs/NO_BUILTIN_SCHED_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_SCRIPT_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_STAT_config | 68 ++ tools/perf/tests/configs/NO_BUILTIN_TEST_config | 69 ++ .../perf/tests/configs/NO_BUILTIN_TIMECHART_config | 69 ++ tools/perf/tests/configs/NO_BUILTIN_TOP_config | 68 ++ tools/perf/tests/configs/NO_BUILTIN_TRACE_config | 69 ++ tools/perf/tests/configs/NO_DEMANGLE_config | 67 ++ tools/perf/tests/configs/NO_GTK2_config | 69 ++ tools/perf/tests/configs/NO_LIBAUDIT_config | 68 ++ tools/perf/tests/configs/NO_LIBDWARF_config | 67 ++ tools/perf/tests/configs/NO_LIBELF_MMAP_config | 69 ++ tools/perf/tests/configs/NO_LIBGTK2_INFOBAR_config | 69 ++ tools/perf/tests/configs/NO_LIBGTK2_config | 67 ++ tools/perf/tests/configs/NO_LIBNUMA_config | 69 ++ tools/perf/tests/configs/NO_LIBPERL_config | 69 ++ tools/perf/tests/configs/NO_LIBPYTHON_config | 69 ++ tools/perf/tests/configs/NO_LIBSLANG_config | 68 ++ .../tests/configs/NO_LIBUNWIND_DEBUG_FRAME_config | 69 ++ tools/perf/tests/configs/NO_STDIO_config | 69 ++ tools/perf/tests/configs/NO_TIMERFD_config | 69 ++ tools/perf/tests/configs/NO_TUI_config | 69 ++ tools/perf/tests/configs/NO_UNWIND_config | 65 ++ tools/perf/tests/configs/REF_config | 69 ++ tools/perf/tests/generate_configs.py | 33 + tools/perf/tests/make | 73 +- tools/perf/tests/tests.h | 4 +- tools/perf/ui/Kbuild | 15 + tools/perf/ui/browsers/Kbuild | 9 + tools/perf/ui/browsers/scripts.c | 4 + tools/perf/ui/gtk/Kbuild | 9 + tools/perf/ui/gtk/browser.c | 4 +- tools/perf/ui/gtk/gtk.h | 5 +- tools/perf/ui/gtk/util.c | 6 +- tools/perf/ui/setup.c | 14 +- tools/perf/ui/stdio/Kbuild | 1 + tools/perf/ui/tui/Kbuild | 4 + tools/perf/ui/ui.h | 4 +- tools/perf/util/Kbuild | 125 +++ tools/perf/util/PERF-VERSION-GEN | 4 + tools/perf/util/annotate.h | 4 +- tools/perf/util/generate-cmdlist.sh | 22 +- tools/perf/util/hist.h | 4 +- tools/perf/util/include/dwarf-regs.h | 4 +- tools/perf/util/map.c | 3 +- tools/perf/util/probe-event.c | 6 +- tools/perf/util/probe-finder.h | 5 +- tools/perf/util/scripting-engines/Kbuild | 11 + tools/perf/util/setup.py | 8 +- tools/perf/util/srcline.c | 8 +- tools/perf/util/symbol-elf.c | 3 +- tools/perf/util/symbol.h | 33 +- tools/perf/util/trace-event-scripting.c | 13 +- tools/perf/util/unwind-libunwind.c | 5 +- tools/perf/util/unwind.h | 7 +- tools/perf/util/util.c | 5 +- 116 files changed, 4556 insertions(+), 1274 deletions(-) create mode 100644 tools/perf/Kbuild create mode 100644 tools/perf/Kconfig create mode 100644 tools/perf/Makefile.kbuild delete mode 100644 tools/perf/Makefile.perf create mode 100644 tools/perf/arch/Kbuild create mode 100644 tools/perf/arch/x86/Kbuild create mode 100644 tools/perf/arch/x86/tests/Kbuild create mode 100644 tools/perf/arch/x86/util/Kbuild create mode 100644 tools/perf/bench/Kbuild create mode 100644 tools/perf/builtin-cmds.h create mode 100644 tools/perf/config/defconfig create mode 100644 tools/perf/scripts/perl/Perf-Trace-Util/Kbuild create mode 100644 tools/perf/scripts/python/Perf-Trace-Util/Kbuild create mode 100644 tools/perf/tests/Kbuild create mode 100644 tools/perf/tests/configs/MINIMAL_config create mode 100644 tools/perf/tests/configs/NO_BACKTRACE_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_ANNOTATE_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_BENCH_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_BUILDID_CACHE_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_BUILDID_LIST_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_DIFF_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_EVLIST_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_HELP_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_INJECT_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_KMEM_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_KVM_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_LIST_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_LOCK_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_MEM_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_PROBE_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_RECORD_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_REPORT_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_SCHED_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_SCRIPT_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_STAT_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_TEST_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_TIMECHART_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_TOP_config create mode 100644 tools/perf/tests/configs/NO_BUILTIN_TRACE_config create mode 100644 tools/perf/tests/configs/NO_DEMANGLE_config create mode 100644 tools/perf/tests/configs/NO_GTK2_config create mode 100644 tools/perf/tests/configs/NO_LIBAUDIT_config create mode 100644 tools/perf/tests/configs/NO_LIBDWARF_config create mode 100644 tools/perf/tests/configs/NO_LIBELF_MMAP_config create mode 100644 tools/perf/tests/configs/NO_LIBGTK2_INFOBAR_config create mode 100644 tools/perf/tests/configs/NO_LIBGTK2_config create mode 100644 tools/perf/tests/configs/NO_LIBNUMA_config create mode 100644 tools/perf/tests/configs/NO_LIBPERL_config create mode 100644 tools/perf/tests/configs/NO_LIBPYTHON_config create mode 100644 tools/perf/tests/configs/NO_LIBSLANG_config create mode 100644 tools/perf/tests/configs/NO_LIBUNWIND_DEBUG_FRAME_config create mode 100644 tools/perf/tests/configs/NO_STDIO_config create mode 100644 tools/perf/tests/configs/NO_TIMERFD_config create mode 100644 tools/perf/tests/configs/NO_TUI_config create mode 100644 tools/perf/tests/configs/NO_UNWIND_config create mode 100644 tools/perf/tests/configs/REF_config create mode 100644 tools/perf/tests/generate_configs.py create mode 100644 tools/perf/ui/Kbuild create mode 100644 tools/perf/ui/browsers/Kbuild create mode 100644 tools/perf/ui/gtk/Kbuild create mode 100644 tools/perf/ui/stdio/Kbuild create mode 100644 tools/perf/ui/tui/Kbuild create mode 100644 tools/perf/util/Kbuild create mode 100644 tools/perf/util/scripting-engines/Kbuild -- 1.9.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/