Commit 26b44b2b authored by Yann E. MORIN's avatar Yann E. MORIN Committed by Peter Korsgaard
Browse files

toolchain: prepare for more than two alternatives



Lay down the path to add more than two toolchain kinds:
- check the type of toolchain as:
    ifeq (toolchain_buildroot,y)
        blabla buildroot-specific
    else ifeq (toolchain_external,y)
        blabla external-specific
    endif

- prefer using positive checks, a-la:
    ifeq (foo,y)
  instead of:
    ifneq (bar,y)
  (where foo and bar are mutually exclusive)

- have the toolchain_buildroot case always appear first

- gettext is handled differently, because we want to add an option
  only if not using the buildroot toolchain, hence we use ifneq.

Signed-off-by: default avatarYann E. MORIN <yann.morin.1998@anciens.enib.fr>
Acked-By: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent 3b7aee23
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ PREFERRED_LIB_FLAGS:=--enable-static --enable-shared
##############################################################
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
BASE_TARGETS:=uclibc-configured binutils cross_compiler uclibc-target-utils kernel-headers
else
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
BASE_TARGETS:=uclibc
endif
TARGETS:=
@@ -301,7 +301,7 @@ include toolchain/kernel-headers/kernel-headers.mk
include toolchain/mklibs/mklibs.mk
include toolchain/sstrip/sstrip.mk
include toolchain/uClibc/uclibc.mk
else
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
include toolchain/*/*.mk
endif

@@ -363,7 +363,7 @@ $(STAGING_DIR):
ifeq ($(BR2_TOOLCHAIN_SYSROOT),y)
	@mkdir -p $(STAGING_DIR)/usr/lib
else
ifneq ($(BR2_TOOLCHAIN_EXTERNAL),y)
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
	@ln -snf . $(STAGING_DIR)/usr
	@mkdir -p $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)
	@ln -snf ../lib $(STAGING_DIR)/usr/lib
+5 −6
Original line number Diff line number Diff line
@@ -88,9 +88,8 @@ endif

TARGET_CXXFLAGS=$(TARGET_CFLAGS)

# else it's an external toolchain
#########################################################################
else
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) --sysroot $(STAGING_DIR)/
TARGET_CXXFLAGS=$(TARGET_CFLAGS)
TARGET_LDFLAGS=--sysroot $(STAGING_DIR)/
@@ -115,7 +114,7 @@ GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)
TARGET_CROSS=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-
KERNEL_CROSS=$(TARGET_CROSS)
else
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
TOOLCHAIN_EXTERNAL_PREFIX:=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))
TOOLCHAIN_EXTERNAL_PATH:=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH))
TOOLCHAIN_DIR=$(BASE_DIR)/toolchain
@@ -139,10 +138,10 @@ TARGET_NM=$(TARGET_CROSS)nm
TARGET_RANLIB=$(TARGET_CROSS)ranlib
TARGET_OBJCOPY=$(TARGET_CROSS)objcopy
TARGET_OBJDUMP=$(TARGET_CROSS)objdump
ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
TARGET_LDCONFIG=/sbin/ldconfig
else
ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
TARGET_LDCONFIG=$(TARGET_CROSS)ldconfig
else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
TARGET_LDCONFIG=/sbin/ldconfig
endif
ifeq ($(BR2_STRIP_strip),y)
STRIP_DISCARD_ALL:=--discard-all
+1 −1
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ $(GETTEXT_DIR)/.unpacked: $(DL_DIR)/$(GETTEXT_SOURCE)
	$(CONFIG_UPDATE) $(GETTEXT_DIR)/build-aux
	touch $@

ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
ifneq ($(BR2_TOOLCHAIN_BUILDROOT),y)
IGNORE_EXTERNAL_GETTEXT:=--with-included-gettext
endif