Makefile: Convert to a more standard format

Convert the Makefile to a more standard format and don't forcefully
overwrite a users enviroment.

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
Alistair Francis 2018-12-21 16:44:55 -08:00 committed by Anup Patel
parent d6ddfdce39
commit eeab92f242

View file

@ -100,35 +100,38 @@ GENFLAGS += $(platform-genflags-y)
GENFLAGS += $(firmware-genflags-y) GENFLAGS += $(firmware-genflags-y)
# Setup compilation environment # Setup compilation environment
cpp=$(CROSS_COMPILE)cpp CC ?= $(CROSS_COMPILE)gcc
cppflags+=$(GENFLAGS) CFLAGS = -g -Wall -Werror -nostdlib -fno-strict-aliasing -O2
cppflags+=$(platform-cppflags-y) CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
cppflags+=$(firmware-cppflags-y) CFLAGS += -mno-save-restore -mstrict-align
cc=$(CROSS_COMPILE)gcc CFLAGS += $(GENFLAGS)
cflags=-g -Wall -Werror -nostdlib -fno-strict-aliasing -O2 CFLAGS += $(platform-cflags-y)
cflags+=-fno-omit-frame-pointer -fno-optimize-sibling-calls CFLAGS += $(firmware-cflags-y)
cflags+=-mno-save-restore -mstrict-align
cflags+=$(GENFLAGS) CPP ?= $(CROSS_COMPILE)cpp
cflags+=$(platform-cflags-y) CPPFLAGS += $(GENFLAGS)
cflags+=$(firmware-cflags-y) CPPFLAGS += $(platform-cppflags-y)
cflags+=$(EXTRA_CFLAGS) CPPFLAGS += $(firmware-cppflags-y)
as=$(CROSS_COMPILE)gcc
asflags=-g -Wall -nostdlib -D__ASSEMBLY__ AS = $(CC)
asflags+=-fno-omit-frame-pointer -fno-optimize-sibling-calls ASFLAGS = -g -Wall -nostdlib -D__ASSEMBLY__
asflags+=-mno-save-restore -mstrict-align ASFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
asflags+=$(GENFLAGS) ASFLAGS += -mno-save-restore -mstrict-align
asflags+=$(platform-asflags-y) ASFLAGS += $(GENFLAGS)
asflags+=$(firmware-asflags-y) ASFLAGS += $(platform-asflags-y)
asflags+=$(EXTRA_ASFLAGS) ASFLAGS += $(firmware-asflags-y)
ar=$(CROSS_COMPILE)ar
arflags=rcs AR ?= $(CROSS_COMPILE)ar
ld=$(CROSS_COMPILE)gcc ARFLAGS = rcs
ldflags=-g -Wall -nostdlib -Wl,--build-id=none
ldflags+=$(platform-ldflags-y) LD ?= $(CROSS_COMPILE)ld
ldflags+=$(firmware-ldflags-y) LDFLAGS += -g -Wall -nostdlib -Wl,--build-id=none -N
merge=$(CROSS_COMPILE)ld LDFLAGS += $(platform-ldflags-y)
mergeflags=-r LDFLAGS += $(firmware-ldflags-y)
objcopy=$(CROSS_COMPILE)objcopy
MERGEFLAGS += -r
OBJCOPY ?= $(CROSS_COMPILE)objcopy
# Setup functions for compilation # Setup functions for compilation
define dynamic_flags define dynamic_flags
@ -136,7 +139,7 @@ define dynamic_flags
endef endef
merge_objs = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ merge_objs = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
echo " MERGE $(subst $(build_dir)/,,$(1))"; \ echo " MERGE $(subst $(build_dir)/,,$(1))"; \
$(merge) $(mergeflags) $(2) -o $(1) $(LD) $(MERGEFLAGS) $(2) -o $(1)
merge_deps = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ merge_deps = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
echo " MERGE-DEP $(subst $(build_dir)/,,$(1))"; \ echo " MERGE-DEP $(subst $(build_dir)/,,$(1))"; \
cat $(2) > $(1) cat $(2) > $(1)
@ -162,32 +165,32 @@ inst_header_dir = $(CMD_PREFIX)mkdir -p $(1); \
cp -rf $(2) $(1) cp -rf $(2) $(1)
compile_cpp = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ compile_cpp = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
echo " CPP $(subst $(build_dir)/,,$(1))"; \ echo " CPP $(subst $(build_dir)/,,$(1))"; \
$(cpp) $(cppflags) $(2) | grep -v "\#" > $(1) $(CPP) $(CPPFLAGS) $(2) | grep -v "\#" > $(1)
compile_cc_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ compile_cc_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
echo " CC-DEP $(subst $(build_dir)/,,$(1))"; \ echo " CC-DEP $(subst $(build_dir)/,,$(1))"; \
echo -n `dirname $(1)`/ > $(1) && \ echo -n `dirname $(1)`/ > $(1) && \
$(cc) $(cflags) $(call dynamic_flags,$(1),$(2)) \ $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) \
-MM $(2) >> $(1) || rm -f $(1) -MM $(2) >> $(1) || rm -f $(1)
compile_cc = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ compile_cc = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
echo " CC $(subst $(build_dir)/,,$(1))"; \ echo " CC $(subst $(build_dir)/,,$(1))"; \
$(cc) $(cflags) $(call dynamic_flags,$(1),$(2)) -c $(2) -o $(1) $(CC) $(CFLAGS) $(call dynamic_flags,$(1),$(2)) -c $(2) -o $(1)
compile_as_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ compile_as_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
echo " AS-DEP $(subst $(build_dir)/,,$(1))"; \ echo " AS-DEP $(subst $(build_dir)/,,$(1))"; \
echo -n `dirname $(1)`/ > $(1) && \ echo -n `dirname $(1)`/ > $(1) && \
$(as) $(asflags) $(call dynamic_flags,$(1),$(2)) \ $(AS) $(ASFLAGS) $(call dynamic_flags,$(1),$(2)) \
-MM $(2) >> $(1) || rm -f $(1) -MM $(2) >> $(1) || rm -f $(1)
compile_as = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ compile_as = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
echo " AS $(subst $(build_dir)/,,$(1))"; \ echo " AS $(subst $(build_dir)/,,$(1))"; \
$(as) $(asflags) $(call dynamic_flags,$(1),$(2)) -c $(2) -o $(1) $(AS) $(ASFLAGS) $(call dynamic_flags,$(1),$(2)) -c $(2) -o $(1)
compile_ld = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ compile_ld = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
echo " LD $(subst $(build_dir)/,,$(1))"; \ echo " LD $(subst $(build_dir)/,,$(1))"; \
$(ld) $(3) $(ldflags) -Wl,-T$(2) -o $(1) $(CC) $(3) $(LDFLAGS) -Wl,-T$(2) -o $(1)
compile_ar = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ compile_ar = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
echo " AR $(subst $(build_dir)/,,$(1))"; \ echo " AR $(subst $(build_dir)/,,$(1))"; \
$(ar) $(arflags) $(1) $(2) $(AR) $(ARFLAGS) $(1) $(2)
compile_objcopy = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \ compile_objcopy = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
echo " OBJCOPY $(subst $(build_dir)/,,$(1))"; \ echo " OBJCOPY $(subst $(build_dir)/,,$(1))"; \
$(objcopy) -S -O binary $(2) $(1) $(OBJCOPY) -S -O binary $(2) $(1)
targets-y = $(build_dir)/lib/libsbi.a targets-y = $(build_dir)/lib/libsbi.a
ifdef PLATFORM ifdef PLATFORM