tools build: Add new build support
Adding new build framework into 'tools/build' to be used by tools. There's no change for actual building at this point, it comes in the next patches. The idea and more details are explained in the 'tools/build/Documentation/Build.txt' file. I adopted everything from the kernel build system, with some changes to allow for multiple binaries build definitions. While the kernel's build output is single image (forget modules) we need to be able to build several binaries/libraries. The basic idea is that sser provides 'Build' files with objects definitions like: perf-y += a.o perf-y += b.o libperf-y += c.o libperf-y += d.o and the build framework outputs files: perf-in.o # a.o, b.o compiled in libperf-in.o # c.o, d.o compiled in Signed-off-by: Jiri Olsa <jolsa@kernel.org> Tested-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Tested-by: Will Deacon <will.deacon@arm.com> Cc: Alexis Berlemont <alexis.berlemont@gmail.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-fbj22h4av0otlxupwcmrxgpa@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
此提交包含在:
8
tools/build/tests/ex/Build
一般檔案
8
tools/build/tests/ex/Build
一般檔案
@@ -0,0 +1,8 @@
|
||||
ex-y += ex.o
|
||||
ex-y += a.o
|
||||
ex-y += b.o
|
||||
ex-y += empty/
|
||||
|
||||
libex-y += c.o
|
||||
libex-y += d.o
|
||||
libex-y += arch/
|
23
tools/build/tests/ex/Makefile
一般檔案
23
tools/build/tests/ex/Makefile
一般檔案
@@ -0,0 +1,23 @@
|
||||
export srctree := ../../../..
|
||||
export CC := gcc
|
||||
export LD := ld
|
||||
export AR := ar
|
||||
|
||||
build := -f $(srctree)/tools/build/Makefile.build dir=. obj
|
||||
ex: ex-in.o libex-in.o
|
||||
gcc -o $@ $^
|
||||
|
||||
ex.%: FORCE
|
||||
make -f $(srctree)/tools/build/Makefile.build dir=. $@
|
||||
|
||||
ex-in.o: FORCE
|
||||
make $(build)=ex
|
||||
|
||||
libex-in.o: FORCE
|
||||
make $(build)=libex
|
||||
|
||||
clean:
|
||||
find . -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
|
||||
rm -f ex ex.i ex.s
|
||||
|
||||
.PHONY: FORCE
|
5
tools/build/tests/ex/a.c
一般檔案
5
tools/build/tests/ex/a.c
一般檔案
@@ -0,0 +1,5 @@
|
||||
|
||||
int a(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
@@ -0,0 +1,2 @@
|
||||
libex-y += e.o
|
||||
libex-y += f.o
|
@@ -0,0 +1,5 @@
|
||||
|
||||
int e(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
@@ -0,0 +1,5 @@
|
||||
|
||||
int f(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
5
tools/build/tests/ex/b.c
一般檔案
5
tools/build/tests/ex/b.c
一般檔案
@@ -0,0 +1,5 @@
|
||||
|
||||
int b(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
5
tools/build/tests/ex/c.c
一般檔案
5
tools/build/tests/ex/c.c
一般檔案
@@ -0,0 +1,5 @@
|
||||
|
||||
int c(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
5
tools/build/tests/ex/d.c
一般檔案
5
tools/build/tests/ex/d.c
一般檔案
@@ -0,0 +1,5 @@
|
||||
|
||||
int d(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
19
tools/build/tests/ex/ex.c
一般檔案
19
tools/build/tests/ex/ex.c
一般檔案
@@ -0,0 +1,19 @@
|
||||
|
||||
int a(void);
|
||||
int b(void);
|
||||
int c(void);
|
||||
int d(void);
|
||||
int e(void);
|
||||
int f(void);
|
||||
|
||||
int main(void)
|
||||
{
|
||||
a();
|
||||
b();
|
||||
c();
|
||||
d();
|
||||
e();
|
||||
f();
|
||||
|
||||
return 0;
|
||||
}
|
新增問題並參考
封鎖使用者