AV_BOARDS=spk300g EOC_BOARDS=spk300g_eoc scr310 FCM3_UNUSE=buildroot/target/device/Spidcom/arizona \ buildroot/target/device/Spidcom/arizona_defconfig \ u-boot-1.1.6/board/arizona \ u-boot-1.1.6/cpu/spc300-fcm3 \ u-boot-1.1.6/include/asm-arm/arch-spc300-fcm3 \ linux-2.6.25.10-spc300/arch/arm/mach-spc300/board-arizona.c FLASHFS_UNUSE=tools/flashfs/image/etc/init.d/S50plctest \ tools/flashfs/image/etc/plcdrv.conf NVRAM_UNUSE=tools/genNVRAM/nvram_dk_01.conf tools/genNVRAM/nvram_eb_01.conf AV_UNUSE=devkit Makefile application/onlined $(FCM3_UNUSE) $(FLASHFS_UNUSE) $(NVRAM_UNUSE) tools/spidupd EOC_UNUSE=devkit Makefile $(FCM3_UNUSE) $(FLASHFS_UNUSE) $(NVRAM_UNUSE) tools/spidupd AV_PLC_BINS= plcd plcdrv cesar-plc EOC_PLC_BINS=plcd plcdrv cesar-eoc-master cesar-eoc-slave GEN_BINS=uboot linux flashfs ################################################################## BUNDLE_VERSION=$(shell git describe --always 2>/dev/null) LINUX_VERSION=2.6.25.10 UBOOT_VERSION=1.1.6 BUNDLE_NAME=SPiDBundle-spc300-$(BUNDLE_TYPE)-$(BUNDLE_VERSION) BUNDLE_UPPER_PATH=/tmp/$(BUNDLE_NAME) BUNDLE_PATH=$(BUNDLE_UPPER_PATH)/$(BUNDLE_NAME) BUNDLE_COMPILE_PATH=$(BUNDLE_PATH)/bundle BUNDLE_GENBIN_PATH=$(BUNDLE_PATH)/binaries BUNDLE_PLCBIN_PATH=$(BUNDLE_COMPILE_PATH)/binaries PLCDRV_NAME=plcdrv.ko PLCDRV_PATH=$(CURDIR)/devkit/plcdrv/arm PLCD_NAME=plcd PLCD_PATH=$(CURDIR)/devkit/plcd CESAR_NAME=plc.rom CESAR_EOC_MASTER_NAME=plc-master.rom CESAR_EOC_SLAVE_NAME=plc-slave.rom CESAR_PATH=$(CURDIR)/../cesar/projects LINUX_NAME=linux-$(LINUX_VERSION)-arm LINUX_PATH=$(CURDIR)/linux-$(LINUX_VERSION)-spc300 BUILDROOT_GIT_PATH=$(CURDIR)/buildroot BUILDROOT_PATH=$(BUNDLE_COMPILE_PATH)/buildroot UBOOT_NAME=u-boot.bin UBOOT_PATH=$(BUNDLE_COMPILE_PATH)/u-boot-$(UBOOT_VERSION) FLASHFS_NAME=flashfs.jffs2 FLASHFS_PATH=$(BUNDLE_COMPILE_PATH)/tools/flashfs ################################################################## ifdef V ifeq ("$(origin V)", "command line") KBUILD_VERBOSE = $(V) endif endif ifndef KBUILD_VERBOSE KBUILD_VERBOSE = 0 endif ifeq ($(KBUILD_VERBOSE),1) Q = else Q = @ endif ################################################################## bundle: bundle-av bundle-eoc bundle-clean: bundle-av-clean bundle-eoc-clean bundle-av: $(Q)$(MAKE) bundle-standalone BUNDLE_TYPE=av BOARDS="$(AV_BOARDS)" PLC_BINS="$(AV_PLC_BINS)" UNUSE="$(AV_UNUSE)" bundle-eoc: $(Q)$(MAKE) bundle-standalone BUNDLE_TYPE=eoc BOARDS="$(EOC_BOARDS)" PLC_BINS="$(EOC_PLC_BINS)" UNUSE="$(EOC_UNUSE)" bundle-av-clean: $(Q)$(MAKE) bundle-clean-standalone BUNDLE_TYPE=av bundle-eoc-clean: $(Q)$(MAKE) bundle-clean-standalone BUNDLE_TYPE=eoc bundle-standalone: $(Q)if [ "$(BUNDLE_TYPE)" = "" ]; then \ echo "You need to fill BUNDLE_TYPE variable (av or eoc)"; false; \ fi $(Q)echo "Prepare $(BUNDLE_NAME)..." $(Q)if [ -d $(BUNDLE_PATH) ]; then \ echo "Bundle already exist please remove it before ($(BUNDLE_PATH))"; false; \ fi $(Q)echo "Generate bundle sources..." $(Q)mkdir -p $(BUNDLE_UPPER_PATH) $(BUNDLE_PATH) $(Q)git checkout-index --prefix=$(BUNDLE_PATH)/ -a -q $(Q)mv $(BUNDLE_PATH)/cleopatre $(BUNDLE_COMPILE_PATH) $(Q)rm -rf $(BUNDLE_PATH)/.git $(Q)sed -i -e 's/\(BUNDLE_VERSION *= *\)\(.*\)/\1$(BUNDLE_VERSION)/' $(BUILDROOT_PATH)/target/device/Spidcom/Makefile.in $(Q)cd $(BUNDLE_COMPILE_PATH) ; rm -rf $(UNUSE) $(Q)echo "Generate PLC binaries..." $(Q)mkdir -p $(BUNDLE_PLCBIN_PATH) $(Q)[ "$(PLC_BINS)" = "" ] || $(MAKE) $(PLC_BINS) $(Q)echo "Generate Bundle archive..." $(Q)cd $(BUNDLE_UPPER_PATH) ; tar -cf $(BUNDLE_NAME).tar $(notdir $(BUNDLE_PATH)) $(Q)echo "Generate Bundle binaries..." $(Q)mkdir -p $(BUNDLE_GENBIN_PATH) $(Q)cp -R $(BUILDROOT_GIT_PATH)/download $(BUILDROOT_PATH) $(Q)[ "$(GEN_BINS)" = "" ] || $(MAKE) $(GEN_BINS) $(Q)echo "Generate end of Bundle archive..." $(Q)cd $(BUNDLE_UPPER_PATH) ; tar -rf $(BUNDLE_NAME).tar $(notdir $(BUNDLE_PATH))/$(notdir $(BUNDLE_GENBIN_PATH)) $(Q)bzip2 $(BUNDLE_UPPER_PATH)/$(BUNDLE_NAME).tar bundle-clean-standalone: $(Q)rm -rf $(BUNDLE_PATH) cesar-plc: $(Q)$(MAKE) -C $(CESAR_PATH)/plc clean $(Q)$(MAKE) -C $(CESAR_PATH)/plc $(Q)cp $(CESAR_PATH)/plc/obj/plc.rom $(BUNDLE_PLCBIN_PATH)/$(CESAR_NAME) cesar-eoc-master: $(Q)$(MAKE) -C $(CESAR_PATH)/eoc-master clean $(Q)$(MAKE) -C $(CESAR_PATH)/eoc-master $(Q)cp $(CESAR_PATH)/eoc-master/obj/plc.rom $(BUNDLE_PLCBIN_PATH)/$(CESAR_EOC_MASTER_NAME) cesar-eoc-slave: $(Q)$(MAKE) -C $(CESAR_PATH)/eoc-slave clean $(Q)$(MAKE) -C $(CESAR_PATH)/eoc-slave $(Q)cp $(CESAR_PATH)/eoc-slave/obj/plc.rom $(BUNDLE_PLCBIN_PATH)/$(CESAR_EOC_SLAVE_NAME) plcd: $(Q)$(MAKE) -C $(PLCD_PATH) clean $(Q)$(MAKE) -C $(PLCD_PATH) $(Q)cp $(PLCD_PATH)/plcd $(BUNDLE_PLCBIN_PATH)/$(PLCD_NAME) plcdrv: $(Q)$(MAKE) -C $(LINUX_PATH) distclean $(Q)cp $(BUILDROOT_GIT_PATH)/target/device/Spidcom/spk300g/linux26.config $(LINUX_PATH)/.config $(Q)$(MAKE) -C $(LINUX_PATH) ARCH=arm CROSS_COMPILE=arm-linux- oldconfig $(Q)$(MAKE) -C $(LINUX_PATH) ARCH=arm CROSS_COMPILE=arm-linux- modules_prepare $(Q)$(MAKE) -C $(PLCDRV_PATH) clean $(Q)$(MAKE) -C $(PLCDRV_PATH) $(Q)cp $(PLCDRV_PATH)/plcdrv.ko $(BUNDLE_PLCBIN_PATH)/$(PLCDRV_NAME) uboot: $(Q)$(MAKE) -C $(UBOOT_PATH) clean distclean spk300g_config $(Q)$(MAKE) -C $(UBOOT_PATH) $(Q)cp $(UBOOT_PATH)/u-boot.bin $(BUNDLE_GENBIN_PATH)/$(UBOOT_NAME) linux: $(Q)for BOARD in $(BOARDS); do \ $(MAKE) -C $(BUILDROOT_PATH) clean distclean "$$BOARD"_defconfig; \ $(MAKE) -C $(BUILDROOT_PATH); \ cp $(BUILDROOT_PATH)/binaries/"$$BOARD"/linux-kernel-$(LINUX_VERSION)-arm $(BUNDLE_GENBIN_PATH)/$(LINUX_NAME)-"$$BOARD"; \ done flashfs: $(Q)$(MAKE) -C $(FLASHFS_PATH) $(Q)cp $(FLASHFS_PATH)/flashfs.jffs2 $(BUNDLE_GENBIN_PATH)/$(FLASHFS_NAME)