189 lines
6.5 KiB
Makefile
Executable File
189 lines
6.5 KiB
Makefile
Executable File
include $(MELIS_BASE)/scripts/Makefile.common
|
|
|
|
OBJCOPYFLAGS := -S -O binary \
|
|
-R .note \
|
|
-R .comment \
|
|
-R COMMON \
|
|
-R .ARM.attributes \
|
|
-R .en_frame \
|
|
-R .init -R .fini \
|
|
--gap-fill=0xff
|
|
|
|
subdir-ccflags-y += -I$(srctree)/ekernel/arch \
|
|
-I$(srctree)/ekernel/core/rt-thread/include \
|
|
-I$(srctree)/ekernel/core/rt-thread/include/libc \
|
|
-I$(srctree)/ekernel/drivers/include/drv \
|
|
-I$(srctree)/ekernel/drivers/include/hal \
|
|
-I$(srctree)/ekernel/drivers/include/osal \
|
|
-I$(srctree)/ekernel/drivers/rtos-hal/hal/source/ccmu/sunxi \
|
|
-I$(srctree)/ekernel/components/finsh_cli \
|
|
-I$(srctree)/ekernel/components/thirdparty/dfs/include \
|
|
-I$(srctree)/ekernel/drivers/drv/source/sound \
|
|
-D__LINUX_ERRNO_EXTENSIONS__
|
|
|
|
subdir-ccflags-y += -DFD_SETSIZE=1024
|
|
|
|
MOD_NAME := melis30
|
|
$(MOD_NAME)-objs += built-in.o
|
|
obj-m += $(MOD_NAME).o
|
|
|
|
obj-y := arch/ core/ drivers/ components/
|
|
obj-y += ../projects/$(TARGET_BOARD)/src/
|
|
|
|
usrlibs-y += -L$(srctree)/${elibrary-libs}
|
|
|
|
usrlibs-$(CONFIG_DRIVERS_VIN) += -L$(srctree)/ekernel/drivers/rtos-hal/hal/source/vin/vin_isp/isp_server/out/isp600 \
|
|
--start-group \
|
|
-lisp_algo \
|
|
--end-group
|
|
|
|
usrlibs-${CONFIG_SDK_RELEASE} += -L$(srctree)/${elibrary-libs}/3rd/v4l2/ \
|
|
-L$(srctree)/${elibrary-libs}/3rd/adbd/ \
|
|
--start-group \
|
|
-lv4l2 -ladbd \
|
|
--end-group
|
|
|
|
usrlibs-${VIDEO_SUNXI_VIN} += --require-defined=vin_init
|
|
usrlibs-${CONFIG_COMPONENT_ADBD}+= --require-defined=adbd_init
|
|
|
|
ifneq ($(filter y, $(CONFIG_mpp_venc) $(CONFIG_mpp_vdec)),)
|
|
usrlibs-y += -L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/base \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/library/${LIB_DIR} \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/memory \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/vdecoder \
|
|
--start-group \
|
|
-lcdc_base \
|
|
-lVE \
|
|
-lMemAdapter \
|
|
--end-group
|
|
endif
|
|
|
|
usrlibs-$(CONFIG_mpp_venc) += -L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/base \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/library/${LIB_DIR} \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/memory \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/vdecoder \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/vencoder \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/vencoder/base \
|
|
--start-group \
|
|
-lvencoder \
|
|
-lvenc_base \
|
|
-lvenc_codec \
|
|
--end-group
|
|
|
|
usrlibs-$(CONFIG_mpp_vdec) += -L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/base \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/library/${LIB_DIR} \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/memory \
|
|
-L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libcedarc/vdecoder \
|
|
--start-group \
|
|
-lawh264 \
|
|
-lawh265 \
|
|
-lawmjpegplus \
|
|
-lvideoengine \
|
|
-lvdecoder \
|
|
--end-group
|
|
|
|
usrlibs-$(CONFIG_mpp_vi) += -L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/libisp/out \
|
|
--start-group \
|
|
-liniparser \
|
|
-lisp_algo \
|
|
-lisp_dev \
|
|
-lisp_ini \
|
|
-lisp_math \
|
|
--end-group
|
|
|
|
usrlibs-$(CONFIG_mpp_aenc) += -L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/AudioLib/lib \
|
|
--start-group \
|
|
-laacenc \
|
|
-lmp3enc \
|
|
--end-group
|
|
|
|
usrlibs-$(CONFIG_mpp_adec) += -L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/AudioLib/lib \
|
|
--start-group \
|
|
-laac \
|
|
-lmp3 \
|
|
-lwav \
|
|
--end-group
|
|
|
|
usrlibs-$(CONFIG_mpp_aec) += -L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/aec_lib \
|
|
--start-group \
|
|
-lAec \
|
|
--end-group
|
|
|
|
usrlibs-$(CONFIG_SUNXI_AEC_TEST) += -L$(srctree)/elibrary/media/libaec \
|
|
--start-group \
|
|
-laec \
|
|
--end-group
|
|
|
|
usrlibs-$(CONFIG_mpp_softdrc) += -L$(srctree)/ekernel/components/avframework/eyesee-mpp/middleware/sun8iw19p1/media/LIBRARY/drc_lib \
|
|
--start-group \
|
|
-lDrc \
|
|
--end-group
|
|
|
|
usrlibs-$(CONFIG_XR829) += -L$(srctree)/ekernel/drivers/drv/source/net/xradio \
|
|
--start-group \
|
|
-lxr829_40M \
|
|
--end-group
|
|
|
|
usrlibs-$(CONFIG_DRIVERS_NAND_FLASH) += -L$(srctree)/ekernel/drivers/rtos-hal/hal/source/nand_flash/ \
|
|
--start-group \
|
|
-lmelis-nand-sun20iw1 \
|
|
--end-group
|
|
|
|
linkscript = -T$(prjtree)/$(TARGET_BOARD)/kernel.lds
|
|
|
|
lnkflags-y += --omagic --gc-sections -cref --entry=_start \
|
|
-X ${linkscript} \
|
|
-Map=$(obj)/linker.map --build-id=sha1
|
|
|
|
ifeq ($(CONFIG_KALLSYMS), y)
|
|
# Usage:
|
|
# $(call link_module, input1.o, input2.o, output.o)
|
|
define link_module
|
|
$(Q)$(LD) $(ld_flags) -o $3 $1 \
|
|
$(lnkflags-y) \
|
|
--start-group \
|
|
$(usrlibs-y) \
|
|
$(deplibs-y) \
|
|
--end-group \
|
|
$2
|
|
endef
|
|
# Usage:
|
|
# $(call gen_kall_o, input.o, output.o)
|
|
define gen_kall_o
|
|
nm $1 | scripts/kallsyms $(if $(CONFIG_KALLSYMS_ALL), --all-symbols,) > sym.S; \
|
|
$(CC) -c -o $2 sym.S \
|
|
${KBUILD_AFLAGS} ${KBUILD_AFLAGS_KERNEL} \
|
|
${NOSTDINC_FLAGS} ${LINUXINCLUDE} \
|
|
${KBUILD_CPPFLAGS}; \
|
|
rm sym.S;
|
|
endef
|
|
endif
|
|
|
|
$(obj)/$(MOD_NAME).bin :%.bin :%.o FORCE
|
|
ifeq ($(CONFIG_KALLSYMS), y)
|
|
@# step 1 Link mm1.o it has all symbols buf kallsyms is empty
|
|
$(Q)$(call link_module, ekernel/$($(MOD_NAME)-objs), , .tmp_melis1.o)
|
|
$(Q)$(call gen_kall_o, .tmp_melis1.o, .tmp_kallsyms1.o)
|
|
@# step 2 Libk mm2 to geve kallsyms with right size
|
|
$(Q)$(call link_module, ekernel/$($(MOD_NAME)-objs), .tmp_kallsyms1.o, .tmp_melis2.o)
|
|
$(Q)$(call gen_kall_o, .tmp_melis2.o, .tmp_kallsyms2.o)
|
|
@# step 3 The correct kallsyms is linked to finale obj file
|
|
$(Q)$(call link_module, ekernel/$($(MOD_NAME)-objs), .tmp_kallsyms2.o, ekernel/$(MOD_NAME).o)
|
|
$(Q)rm .tmp_melis1.o
|
|
$(Q)rm .tmp_melis2.o
|
|
$(Q)rm .tmp_kallsyms1.o
|
|
$(Q)rm .tmp_kallsyms2.o
|
|
endif
|
|
$(call if_changed,objcopy)
|
|
$(call if_changed,renameelf)
|
|
$(Q)cp -f $@ $(prjtree)/$(TARGET_BOARD)/epos.img
|
|
$(Q)$(OBJDUMP) -d $(<:.o=.elf) > $(obj)/$(MOD_NAME).dis
|
|
$(Q)mksysmap $(<:.o=.elf) $(obj)/System.map
|
|
$(Q)echo -e '\033[0;31;1m'
|
|
$(Q)$(SIZE) $(<:.o=.elf)
|
|
$(Q)echo -e '\033[0m'
|
|
|
|
always := $(MOD_NAME).bin
|
|
|
|
clean:mod_clean
|