Files
SDK_IMX6/Makefile

67 lines
1.9 KiB
Makefile

LOCAL_DIR := $(strip $(shell pwd))
SDK_TOP := $(LOCAL_DIR)
UBOOT_DIR := $(LOCAL_DIR)/uboot
KERNEL_DIR := $(LOCAL_DIR)/kernel
BUSYBOX_DIR := $(LOCAL_DIR)/busybox
OUTPUT_DIR := $(LOCAL_DIR)/output
CPU_CORES = $(shell grep '^core id' /proc/cpuinfo |wc -l)
UBOOT_DEFCONFIG ?= mx6ul_14x14_evk_emmc_defconfig
UBOOT_IMAGE ?= u-boot-imx6ull-14x14-ddr512-emmc.imx
KERNEL_DEFCONFIG ?= imx_v7_defconfig
KERNEL_DTB ?= imx6ul-14x14-evk.dtb
BUSYBOX_DEFCONFIG ?= imx6ul_14x14_evk_defconfig
export ARCH ?= arm
export CROSS_COMPILE ?= arm-linux-gnueabihf-
build_all := uboot kernel
clean_all := $(addsuffix _clean,$(build_all))
.PHONY : clean $(build_all) $(clean_all)
all: ${build_all}
chk_env:
if [ ! -e ${OUTPUT_DIR} ]; then mkdir -p ${OUTPUT_DIR}; fi
busybox: chk_env
# $(MAKE) -C $(BUSYBOX_DIR) $(BUSYBOX_DEFCONFIG)
$(MAKE) -C $(BUSYBOX_DIR) -j${CPU_CORES}
$(MAKE) -C $(BUSYBOX_DIR) install CONFIG_PREFIX=$(OUTPUT_DIR)/rootfs -j${CPU_CORES}
busybox_config: chk_env
# $(MAKE) -C $(BUSYBOX_DIR) $(BUSYBOX_DEFCONFIG)
$(MAKE) -C $(BUSYBOX_DIR) menuconfig
# $(MAKE) -C $(BUSYBOX_DIR) savedefconfig
# mv $(BUSYBOX_DIR)/defconfig $(BUSYBOX_DIR)/configs/$(BUSYBOX_DEFCONFIG)
busybox_clean:
$(MAKE) clean -C $(BUSYBOX_DIR)
uboot: chk_env
$(MAKE) -C $(UBOOT_DIR) $(UBOOT_DEFCONFIG)
$(MAKE) -C $(UBOOT_DIR) -j${CPU_CORES}
cp -arf ${UBOOT_DIR}/u-boot.imx ${OUTPUT_DIR}/${UBOOT_IMAGE};
uboot_clean:
$(MAKE) clean -C $(UBOOT_DIR)
kernel: chk_env
$(MAKE) -C $(KERNEL_DIR) $(KERNEL_DEFCONFIG)
$(MAKE) -C $(KERNEL_DIR) -j${CPU_CORES}
cp -arf ${KERNEL_DIR}/arch/${ARCH}/boot/zImage ${OUTPUT_DIR}/;
cp -arf ${KERNEL_DIR}/arch/${ARCH}/boot/dts/${KERNEL_DTB} ${OUTPUT_DIR}/;
kernel_clean:
$(MAKE) clean -C $(KERNEL_DIR)
clean:
$(MAKE) $(clean_all)
distclean:
$(MAKE) -C $(UBOOT_DIR) distclean
$(MAKE) -C $(KERNEL_DIR) distclean
rm -rf ${OUTPUT_DIR}