diff options
author | Furquan Shaikh <furquan@google.com> | 2014-07-31 09:28:55 -0700 |
---|---|---|
committer | Aaron Durbin <adurbin@google.com> | 2014-08-11 15:42:20 +0200 |
commit | 133096b6dc31163f59f658e15f2eb342a0de2ac6 (patch) | |
tree | 39740746063a22fda57ebc1d69da812cdb031fba /toolchain.inc | |
parent | 9d2cb7c11e7498d0fd56571edd03158fc0c96225 (diff) | |
download | coreboot-133096b6dc31163f59f658e15f2eb342a0de2ac6.tar.gz coreboot-133096b6dc31163f59f658e15f2eb342a0de2ac6.tar.bz2 coreboot-133096b6dc31163f59f658e15f2eb342a0de2ac6.zip |
coreboot classes: Add dynamic classes to coreboot
Provide functionality to create dynamic classes based on program name and
architecture for which the program needs to be compiled/linked. define_class
takes program_name and arch as its arguments and adds the program_name to
classes-y to create dynamic class. Also, compiler toolset is created for the
specified arch. All the files for this program can then be added to
program_name-y += .. Ensure that define_class is called before any files are
added to the class. Check subdirs-y for order of directory inclusion.
One such example of dynamic class is rmodules. Multiple rmodules can be used
which need to be compiled for different architectures. With dynamic classes,
this is possible.
Change-Id: Ie143ed6f79ced5f58c200394cff89b006bc9b342
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: http://review.coreboot.org/6426
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
Diffstat (limited to 'toolchain.inc')
-rw-r--r-- | toolchain.inc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/toolchain.inc b/toolchain.inc index 842473b648a7..3b9c5d297b2b 100644 --- a/toolchain.inc +++ b/toolchain.inc @@ -98,6 +98,18 @@ CPPFLAGS_$(1) += $$(CPPFLAGS_common) $$(CPPFLAGS_$(2)) LIBGCC_FILE_NAME_$(1) = $(wildcard $(shell $(CC_$(2)) $(CFLAGS_$(2)) -print-libgcc-file-name)) endef +# define_class: Allows defining any program as dynamic class and compiler tool +# set for the same based on the architecture for which the program is to be +# compiled +# @1: program (class name) +# @2: architecture for which the program needs to be compiled +# IMP: Ensure that define_class is called before any .c or .S files are added to +# the class of the program. Check subdirs-y for order of subdirectory inclusions +define define_class +classes-y += $(1) +$(eval $(call create_class_compiler,$(1),$(2))) +endef + # initialize standard toolchain (CC,AS and others) for give stage # @1 : stage for which the toolchain is to be initialized init_standard_toolchain = \ |