buildrootschalter/target/u-boot/Makefile.in
Thomas Petazzoni 397fe5cc0b Remove the "project" feature
The "project" feature was designed to allow to several projects to be
built inside the same Buildroot source tree and allowing the toolchain
and non-configurable packages to be shared between the different
projects on the same architecture. While being interesting in theory,
this feature adds a level of complexity to Buildroot, both from an
user perspective and from a developer perspective, while one of the
main Buildroot strengh is to be simple. Moreover, this feature is only
seldomly used by our users.

From a user-level perspective, this for example allows to remove the
project_build_ARCH directory, which was very confusing. The
autotools-stamps directory is also removed, since these stamps are
back at their normal location.

Description of the changes involved :

 * project/, directory removed

 * Makefile

    - Don't include project/Makefile.in and project/project.mk anymore

    - Grab a copy of the contents of project/Makefile.in at the
      location it was imported, but remove the definition related to
      PROJECT_BUILD_DIR. The TARGET_DIR is now in
      $(BUILD_DIR)/target_dir

    - Remove the creation/removal of the $(PROJECT_BUILD_DIR) and
      $(PROJECT_BUILD_DIR)/autotools-stamps directories

    - Don't make world depends on target-host-info. This target was
      defined by project/project.mk to customize /etc/issue,
      /etc/hostname and create /etc/br-version depending on the
      project definitions. We can of course imagine re-adding such a
      feature later.

    - Replace PROJECT_BUILD_DIR by BUILD_DIR everywhere

    - Remove the update, log and lognr.$(PROJECT) target, they were
      specific to the project feature.

 * package/Makefile.autotools.in

    - Replace PROJECT_BUILD_DIR by BUILD_DIR for the location of the
      configure cache

    - Move the INSTALL_TARGET and HOOK_POST_INSTALL stamps to the same
      directory as the other stamps (i.e, in the package directory).

 * package/Makefile.in

    - Replace PROJECT_BUILD_DIR by BUILD_DIR for the location of the
      configure cache

 * package/at/at.mk,
   package/busybox/busybox.mk,
   package/busybox/initramfs.mk,
   package/customize/customize.mk,
   package/linux-fusion/linux-fusion.mk,
   package/ltp-testsuite/ltp-testsuite.mk,
   package/nfs-utils/nfs-utils.mk,
   target/cpio/cpioroot.mk,
   target/cramfs/cramfs.mk,
   target/device/Atmel/DataFlashBoot/DataflashBoot.mk,
   target/device/Atmel/Makefile.in,
   target/device/Atmel/at91bootstrap/at91bootstrap.mk,
   target/device/KwikByte/Makefile.in,
   target/ext2/ext2root.mk,
   target/initramfs/initramfs.mk,
   target/iso9660/iso9660.mk,
   target/jffs2/jffs2root.mk,
   target/linux/Makefile.in,
   target/romfs/romfs.mk,
   target/squashfs/squashfsroot.mk,
   target/tar/tarroot.mk,
   target/ubifs/ubifsroot.mk

    - Replace PROJECT_BUILD_DIR by BUILD_DIR

 * target/device/Config.in

    - Do not include project/Config.in anymore

 * target/linux/Makefile.in.advanced

    - Replace PROJECT_BUILD_DIR by BUILD_DIR

    - Store the stamps file in $(STAMP_DIR) instead of
      $(PROJECT_BUILD_DIR)/autotools-stamps

 * target/u-boot/Makefile.in

    - Replace PROJECT_BUILD_DIR by BUILD_DIR

    - Remove $(PROJECT) from the U-Boot target binary name

    - Remove the insertion in the configuration of the project name as
      the hostname

    - The u-boot-autoscript target now generates
      $(U_BOOT_AUTOSCRIPT).img instead of
      $(U_BOOT_AUTOSCRIPT).$(PROJECT)

 * toolchain/gcc/gcc-uclibc-3.x.mk
   toolchain/gcc/gcc-uclibc-4.x.mk

    - Move the stamps files to $(STAMP_DIR)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2009-09-16 20:28:25 +02:00

291 lines
9.9 KiB
Makefile

#############################################################
#
# U-Boot
#
#############################################################
U_BOOT_VERSION:=$(call qstrip,$(BR2_UBOOT_VERSION))
U_BOOT_SOURCE:=u-boot-$(U_BOOT_VERSION).tar.bz2
U_BOOT_SITE:=$(call qstrip,$(BR2_U_BOOT_SITE))
U_BOOT_DIR:=$(BUILD_DIR)/u-boot-$(U_BOOT_VERSION)
U_BOOT_PATCH_DIR:=$(BUILD_DIR)/u-boot-$(U_BOOT_VERSION)-patches
U_BOOT_CAT:=$(BZCAT)
U_BOOT_BIN:=u-boot.bin
U_BOOT_TARGET_BIN:=u-boot-$(U_BOOT_VERSION)-$(DATE).bin
U_BOOT_TOOLS_BIN:=mkimage
U_BOOT_TOOLS:=$(STAGING_DIR)/usr/bin/$(U_BOOT_TOOLS_BIN)
MKIMAGE:=$(U_BOOT_TOOLS)
U_BOOT_AUTOSCRIPT=$(BINARIES_DIR)/autoscript
U_BOOT_TARGETS:=$(BINARIES_DIR)/$(U_BOOT_BIN) $(U_BOOT_TOOLS)
ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_DEFAULT_ENV)),y)
U_BOOT_TARGETS += u-boot-autoscript
endif
TARGET_UBOOT_IPADDR:=$(call qstrip,$(BR2_TARGET_UBOOT_IPADDR))
TARGET_UBOOT_SERVERIP:=$(call qstrip,$(BR2_TARGET_UBOOT_SERVERIP))
TARGET_UBOOT_GATEWAY:=$(call qstrip,$(BR2_TARGET_UBOOT_GATEWAY))
TARGET_UBOOT_NETMASK:=$(call qstrip,$(BR2_TARGET_UBOOT_NETMASK))
TARGET_UBOOT_ETHADDR:=$(call qstrip,$(BR2_TARGET_UBOOT_ETHADDR))
# u-boot still uses arch=ppc for powerpc
U_BOOT_ARCH=$(KERNEL_ARCH:powerpc=ppc)
ifeq ($(UBOOT_BOARD_NAME),)
UBOOT_BOARD_NAME:=$(call qstrip,$(BR2_TARGET_UBOOT_BOARDNAME))
endif
U_BOOT_INC_CONF_FILE:=$(U_BOOT_DIR)/include/config.h
U_BOOT_TARGET_TOOLS:=
ifeq ($(BR2_TARGET_UBOOT_TOOL_MKIMAGE),y)
U_BOOT_TARGETS+=$(TARGET_DIR)/usr/bin/mkimage
endif
ifeq ($(BR2_TARGET_UBOOT_TOOL_ENV),y)
U_BOOT_TARGETS+=$(TARGET_DIR)/usr/sbin/fw_printenv
endif
U_BOOT_CONFIGURE_OPTS :=
ifneq ($(BR2_TARGET_UBOOT_1_2_0_ATMEL),)
U_BOOT_CONFIGURE_OPTS += CONFIG_NOSOFTFLOAT=1
endif
# Define a helper function
define insert_define
@echo "#ifdef $(strip $(1))" >> $(U_BOOT_INC_CONF_FILE)
@echo "#undef $(strip $(1))" >> $(U_BOOT_INC_CONF_FILE)
@echo "#endif" >> $(U_BOOT_INC_CONF_FILE)
@echo '#define $(strip $(1)) $(call qstrip,$(2))' >> $(U_BOOT_INC_CONF_FILE)
endef
$(DL_DIR)/$(U_BOOT_SOURCE):
$(call DOWNLOAD,$(U_BOOT_SITE),$(U_BOOT_SOURCE))
$(U_BOOT_DIR)/.unpacked: $(DL_DIR)/$(U_BOOT_SOURCE)
$(U_BOOT_CAT) $(DL_DIR)/$(U_BOOT_SOURCE) \
| tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
mkdir -p $(U_BOOT_DIR)
touch $@
$(U_BOOT_DIR)/.patched: $(U_BOOT_DIR)/.unpacked
toolchain/patch-kernel.sh $(U_BOOT_DIR) target/u-boot \
u-boot-$(U_BOOT_VERSION)-\*.patch \
u-boot-$(U_BOOT_VERSION)-\*.patch.$(ARCH)
ifneq ($(strip $(U_BOOT_ARCH_PATCH_DIR)),)
toolchain/patch-kernel.sh $(U_BOOT_DIR) $(U_BOOT_ARCH_PATCH_DIR) \*.patch
endif
ifneq ($(strip $(BR2_TARGET_UBOOT_CUSTOM_PATCH)),"")
@mkdir -p $(U_BOOT_PATCH_DIR)
cp -dpr $(BR2_TARGET_UBOOT_CUSTOM_PATCH) $(U_BOOT_PATCH_DIR)
toolchain/patch-kernel.sh $(U_BOOT_DIR) $(U_BOOT_PATCH_DIR) \*.patch
endif
touch $@
$(U_BOOT_DIR)/.configured: $(U_BOOT_DIR)/.patched
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
$(U_BOOT_CONFIGURE_OPTS) \
$(MAKE) -C $(U_BOOT_DIR) \
$(UBOOT_BOARD_NAME)_config
touch $@
$(U_BOOT_DIR)/.header_modified: $(U_BOOT_DIR)/.configured
# Modify configuration header in $(U_BOOT_INC_CONF_FILE)
ifdef BR2_TARGET_UBOOT_DEFAULT_ENV
@echo >> $(U_BOOT_INC_CONF_FILE)
@echo "/* Add a wrapper around the values Buildroot sets. */" >> $(U_BOOT_INC_CONF_FILE)
@echo "#ifndef __BR2_ADDED_CONFIG_H" >> $(U_BOOT_INC_CONF_FILE)
@echo "#define __BR2_ADDED_CONFIG_H" >> $(U_BOOT_INC_CONF_FILE)
$(call insert_define, DATE, $(DATE))
$(call insert_define, CONFIG_LOAD_SCRIPTS, 1)
endif # BR2_TARGET_UBOOT_DEFAULT_ENV
ifdef BR2_TARGET_UBOOT_NETWORK
ifneq ($(strip $(BR2_TARGET_UBOOT_IPADDR)),"")
$(call insert_define, CONFIG_IPADDR, $(BR2_TARGET_UBOOT_IPADDR))
ifneq ($(strip $(BR2_TARGET_UBOOT_GATEWAY)),"")
$(call insert_define, CONFIG_GATEWAYIP, $(BR2_TARGET_UBOOT_GATEWAY))
endif
ifneq ($(strip $(BR2_TARGET_UBOOT_NETMASK)),"")
$(call insert_define, CONFIG_NETMASK, $(BR2_TARGET_UBOOT_NETMASK))
endif
endif # end BR2_TARGET_U_BOOT_IPADDR
ifneq ($(strip $(BR2_TARGET_UBOOT_SERVERIP)),"")
$(call insert_define, CONFIG_SERVERIP, $(BR2_TARGET_UBOOT_SERVERIP))
endif
ifneq ($(strip $(BR2_TARGET_UBOOT_ETHADDR)),"")
$(call insert_define, CONFIG_ETHADDR, $(BR2_TARGET_UBOOT_ETHADDR))
endif
ifneq ($(strip $(BR2_TARGET_UBOOT_ETH1ADDR)),)
ifneq ($(strip $(BR2_TARGET_UBOOT_ETH1ADDR)),"")
$(call insert_define, CONFIG_ETH1ADDR, $(BR2_TARGET_UBOOT_ETH1ADDR))
endif
endif
endif # BR2_TARGET_UBOOT_NETWORK
ifeq ($(BR2_TARGET_UBOOT_SILENT),y)
$(call insert_define, CONFIG_SILENT_CONSOLE,)
endif
ifdef BR2_TARGET_UBOOT_DEFAULT_ENV
ifneq ($(strip $(BR2_TARGET_UBOOT_KERNEL_START)),"")
$(call insert_define, KERNEL_START, $(BR2_TARGET_UBOOT_KERNEL_START))
endif
ifneq ($(strip $(BR2_TARGET_UBOOT_KERNEL_LOCATION)),"")
$(call insert_define, KERNEL_LOCATION, $(BR2_TARGET_UBOOT_KERNEL_LOCATION))
endif
ifneq ($(strip $(BR2_TARGET_UBOOT_FILESYSTEM_START)),"")
$(call insert_define, FILESYSTEM_START, $(BR2_TARGET_UBOOT_FILESYSTEM_START))
endif
ifneq ($(strip $(BR2_TARGET_UBOOT_FILESYSTEM_LOCATION)),"")
$(call insert_define, FILESYSTEM_LOCATION, $(BR2_TARGET_UBOOT_FILESYSTEM_LOCATION))
endif
ifneq ($(strip $(BR2_TARGET_UBOOT_FILESYSTEM_SIZE)),"")
$(call insert_define, FILESYSTEM_SIZE, $(BR2_TARGET_UBOOT_FILESYSTEM_SIZE))
endif
ifneq ($(strip $(BR2_TARGET_UBOOT_END_OF_FLASH)),"")
$(call insert_define, END_OF_FLASH, $(BR2_TARGET_UBOOT_END_OF_FLASH))
endif
ifneq ($(strip $(BR2_TARGET_UBOOT_MEMORY_SIZE)),"")
$(call insert_define, MEMORY_SIZE, $(BR2_TARGET_UBOOT_MEMORY_SIZE))
endif
@echo "#endif /* __BR2_ADDED_CONFIG_H */" >> $(U_BOOT_INC_CONF_FILE)
endif # BR2_TARGET_UBOOT_DEFAULT_ENV
touch $@
$(U_BOOT_DIR)/$(U_BOOT_BIN): $(U_BOOT_DIR)/.header_modified
$(TARGET_CONFIGURE_OPTS) \
CFLAGS="$(TARGET_CFLAGS)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
$(U_BOOT_CONFIGURE_OPTS) \
$(MAKE) CROSS_COMPILE="$(TARGET_CROSS)" ARCH=$(U_BOOT_ARCH) \
-C $(U_BOOT_DIR)
$(BINARIES_DIR)/$(U_BOOT_BIN): $(U_BOOT_DIR)/$(U_BOOT_BIN)
rm -f $(BINARIES_DIR)/$(U_BOOT_BIN)
rm -f $(BINARIES_DIR)/$(U_BOOT_TARGET_BIN)
cp -dpf $(U_BOOT_DIR)/$(U_BOOT_BIN) $(BINARIES_DIR)/$(U_BOOT_TARGET_BIN)
(cd $(BINARIES_DIR); ln -s $(U_BOOT_TARGET_BIN) $(U_BOOT_BIN))
$(U_BOOT_TOOLS): $(U_BOOT_DIR)/$(U_BOOT_BIN)
cp -dpf $(U_BOOT_DIR)/tools/$(U_BOOT_TOOLS_BIN) $(STAGING_DIR)/usr/bin/
$(TARGET_DIR)/usr/bin/mkimage: $(U_BOOT_DIR)/$(U_BOOT_BIN)
mkdir -p $(@D)
$(TARGET_CC) -I$(U_BOOT_DIR)/include -I$(U_BOOT_DIR)/tools \
-DUSE_HOSTCC -o $@ \
$(U_BOOT_DIR)/tools/mkimage.c $(U_BOOT_DIR)/common/image.c \
$(addprefix $(U_BOOT_DIR)/lib_generic/,crc32.c md5.c sha1.c) \
$(U_BOOT_DIR)/libfdt/fdt*.c
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
$(TARGET_DIR)/usr/sbin/fw_printenv: $(U_BOOT_DIR)/$(U_BOOT_BIN)
mkdir -p $(@D)
$(TARGET_CC) -I$(U_BOOT_DIR)/include -I$(LINUX_HEADERS_DIR)/include \
-DUSE_HOSTCC -o $@ \
$(U_BOOT_DIR)/tools/env/*.c $(U_BOOT_DIR)/lib_generic/crc32.c
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
ln -sf fw_printenv $(TARGET_DIR)/usr/sbin/fw_setenv
u-boot: $(U_BOOT_TARGETS)
u-boot-autoscript: $(U_BOOT_AUTOSCRIPT).img
u-boot-clean:
-$(MAKE) -C $(U_BOOT_DIR) clean
rm -f $(U_BOOT_TOOLS) $(U_BOOT_TARGET_TOOLS)
u-boot-dirclean:
rm -rf $(U_BOOT_DIR)
u-boot-source: $(DL_DIR)/$(U_BOOT_SOURCE)
u-boot-unpacked: $(U_BOOT_DIR)/.patched
u-boot-configured: $(U_BOOT_DIR)/.header_modified
#############################################################
#
# Generate an autoscript with the configration items
#
#############################################################
$(U_BOOT_AUTOSCRIPT): .config
rm -f $(U_BOOT_AUTOSCRIPT)
ifneq ($(TARGET_UBOOT_IPADDR),)
echo setenv ipaddr $(TARGET_UBOOT_IPADDR) > $(U_BOOT_AUTOSCRIPT)
else
echo TARGET_UBOOT_IPADDR="$(TARGET_UBOOT_IPADDR)"
endif
ifneq ($(TARGET_UBOOT_SERVERIP),)
echo setenv serverip $(TARGET_UBOOT_SERVERIP) >> $(U_BOOT_AUTOSCRIPT)
endif
ifneq ($(TARGET_UBOOT_GATEWAY),)
echo setenv gatewayip $(TARGET_UBOOT_GATEWAY) >> $(U_BOOT_AUTOSCRIPT)
endif
ifneq ($(TARGET_UBOOT_NETMASK),)
echo setenv netmask $(TARGET_UBOOT_NETMASK) >> $(U_BOOT_AUTOSCRIPT)
endif
echo setenv linux $(LINUX26_KERNEL_NAME) >> $(U_BOOT_AUTOSCRIPT)
echo setenv kernel-version $(LINUX26_VERSION) >> $(U_BOOT_AUTOSCRIPT)
echo setenv kernel-date $(DATE) >> $(U_BOOT_AUTOSCRIPT)
echo setenv hostname $(TARGET_HOSTNAME) >> $(U_BOOT_AUTOSCRIPT)
echo setenv fs-date $(DATE) >> $(U_BOOT_AUTOSCRIPT)
echo setenv rd-1 rootfs.$(ARCH)-$(DATE).ext2 >> $(U_BOOT_AUTOSCRIPT)
echo setenv rd-2 rootfs.$(ARCH)-$(DATE).jffs2 >> $(U_BOOT_AUTOSCRIPT)
echo setenv rd rootfs.$(BR2_ARCH)-$(DATE).ext2 >> $(U_BOOT_AUTOSCRIPT)
echo setenv ver 1 >> $(U_BOOT_AUTOSCRIPT)
ifneq ($(TARGET_UBOOT_ETHADDR),)
echo setenv ethaddr $(TARGET_UBOOT_ETHADDR) >> $(U_BOOT_AUTOSCRIPT)
endif
echo setenv fstype ram >> $(U_BOOT_AUTOSCRIPT)
echo fs >> $(U_BOOT_AUTOSCRIPT)
echo os >> $(U_BOOT_AUTOSCRIPT)
echo setargs >> $(U_BOOT_AUTOSCRIPT)
echo saveenv >> $(U_BOOT_AUTOSCRIPT)
$(U_BOOT_AUTOSCRIPT).img: $(U_BOOT_AUTOSCRIPT) $(MKIMAGE)
$(MKIMAGE) -A $(ARCH) \
-O linux \
-T script \
-C none \
-a 0 \
-e 0 \
-n "autoscr config" \
-d $(U_BOOT_AUTOSCRIPT) \
$(U_BOOT_AUTOSCRIPT).img
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(BR2_TARGET_UBOOT),y)
TARGETS+=u-boot
# we NEED a board name
ifeq ($(UBOOT_BOARD_NAME),)
$(error NO U-Boot board name set. Check your BR2_TARGET_UBOOT_BOARDNAME setting)
endif
endif
u-boot-status:
@echo
@echo U_BOOT_INC_CONF_FILE = $(U_BOOT_INC_CONF_FILE)
@echo BR2_UBOOT_VERSION = $(BR2_UBOOT_VERSION)
@echo BR2_TARGET_UBOOT_SERVERIP = $(BR2_TARGET_UBOOT_SERVERIP)
@echo BR2_TARGET_UBOOT_IPADDR = $(BR2_TARGET_UBOOT_IPADDR)
@echo BR2_TARGET_UBOOT_GATEWAY = $(BR2_TARGET_UBOOT_GATEWAY)
@echo BR2_TARGET_UBOOT_NETMASK = $(BR2_TARGET_UBOOT_NETMASK)
@echo BR2_TARGET_UBOOT_ETH0ADDR = $(BR2_TARGET_UBOOT_ETHADDR)
@echo BR2_TARGET_UBOOT_ETH1ADDR = $(BR2_TARGET_UBOOT_ETH1ADDR)
@echo BR2_TARGET_UBOOT_SILENT = $(BR2_TARGET_UBOOT_SILENT)
@echo UBOOT_BOARD_NAME=$(UBOOT_BOARD_NAME)
@exit 0