########################################## # uClinux-dist package for Astfin.org ########################################## UCLINUX_DIRNAME=uClinux-dist UCLINUX_DIR=$(BUILD_DIR)/$(UCLINUX_DIRNAME) UCLINUX_KERNEL_SRC=$(BUILD_DIR)/uClinux-dist/linux-2.6.x UCLINUX_SOURCE=uClinux-dist-2007R1-RC3.tar.bz2 UCLINUX_SITE=http://blackfin.uclinux.org/gf/download/frsrelease/320/1135 UCLINUX_UNZIP=bzcat TOOLCHAIN_BUILD=$(BASE_DIR)/toolchain_$(TARGET_MACHINE) ################################################ # uClinux Dep.... ################################################ UCLINUX_DEP=toolchain ifeq ($(strip $(ASTFIN_PACKAGE_ZAPTEL_OSLEC)),y) UCLINUX_DEP+= oslec endif ifeq ($(strip $(ASTFIN_PACKAGE_ZAPTEL_PR1)),y) UCLINUX_DEP+= libpri endif ifeq ($(strip $(ASTFIN_PACKAGE_ZAPTEL)),y) UCLINUX_DEP+= zaptel endif UCLINUX_CONFIG_FILE=$(subst ",, $(strip $(ASTFIN_PACKAGE_UCLINUX_CONFIG)))#" $(DL_DIR)/$(UCLINUX_SOURCE): $(WGET) -P $(DL_DIR) $(UCLINUX_SITE)/$(UCLINUX_SOURCE) uClinux-source: $(DL_DIR)/$(UCLINUX_SOURCE) $(UCLINUX_CONFIG_FILE) $(UCLINUX_DIR)/.unpacked: $(DL_DIR)/$(UCLINUX_SOURCE) if [ ! -d $(UCLINUX_DIR) ] ; then \ tar xjf $(DL_DIR)/$(UCLINUX_SOURCE) -C $(BUILD_DIR); \ fi #chmod +x $(PATCH_KERNEL) #$(PATCH_KERNEL) $(UCLINUX_DIR) package/uClinux-dist uClibc-shared.patch #$(PATCH_KERNEL) $(UCLINUX_DIR) package/uClinux-dist daemon.patch #$(PATCH_KERNEL) $(UCLINUX_DIR) package/uClinux-dist extra-libs2.patch #$(PATCH_KERNEL) $(UCLINUX_DIR) package/uClinux-dist zaptel2.patch #$(PATCH_KERNEL) $(UCLINUX_DIR) package/uClinux-dist defconfig.patch #$(PATCH_KERNEL) $(UCLINUX_DIR) package/uClinux-dist mm.patch ifeq ($(strip $(ASTFIN_BLACKFINONE_V2)),y) $(PATCH_KERNEL) $(UCLINUX_DIR) package/uClinux-dist bf1-hardware.patch $(PATCH_KERNEL) $(UCLINUX_DIR) package/uClinux-dist/BLACKFIN_ONE_V2 bf1_defconfig.patch $(PATCH_KERNEL) $(UCLINUX_DIR) package/uClinux-dist/BLACKFIN_ONE_V2 defconfig.arch.patch cp -v package/uClinux-dist/BLACKFIN_ONE_V2/root.autoconf.h $(UCLINUX_DIR)/autoconf.h cp -v package/uClinux-dist/BLACKFIN_ONE_V2/config.autoconf.h $(UCLINUX_DIR)/config/autoconf.h endif ifeq ($(strip $(ASTFIN_IP04)),y) patch -d $(BUILD_DIR) -uN -p0 < package/uClinux-dist/ip04.patch endif touch $(UCLINUX_DIR)/.unpacked $(UCLINUX_DIR)/.configured: $(UCLINUX_DIR)/.unpacked ifeq ($(strip $(ASTFIN_STAMP537)),y) -$(MAKE) -C $(UCLINUX_DIR) AnalogDevices/BF537-STAMP_config endif ifeq ($(strip $(ASTFIN_BLACKFINONE_V2)),y) cp -R package/uClinux-dist/bf1-asterisk-vendors/* $(UCLINUX_DIR)/vendors/IvanDanov/BLACKFIN_ONE_V2/ -$(MAKE) -C $(UCLINUX_DIR) IvanDanov/BLACKFIN_ONE_V2_config cp -fv package/uClinux-dist/BLACKFIN_ONE_V2/root.autoconf.h $(UCLINUX_DIR)/autoconf.h cp -fv package/uClinux-dist/BLACKFIN_ONE_V2/config.autoconf.h $(UCLINUX_DIR)/config/autoconf.h endif ifeq ($(strip $(ASTFIN_STAMP537)),y) cp -R package/uClinux-dist/bf537-stamp-asterisk-vendors/* $(UCLINUX_DIR)/vendors/AnalogDevices/BF537-STAMP/ -$(MAKE) -C $(UCLINUX_DIR) AnalogDevices/BF537-STAMP_config cp -fv package/uClinux-dist/BF537-STAMP/config.autoconf.h $(UCLINUX_DIR)/config/autoconf.h cp -fv package/uClinux-dist/BF537-STAMP/root.autoconf.h $(UCLINUX_DIR)/autoconf.h cp -fv package/uClinux-dist/BF537-STAMP/include.linux.autoconf.h $(UCLINUX_DIR)/linux-2.6.x/include/linux/autoconf.h endif ifeq ($(strip $(ASTFIN_IP04)),y) mkdir -p $(UCLINUX_DIR)/vendors/Rowetel/IP04/ cp -af package/uClinux-dist/ip04-asterisk-vendors/* $(UCLINUX_DIR)/vendors/Rowetel/IP04/ $(MAKE) -C $(UCLINUX_DIR) Rowetel/IP04_config endif cp -fv $(UCLINUX_DIR)/linux-2.6.x/.config $(UCLINUX_DIR)/linux-2.6.x/.config.old ifeq ($(strip $(ASTFIN_TARGET_CUSTOM)),y) -$(MAKE) -C $(UCLINUX_DIR) menuconfig endif touch $(UCLINUX_DIR)/.configured uClinux: $(UCLINUX_DEP) $(UCLINUX_DIR)/.configured $(MAKE) -C $(UCLINUX_DIR) ROMFSDIR=$(STAGING_DIR) #cp -v $(UCLINUX_DIR)/lib/ncurses/lib/libncurses.a $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/lib/ #cp -v $(UCLINUX_DIR)/lib/ncurses/include/*.h $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/usr/include/ #cp -v $(UCLINUX_DIR)/lib/libtonezone/libtonezone.a $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/lib/ #ifeq ($(strip $(ASTFIN_PACKAGE_ZAPTEL_PR1)),y) # cp -v $(UCLINUX_DIR)/lib/libpri/libpri.so* $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/lib/ # cp -v $(UCLINUX_DIR)/lib/libpri/libpri.h $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/usr/include/ #endif #cp -v $(UCLINUX_DIR)/lib/zlib/libz.a $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/lib/ #cp -v $(UCLINUX_DIR)/lib/zlib/zlib.h $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/usr/include/ #cp -v $(UCLINUX_DIR)/lib/zlib/zconf.h $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/usr/include/ #cp -v $(UCLINUX_DIR)/lib/libssl/libssl.so $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/lib/ #cp -v $(UCLINUX_DIR)/lib/libssl/libcrypto.so $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/lib/ #mkdir -p $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/usr/include/openssl/ #cp -v $(UCLINUX_DIR)/lib/libssl/include/openssl/*.h $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/usr/include/openssl/ #mkdir -p $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/usr/include/zaptel/ #cp -v $(UCLINUX_DIR)/linux-2.6.x/include/zaptel/zaptel.h $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/usr/include/zaptel/ #cp -v $(UCLINUX_DIR)/linux-2.6.x/drivers/zaptel/tonezone.h $(TOOLCHAIN_BUILD)/out-uclinux/bfin-uclinux/runtime/usr/include/zaptel/ uClinux-unpacked: $(UCLINUX_DIR)/.unpacked @echo "---- uClinux Unpacked ------" uClinux-configure: $(UCLINUX_DIR)/.configured @echo "------ uClinux Configure -------" uClinux-clean: @echo "------ uClinux Make clean -------" -$(MAKE) -C $(UCLINUX_DIR) clean uClinux-config: $(UCLINUX_DIR)/.configured $(MAKE) -C $(UCLINUX_DIR) menuconfig uClinux-dirclean: rm -rf $(UCLINUX_DIR) # Generate patches between vanilla tar ball and our version (IP04 only # at this stage, pending approval by the astfin team). Run this target # after you have made any changes to uClinux-dist to capture them to # the patch and conf files. UDO = $(UCLINUX_DIR)-orig UD = $(UCLINUX_DIR) uClinux-ip04-make-patch: # untar original, to save time we check if the orig is already there if [ ! -d $(UCLINUX_DIR)-orig ] ; then \ tar xjf $(DL_DIR)/$(UCLINUX_SOURCE); \ mv $(UCLINUX_DIRNAME) $(UCLINUX_DIR)-orig; \ fi # TODO - work out a rule/macro to do all this with less typing -diff -uN \ $(UDO)/linux-2.6.x/arch/blackfin/Kconfig \ $(UD)/linux-2.6.x/arch/blackfin/Kconfig \ > ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/arch/blackfin/mach-bf533/boards/bf1.c \ $(UD)/linux-2.6.x/arch/blackfin/mach-bf533/boards/bf1.c \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/include/asm-blackfin/mach-bf533/mem_init.h \ $(UD)/linux-2.6.x/include/asm-blackfin/mach-bf533/mem_init.h \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/arch/blackfin/mach-bf533/boards/Makefile \ $(UD)/linux-2.6.x/arch/blackfin/mach-bf533/boards/Makefile \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/include/asm-blackfin/io.h \ $(UD)/linux-2.6.x/include/asm-blackfin/io.h \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/drivers/mtd/maps/Kconfig \ $(UD)/linux-2.6.x/drivers/mtd/maps/Kconfig \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/drivers/serial/bfin_5xx.c \ $(UD)/linux-2.6.x/drivers/serial/bfin_5xx.c \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/drivers/mtd/maps/bf5xx-flash.c \ $(UD)/linux-2.6.x/drivers/mtd/maps/bf5xx-flash.c \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/drivers/mtd/nand/bfin_nand.c \ $(UD)/linux-2.6.x/drivers/mtd/nand/bfin_nand.c \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/drivers/mtd/nand/Kconfig \ $(UD)/linux-2.6.x/drivers/mtd/nand/Kconfig \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/drivers/net/dm9000.c \ $(UD)/linux-2.6.x/drivers/net/dm9000.c \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/drivers/net/Kconfig \ $(UD)/linux-2.6.x/drivers/net/Kconfig \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/drivers/zaptel/bfsi.c \ $(UD)/linux-2.6.x/drivers/zaptel/bfsi.c \ >> ip04.patch -diff -uN \ $(UDO)/linux-2.6.x/drivers/zaptel/wcfxs.c \ $(UD)/linux-2.6.x/drivers/zaptel/wcfxs.c \ >> ip04.patch cp -af $(UD)/vendors/Rowetel/IP04/* ip04-asterisk-vendors cp $(UD)/linux-2.6.x/.config ip04-asterisk-vendors/linux-2.6.x.config cp $(UD)/.config ip04-asterisk-vendors/config.device cp $(UD)/config/.config ip04-asterisk-vendors/config.vendor-2.6.x ################################################ # # Toplevel Makefile options # ################################################# ifeq ($(strip $(ASTFIN_PACKAGE_UCLINUX_DIST)),y) TARGETS+=uClinux endif