kernel 增加自定義巨集編譯開關
在MAKEFILE適當位置增加如下定義:
LINUXINCLUDE := \
-I$(srctree)/arch/$(hdr-arch)/include \
-Iarch/$(hdr-arch)/include/generated \
$(if $(KBUILD_SRC), -I$(srctree)/include) \
-Iinclude \
$(USERINCLUDE)
KBUILD_CPPFLAGS := -D__KERNEL__
KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common \
-Werror-implicit-function-declaration \
-Wno-format-security \
-fno-delete-null-pointer-checks \
-Werror=format -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast
KBUILD_AFLAGS_KERNEL :=
KBUILD_CFLAGS_KERNEL :=
KBUILD_AFLAGS := -D__ASSEMBLY__
KBUILD_AFLAGS_MODULE := -DMODULE
KBUILD_CFLAGS_MODULE := -DMODULE
KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
###########333
#zheng add macro define
include $(srctree)/vendor_define_gen.mk
KBUILD_CFLAGS += $(KERNEL_CDEFS)
KBUILD_CPPFLAGS += $(KERNEL_CDEFS)
$(error ++++++kingberry custom defines: $(KERNEL_CDEFS))
#kingberry.end
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
export CPP AR NM STRIP OBJCOPY OBJDUMP
export MAKE AWK GENKSYMS INSTALLKERNEL PERL UTS_MACHINE
export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
vendor_define_gen.mk這個檔案定義如下:
MY_PROJECT := $(subst full_,,$(TARGET_PRODUCT))
include $(srctree)/../device/eastaeon/$(MY_PROJECT)/vendor/vendor_config.mk
-include $(srctree)/../device/eastaeon/$(MY_PROJECT)/vendor/vendor_config_$(XXXXXXXX_VENDOR).mk
include $(srctree)/../device/eastaeon/$(MY_PROJECT)/ProjectConfig.mk
include $(srctree)/../build/core/my_add_mtk_macro_def.mk
KERNEL_CDEFS=$(call mtk.custom.generate-macros)
#$(info *******************test zheng ************************** )
#$(error $(KERNEL_CDEFS) )
/////////////////////////////////////////////
lk中增加巨集定義:
# When the host arch is ARM, ensure stack protection code is not emitted since
# it's not supported by the bootloader's libc
ifneq ($(shell uname -m | grep "arm.*"),)
CFLAGS += -fno-stack-protector
endif
CPPFLAGS := -fno-exceptions -fno-rtti -fno-threadsafe-statics
#CPPFLAGS += -Weffc++
ASMFLAGS := -DASSEMBLY
LDFLAGS :=
CFLAGS += -ffunction-sections -fdata-sections
LDFLAGS += -gc-sections
#xxxxxx.zheng add for COMDEF
include make/vendor_define_gen.mk
#kingberry.end
# top level rule
all:: $(OUTBIN) $(OUTELF).lst $(OUTELF).debug.lst $(OUTELF).sym $(OUTELF).size APPSBOOTHEADER
# the following three object lists are identical except for the ordering
# which is bootobjs, kobjs, objs
BOOTOBJS :=
OBJS :=
# a linker script needs to be declared in one of the project/target/platform files
LINKER_SCRIPT :=
# anything you add here will be deleted in make clean
GENERATED := $(CONFIGHEADER)
對應make下檔案:
MY_PROJECT := $(subst full_,,$(TARGET_PRODUCT))
include $(srctree)/../device/eastaeon/$(MY_PROJECT)/vendor/vendor_config.mk
-include $(srctree)/../device/eastaeon/$(MY_PROJECT)/vendor/vendor_config_$(XXXXXX_VENDOR).mk
include $(srctree)/../device/eastaeon/$(MY_PROJECT)/ProjectConfig.mk
include $(srctree)/../build/core/my_add_mtk_macro_def.mk
MTK_CDEFS += $(call mtk.custom.generate-macros)
#$(error ******************* XXXXX.zheng ************************** )
#$(error $(MTK_CDEFS) )
CPPFLAGS +=
CFLAGS += $(MTK_CDEFS)
ASMFLAGS += $(MTK_CDEFS)
相關文章
- gcc編譯階段列印巨集定義的內容GC編譯
- CloudFoundry增加自定義serviceCloud
- laravel admin 列展開 自定義行操作 增加編輯修改按鈕Laravel
- Superset SSO改造和自定義巨集命令
- ubuntu編譯安裝kernel教程。Ubuntu編譯
- android 5.1 kernel 編譯模組Android編譯
- 自定義view————開關buttonView
- 關於VS中區分debug與release,32位與64位編譯的巨集定義編譯
- MD04 增加自定義列
- VC增加自定義訊息 (轉)
- 一個C++巨集定義與列舉定義重複的編譯錯誤C++編譯
- 編譯linux kernel預裝工具list編譯Linux
- uniapp增加自定義埋點功能APP
- Request 增加自定義欄位的方式
- ios開發的巨集定義iOS
- TDengine 3.0 中如何編譯、建立和使用自定義函式編譯函式
- Ascend C 自定義運算元 Kernel Launch呼叫入門
- C語言-->(十四)結構體、巨集、編譯C語言結構體編譯
- macOS自定義定時開關機教程Mac
- PostgreSQL編寫自定義extensionSQL
- tableau自定義地理編碼
- 使用 ccache 增加 Xcode 編譯速度XCode編譯
- C語言學習第18篇---巨集定義與使用 / 條件編譯使用分析C語言編譯
- [譯] Ruby 2.6 Kernel 的system 方法增加是否丟擲異常引數。
- 關於自定義 Alert
- Qt自定義開關按鈕控制元件QT控制元件
- [譯]Stack View 自定義間隙View
- 【譯】vue 自定義指令的魅力Vue
- Excel 開始支援使用 JavaScript 編寫自定義函式ExcelJavaScript函式
- iOS-日常開發常用巨集定義iOS
- Linux Kernel 程式碼藝術——編譯時斷言Linux編譯
- 編譯linux kernel及製作initrd ( by quqi99 )編譯Linux
- Android 自定義實現switch開關按鈕Android
- android自定義開關控制元件-SlideSwitchAndroid控制元件IDE
- 分散式監控系統之Zabbix巨集、模板和自定義item分散式
- dedecms模板自定義相關
- django admin中增加自定義超連結欄位Django
- 請教:關於log4j資訊入庫增加自定義欄位的問題