X-Git-Url: https://repo.jachan.dev/buildroot-mgba.git/blobdiff_plain/44eedc5c44416a97b3f5ca03d596ec3c9fb29380..e6d15b1d3dda81e48532cafff10326821d191f30:/package/Makefile.in diff --git a/package/Makefile.in b/package/Makefile.in index ddb3d82a98..1e412a653d 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -1,31 +1,183 @@ -# Strip off the annoying quoting -ARCH:=$(strip $(subst ",, $(BR2_ARCH))) -#" -WGET:=$(strip $(subst ",, $(BR2_WGET))) -#" +ifndef MAKE +MAKE:=make +endif +ifndef HOSTMAKE +HOSTMAKE=$(MAKE) +endif +HOSTMAKE :=$(shell which $(HOSTMAKE) || type -p $(HOSTMAKE) || echo make) -ifneq ($(BR2_LARGEFILE),y) -DISABLE_LARGEFILE= --disable-largefile +MAKE1:=$(HOSTMAKE) -j1 +MAKE:=$(HOSTMAKE) -j$(BR2_JLEVEL) + +ifeq ($(BR2_OPTIMIZE_0),y) +TARGET_OPTIMIZATION+=-O0 +endif +ifeq ($(BR2_OPTIMIZE_1),y) +TARGET_OPTIMIZATION+=-O1 +endif +ifeq ($(BR2_OPTIMIZE_2),y) +TARGET_OPTIMIZATION+=-O2 +endif +ifeq ($(BR2_OPTIMIZE_3),y) +TARGET_OPTIMIZATION+=-O3 +endif +ifeq ($(BR2_OPTIMIZE_S),y) +TARGET_OPTIMIZATION+=-Os +endif +ifeq ($(BR2_DEBUG_1),y) +TARGET_DEBUGGING=-g1 +endif +ifeq ($(BR2_DEBUG_2),y) +TARGET_DEBUGGING=-g2 endif -TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) - -HOSTCC:=gcc -BASE_DIR:=${shell pwd} -DL_DIR:=$(BASE_DIR)/sources/dl -PATCH_DIR=$(BASE_DIR)/sources/patches -BUILD_DIR:=$(BASE_DIR)/build_$(ARCH)$(ARCH_FPU_SUFFIX) -TARGET_DIR:=$(BUILD_DIR)/root -STAGING_DIR=$(BUILD_DIR)/staging_dir -TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX) -TARGET_PATH=$(STAGING_DIR)/bin:/bin:/sbin:/usr/bin:/usr/sbin -IMAGE:=$(BASE_DIR)/root_fs_$(ARCH)$(ARCH_FPU_SUFFIX) -REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc +ifeq ($(BR2_DEBUG_3),y) +TARGET_DEBUGGING=-g3 +endif + + +######################################################################### +ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y) +TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) \ + -I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include +TARGET_LDFLAGS+=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib +ifeq ($(BR2_TOOLCHAIN_SYSROOT),y) +TARGET_CFLAGS+= $(BR2_SYSROOT) $(BR2_ISYSROOT) +TARGET_LDFLAGS+= $(BR2_SYSROOT) +endif + +CC_TARGET_TUNE_:=$(call qstrip,$(BR2_GCC_TARGET_TUNE)) +CC_TARGET_ARCH_:=$(call qstrip,$(BR2_GCC_TARGET_ARCH)) +CC_TARGET_ABI_:=$(call qstrip,$(BR2_GCC_TARGET_ABI)) + +ifneq ($(CC_TARGET_TUNE_),) +TARGET_CFLAGS+=-mtune=$(CC_TARGET_TUNE_) +endif +ifneq ($(CC_TARGET_ARCH_),) +TARGET_CFLAGS+=-march=$(CC_TARGET_ARCH_) +endif +ifneq ($(CC_TARGET_ABI_),) +TARGET_CFLAGS+=-mabi=$(CC_TARGET_ABI_) +endif + +ifneq ($(BR2_PREFER_STATIC_LIB),y) +ifeq ($(BR2_x86_64),y) +TARGET_CFLAGS+=-fPIC -DPIC +endif # PIC for dynamic objects on x86_64 +endif + +ifeq ($(BR2_SOFT_FLOAT),y) +TARGET_CFLAGS+=-msoft-float +endif + +ifeq ($(BR2_VFP_FLOAT),y) +TARGET_CFLAGS+=-mfpu=vfp +endif + +# enable VIS for v9a and v9b +ifeq ($(findstring y,$(BR2_sparc_v9a)$(BR2_sparc64_v9a)$(BR2_sparc_v9b)$(BR2_sparc64_v9b)),y) +TARGET_CFLAGS+=-mvis +endif + +ifeq ($(findstring yy,$(BR2_mips)$(BR2_MIPS_ABI64)),yy) +TARGET_CFLAGS+=-fno-pic -mno-abicalls +endif + +ifeq ($(BR2_LARGEFILE),y) +TARGET_CFLAGS+=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 +endif + +TARGET_CXXFLAGS=$(TARGET_CFLAGS) + +# else it's an external toolchain +######################################################################### +else +TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) --sysroot $(STAGING_DIR)/ +TARGET_CXXFLAGS=$(TARGET_CFLAGS) +TARGET_LDFLAGS=--sysroot $(STAGING_DIR)/ +endif +######################################################################### +#ifeq ($(BR2_ROOTFS_SUFFIX),) +ROOTFS_SUFFIX:=$(call qstrip,$(BR2_ROOTFS_SUFFIX)) +ifeq ($(ROOTFS_SUFFIX),) +ROOTFS_SUFFIX:= +else +XXXX=xxxx +ROOTFS_SUFFIX:=-$(BR2_ROOTFS_SUFFIX) +endif + +ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y) +TOOLCHAIN_DIR=$(BASE_DIR)/toolchain + +# Quotes are needed for spaces et al in path components. +TARGET_PATH="$(TOOLCHAIN_DIR)/bin:$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(HOST_DIR)/usr/sbin/:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)" +IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(ROOTFS_SUFFIX) GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux -KERNEL_CROSS=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc- -TARGET_CROSS=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc- +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 +TOOLCHAIN_EXTERNAL_PREFIX:=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)) +TOOLCHAIN_EXTERNAL_PATH:=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH)) +TOOLCHAIN_DIR=$(BASE_DIR)/toolchain +TARGET_PATH="$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(HOST_DIR)/usr/sbin/:$(TOOLCHAIN_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)" +#IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(TOOLCHAIN_EXTERNAL_PREFIX)$(ROOTFS_SUFFIX) +IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(ROOTFS_SUFFIX) + +REAL_GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX) +GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX) +KERNEL_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)- +TARGET_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)- +endif +TARGET_AR=$(TARGET_CROSS)ar +TARGET_AS=$(TARGET_CROSS)as TARGET_CC=$(TARGET_CROSS)gcc -STRIP=$(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note +TARGET_CPP=$(TARGET_CROSS)cpp +TARGET_CXX=$(TARGET_CROSS)g++ +TARGET_FC=$(TARGET_CROSS)gfortran +TARGET_LD=$(TARGET_CROSS)ld +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 +TARGET_LDCONFIG=$(TARGET_CROSS)ldconfig +endif +ifeq ($(BR2_STRIP_strip),y) +STRIP_DISCARD_ALL:=--discard-all +STRIP_STRIP_UNNEEDED:=--strip-unneeded +STRIP_STRIP_ALL:=--strip-all +REMOVE_SECTION_COMMENT:=--remove-section=.comment +REMOVE_SECTION_NOTE:=--remove-section=.note +TARGET_STRIP=$(TARGET_CROSS)strip +STRIPCMD=$(TARGET_CROSS)strip $(REMOVE_SECTION_COMMENT) $(REMOVE_SECTION_NOTE) +endif +ifeq ($(BR2_STRIP_sstrip),y) +STRIP_DISCARD_ALL:= +STRIP_STRIP_UNNEEDED:= +STRIP_STRIP_ALL:= +REMOVE_SECTION_COMMENT:= +REMOVE_SECTION_NOTE:= +TARGET_STRIP=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-sstrip +STRIPCMD=$(TARGET_STRIP) +endif +ifeq ($(BR2_STRIP_none),y) +TARGET_STRIP=true +STRIPCMD=$(TARGET_STRIP) +endif +INSTALL:=$(shell which install || type -p install) +FLEX:=$(shell which flex || type -p flex) +BISON:=$(shell which bison || type -p bison) + +HOST_CFLAGS += -I$(HOST_DIR)/include -I$(HOST_DIR)/usr/include +HOST_CXXFLAGS += -I$(HOST_DIR)/include -I$(HOST_DIR)/usr/include +HOST_LDFLAGS += -L$(HOST_DIR)/lib -L$(HOST_DIR)/usr/lib +HOST_PATH=$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(PATH) +# hostcc version as an integer - E.G. 4.3.2 => 432 +HOSTCC_VERSION:=$(shell $(HOSTCC) --version | \ + sed -n 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)[ ]*.*$$/\1\2\3/p') HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \ -e 's/sparc.*/sparc/' \ @@ -38,22 +190,172 @@ HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \ -e 's/mipsel-.*/mipsel/' \ -e 's/cris.*/cris/' \ -e 's/i[3-9]86/i386/' \ + -e 's/xtensa.*/xtensa/' \ ) -GNU_HOST_NAME:=$(HOST_ARCH)-pc-linux-gnu +GNU_HOST_NAME:=$(HOST_ARCH)-$(call qstrip,$(BR2_GNU_BUILD_SUFFIX)) + TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \ - AR=$(TARGET_CROSS)ar \ - AS=$(TARGET_CROSS)as \ - LD=$(TARGET_CROSS)ld \ - NM=$(TARGET_CROSS)nm \ - CC=$(TARGET_CROSS)gcc \ - GCC=$(TARGET_CROSS)gcc \ - CXX=$(TARGET_CROSS)g++ \ - RANLIB=$(TARGET_CROSS)ranlib - -ifeq ($(ENABLE_LOCALE),true) + AR="$(TARGET_AR)" \ + AS="$(TARGET_AS)" \ + LD="$(TARGET_LD)" \ + NM="$(TARGET_NM)" \ + CC="$(TARGET_CC) $(TARGET_CFLAGS)" \ + GCC="$(TARGET_CC) $(TARGET_CFLAGS)" \ + CPP="$(TARGET_CPP) $(TARGET_CFLAGS)" \ + CXX="$(TARGET_CXX) $(TARGET_CXXFLAGS)" \ + FC="$(TARGET_FC) $(TARGET_FCFLAGS)" \ + RANLIB="$(TARGET_RANLIB)" \ + STRIP="$(TARGET_STRIP)" \ + OBJCOPY="$(TARGET_OBJCOPY)" \ + AR_FOR_BUILD="$(HOSTAR)" \ + AS_FOR_BUILD="$(HOSTAS)" \ + CC_FOR_BUILD="$(HOSTCC)" \ + GCC_FOR_BUILD="$(HOSTCC)" \ + CXX_FOR_BUILD="$(HOSTCXX)" \ + FC_FOR_BUILD="$(HOSTFC)" \ + LD_FOR_BUILD="$(HOSTLD)" \ + CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ + CXXFLAGS_FOR_BUILD="$(HOST_CXXFLAGS)" \ + LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \ + FCFLAGS_FOR_BUILD="$(HOST_FCFLAGS)" \ + AR_FOR_TARGET="$(TARGET_AR)" \ + AS_FOR_TARGET="$(TARGET_AS)" \ + CC_FOR_TARGET="$(TARGET_CC)" \ + LD_FOR_TARGET="$(TARGET_LD)" \ + NM_FOR_TARGET="$(TARGET_NM)" \ + DEFAULT_ASSEMBLER="$(TARGET_AS)" \ + DEFAULT_LINKER="$(TARGET_LD)" \ + PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \ + PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ + PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \ + PERLLIB="$(HOST_DIR)/usr/lib/perl" \ + LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib" \ + STAGING_DIR="$(STAGING_DIR)" + +TARGET_CONFIGURE_ENV=\ + CFLAGS="$(TARGET_CFLAGS)" \ + CXXFLAGS="$(TARGET_CXXFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + FCFLAGS="$(TARGET_FCFLAGS)" \ + +TARGET_MAKE_ENV=PATH=$(TARGET_PATH) \ + LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib:$(LD_LIBRARY_PATH)" \ + PERLLIB="$(HOST_DIR)/usr/lib/perl" + +HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \ + AR="$(HOSTAR)" \ + AS="$(HOSTAS)" \ + LD="$(HOSTLD) $(HOST_LDFLAGS)" \ + NM="$(HOSTNM)" \ + CC="$(HOSTCC) $(HOST_CFLAGS)" \ + GCC="$(HOSTCC) $(HOST_CFLAGS)" \ + CXX="$(HOSTCXX) $(HOST_CXXFLAGS)" \ + CPP="$(HOSTCPP) $(HOST_CFLAGS)" \ + AR_FOR_BUILD="$(HOSTAR)" \ + AS_FOR_BUILD="$(HOSTAS)" \ + CC_FOR_BUILD="$(HOSTCC)" \ + GCC_FOR_BUILD="$(HOSTCC)" \ + CXX_FOR_BUILD="$(HOSTCXX)" \ + LD_FOR_BUILD="$(HOSTLD)" \ + FC_FOR_BUILD="$(HOSTFC)" \ + CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ + CXXFLAGS_FOR_BUILD="$(HOST_CXXFLAGS)" \ + LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \ + FCFLAGS_FOR_BUILD="$(HOST_FCFLAGS)" \ + AR_FOR_TARGET="$(TARGET_AR)" \ + AS_FOR_TARGET="$(TARGET_AS)" \ + CC_FOR_TARGET="$(TARGET_CC)" \ + LD_FOR_TARGET="$(TARGET_LD)" \ + NM_FOR_TARGET="$(TARGET_NM)" \ + RANLIB_FOR_TARGET="$(TARGET_RANLIB)" \ + STRIP_FOR_TARGET="$(TARGET_STRIP)" \ + OBJCOPY_FOR_TARGET="$(TARGET_OBJCOPY)" \ + OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)" \ + DEFAULT_ASSEMBLER="$(TARGET_AS)" \ + DEFAULT_LINKER="$(TARGET_LD)" \ + ORIGINAL_AS_FOR_TARGET="$(TARGET_AS)" \ + ORIGINAL_LD_FOR_TARGET="$(TARGET_LD)" \ + ORIGINAL_NM_FOR_TARGET="$(TARGET_NM)" \ + ORIGINAL_OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)" \ + PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ + PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig" \ + PERLLIB="$(HOST_DIR)/usr/lib/perl" + +HOST_MAKE_ENV=PATH=$(HOST_PATH) \ + LD_LIBRARY_PATH="$(HOST_DIR)/usr/lib:$(LD_LIBRARY_PATH)" \ + PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \ + PKG_CONFIG_LIBDIR="$(HOST_DIR)/usr/lib/pkgconfig" \ + PERLLIB="$(HOST_DIR)/usr/lib/perl" + + +####################################################################### +# settings we need to pass to configure + +# does unaligned access trap? +BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=yes +ifeq ($(BR2_i386),y) +BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no +endif +ifeq ($(BR2_x86_64),y) +BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no +endif +ifeq ($(BR2_m68k),y) +BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no +endif +ifeq ($(BR2_powerpc)$(BR2_ENDIAN),yBIG) +BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no +endif + +ifeq ($(BR2_ENDIAN),"BIG") +BR2_AC_CV_C_BIGENDIAN=ac_cv_c_bigendian=yes +else +BR2_AC_CV_C_BIGENDIAN=ac_cv_c_bigendian=no +endif + +TARGET_CONFIGURE_ARGS= \ + $(BR2_AC_CV_TRAP_CHECK) \ + ac_cv_func_mmap_fixed_mapped=yes \ + ac_cv_func_memcmp_working=yes \ + ac_cv_have_decl_malloc=yes \ + gl_cv_func_malloc_0_nonnull=yes \ + ac_cv_func_malloc_0_nonnull=yes \ + ac_cv_func_calloc_0_nonnull=yes \ + ac_cv_func_realloc_0_nonnull=yes \ + $(BR2_AC_CV_C_BIGENDIAN) + +####################################################################### + +ifeq ($(BR2_ENABLE_LOCALE),y) DISABLE_NLS:= else DISABLE_NLS:=--disable-nls endif +ifneq ($(BR2_LARGEFILE),y) +DISABLE_LARGEFILE= --disable-largefile +endif + +ifneq ($(BR2_HAVE_DOCUMENTATION),y) +DISABLE_DOCUMENTATION=--disable-gtk-doc +endif + +ifneq ($(BR2_INET_IPV6),y) +DISABLE_IPV6= --disable-ipv6 +endif + +ifneq ($(BR2_GCC_CROSS_CXX),y) +TARGET_CONFIGURE_OPTS+=CXX=false +endif + +ifeq ($(BR2_ENABLE_DEBUG),y) +ENABLE_DEBUG:=--enable-debug +else +ENABLE_DEBUG:= +endif + +# X Windowing system + +X11_PREFIX:=$(call qstrip,$(BR2_X11_PREFIX)) +include package/Makefile.autotools.in +include package/Makefile.package.in