]> Git Repo - buildroot-mgba.git/blob - package/Makefile.in
- add endian handling, mmap, memcmp checks to TARGET_CONFIGURE_ARGS
[buildroot-mgba.git] / package / Makefile.in
1 ifndef MAKE
2 MAKE=make
3 endif
4 MAKE1:=$(MAKE) MAKE="$(firstword $(MAKE)) -j1"
5 MAKE:=$(MAKE) -j$(BR2_JLEVEL)
6
7 # Strip off the annoying quoting
8 ARCH:=$(strip $(subst ",, $(BR2_ARCH)))
9 #"))
10 WGET:=$(strip $(subst ",, $(BR2_WGET)))
11 #"))
12 SVN:=$(strip $(subst ",, $(BR2_SVN)))
13 #"))
14 ZCAT:=$(strip $(subst ",, $(BR2_ZCAT)))
15 #"))
16 BZCAT:=$(strip $(subst ",, $(BR2_BZCAT)))
17 #"))
18 TAR_OPTIONS=$(subst ",, $(BR2_TAR_OPTIONS)) -xf
19 #")
20
21
22 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
23 TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) \
24         -I$(STAGING_DIR)/usr/include
25 TARGET_LDFLAGS=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
26
27 ifeq ($(BR2_TOOLCHAIN_SYSROOT),y)
28 TARGET_CFLAGS+= $(BR2_SYSROOT) $(BR2_ISYSROOT)
29 #TARGET_LDFLAGS=-Wl,$(BR2_SYSROOT)
30 endif
31
32 ifneq ($(BR2_PREFER_STATIC_LIB),y)
33 ifeq ($(BR2_x86_64),y)
34 TARGET_CFLAGS+=-fPIC -DPIC
35 endif # PIC for dynamic objects on x86_64
36 endif
37
38 ifeq ($(BR2_SOFT_FLOAT),y)
39 TARGET_CFLAGS+=-msoft-float
40 endif
41
42
43 # else it's an external toolchain
44 #########################################################################
45 else
46 TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include -I$(TOOLCHAIN_EXTERNAL_PATH)/$(TOOLCHAIN_EXTERNAL_PREFIX)/include
47 TARGET_LDFLAGS=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
48 endif
49 #########################################################################
50
51 ifndef HOSTAR
52 HOSTAR:=ar
53 endif
54 ifndef HOSTAS
55 HOSTAS:=as
56 endif
57 ifndef HOSTCC
58 HOSTCC:=gcc
59 endif
60 ifndef HOSTCXX
61 HOSTCXX:=g++
62 endif
63 ifndef HOSTLD
64 HOSTLD:=ld
65 endif
66 HOSTAR:=$(shell which $(HOSTAR) || type -p $(HOSTAR) || echo ar)
67 HOSTAS:=$(shell which $(HOSTAS) || type -p $(HOSTAS) || echo as)
68 HOSTCC:=$(shell which $(HOSTCC) || type -p $(HOSTCC) || echo gcc)
69 HOSTCXX:=$(shell which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++)
70 HOSTLD:=$(shell which $(HOSTLD) || type -p $(HOSTLD) || echo ld)
71 ifndef CFLAGS_FOR_BUILD
72 CFLAGS_FOR_BUILD:="-g -O2"
73 endif
74
75
76 BASE_DIR:=$(shell pwd)
77
78 TOPDIR_PREFIX:=$(strip $(subst ",, $(BR2_TOPDIR_PREFIX)))_
79 #"))
80 TOPDIR_SUFFIX:=_$(strip $(subst ",, $(BR2_TOPDIR_SUFFIX)))
81 #"))
82 ifeq ($(TOPDIR_PREFIX),_)
83 TOPDIR_PREFIX:=
84 endif
85 ifeq ($(TOPDIR_SUFFIX),_)
86 TOPDIR_SUFFIX:=
87 endif
88
89 DL_DIR=$(strip $(subst ",, $(BR2_DL_DIR)))
90 #"))
91 ifeq ($(DL_DIR),)
92 DL_DIR:=$(BASE_DIR)/dl
93 endif
94 #PATCH_DIR=$(BASE_DIR)/sources/patches
95 BUILD_DIR:=$(BASE_DIR)/$(TOPDIR_PREFIX)build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
96 TARGET_DIR:=$(BUILD_DIR)/root
97
98 GNU_TARGET_SUFFIX:=-$(strip $(subst ",, $(BR2_GNU_TARGET_SUFFIX)))
99 #"))
100
101 STAGING_DIR:=$(strip $(subst ",, $(BR2_STAGING_DIR)))
102 #"))
103 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
104 TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
105
106 # Quotes are needed for spaces et al in path components.
107 TARGET_PATH="$(TOOL_BUILD_DIR)/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)"
108 IMAGE:=$(BASE_DIR)/rootfs.$(ARCH)$(ARCH_FPU_SUFFIX)
109 GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
110 REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)
111 TARGET_CROSS=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-
112 KERNEL_CROSS=$(TARGET_CROSS)
113 else
114 TOOLCHAIN_EXTERNAL_PREFIX:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PREFIX)))
115 #"))
116 TOOLCHAIN_EXTERNAL_PATH:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PATH)))
117 #"))
118 TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX)
119 TARGET_PATH="$(STAGING_DIR)/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
120 IMAGE:=$(BASE_DIR)/rootfs.$(TOOLCHAIN_EXTERNAL_PREFIX)
121 REAL_GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
122 GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
123 KERNEL_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
124 TARGET_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
125 endif
126 TARGET_CC=$(TARGET_CROSS)gcc
127 TARGET_CXX=$(TARGET_CROSS)g++
128 TARGET_RANLIB=$(TARGET_CROSS)ranlib
129 STRIP=$(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note
130 INSTALL=/usr/bin/install
131
132
133 HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
134         -e 's/sparc.*/sparc/' \
135         -e 's/arm.*/arm/g' \
136         -e 's/m68k.*/m68k/' \
137         -e 's/ppc/powerpc/g' \
138         -e 's/v850.*/v850/g' \
139         -e 's/sh[234]/sh/' \
140         -e 's/mips-.*/mips/' \
141         -e 's/mipsel-.*/mipsel/' \
142         -e 's/cris.*/cris/' \
143         -e 's/i[3-9]86/i386/' \
144         )
145 GNU_HOST_NAME:=$(HOST_ARCH)-$(subst ",,$(BR2_GNU_BUILD_SUFFIX))
146 #")
147 TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
148                 AR=$(TARGET_CROSS)ar \
149                 AS=$(TARGET_CROSS)as \
150                 LD=$(TARGET_CROSS)ld \
151                 NM=$(TARGET_CROSS)nm \
152                 CC=$(TARGET_CROSS)gcc \
153                 GCC=$(TARGET_CROSS)gcc \
154                 CXX=$(TARGET_CROSS)g++ \
155                 CPP=$(TARGET_CROSS)cpp \
156                 RANLIB=$(TARGET_CROSS)ranlib \
157                 STRIP=$(TARGET_CROSS)strip \
158                 OBJCOPY=$(TARGET_CROSS)objcopy \
159                 CFLAGS="$(TARGET_CFLAGS)" \
160                 LDFLAGS="$(TARGET_LDFLAGS)" \
161                 AR_FOR_BUILD="$(HOSTAR)" \
162                 AS_FOR_BUILD="$(HOSTAS)" \
163                 CC_FOR_BUILD="$(HOSTCC)" \
164                 CXX_FOR_BUILD="$(HOSTCXX)" \
165                 LD_FOR_BUILD="$(HOSTLD)" \
166                 CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
167                 LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
168                 PKG_CONFIG_SYSROOT="$(STAGING_DIR)" \
169                 PKG_CONFIG="$(STAGING_DIR)/usr/bin/pkg-config"
170
171 HOST_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
172                 AR_FOR_BUILD="$(HOSTAR)" \
173                 AS_FOR_BUILD="$(HOSTAS)" \
174                 CC_FOR_BUILD="$(HOSTCC)" \
175                 GCC_FOR_BUILD="$(HOSTCC)" \
176                 CXX_FOR_BUILD="$(HOSTCXX)" \
177                 LD_FOR_BUILD="$(HOSTLD)" \
178                 CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
179                 CXXFLAGS_FOR_BUILD="$(HOST_CXXFLAGS)" \
180                 LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
181                 AR_FOR_TARGET=$(TARGET_CROSS)ar \
182                 AS_FOR_TARGET=$(TARGET_CROSS)as \
183                 LD_FOR_TARGET=$(TARGET_CROSS)ld \
184                 NM_FOR_TARGET=$(TARGET_CROSS)nm \
185                 RANLIB_FOR_TARGET=$(TARGET_CROSS)ranlib \
186                 STRIP_FOR_TARGET=$(TARGET_CROSS)strip \
187                 OBJCOPY_FOR_TARGET=$(TARGET_CROSS)objcopy
188
189 #######################################################################
190 # settings we need to pass to configure
191
192 # does unaligned access trap?
193 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=yes
194 ifeq ($(BR2_i386),y)
195 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
196 endif
197 ifeq ($(BR2_x86_64),y)
198 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
199 endif
200 ifeq ($(BR2_m68k),y)
201 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
202 endif
203 ifeq ($(BR2_s390),y)
204 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
205 endif
206 ifeq ($(BR2_powerpc)$(BR2_ENDIAN),yBIG)
207 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
208 endif
209
210 ifeq ($(BR2_ENDIAN),"BIG")
211 BR2_AC_CV_C_BIGENDIAN=ac_cv_c_bigendian=yes
212 else
213 BR2_AC_CV_C_BIGENDIAN=ac_cv_c_bigendian=no
214 endif
215
216 TARGET_CONFIGURE_ARGS= \
217         $(BR2_AC_CV_TRAP_CHECK) \
218         ac_cv_func_mmap_fixed_mapped=yes \
219         ac_cv_func_memcmp_working=yes \
220         $(BR2_AC_CV_C_BIGENDIAN)
221
222 #######################################################################
223
224 ifeq ($(BR2_ENABLE_LOCALE),y)
225 DISABLE_NLS:=
226 else
227 DISABLE_NLS:=--disable-nls
228 endif
229
230 ifneq ($(BR2_LARGEFILE),y)
231 DISABLE_LARGEFILE= --disable-largefile
232 endif
233
234 ifneq ($(BR2_INET_IPV6),y)
235 DISABLE_IPV6= --disable-ipv6
236 endif
237
238 ifeq ($(BR2_INSTALL_LIBSTDCPP),)
239 TARGET_CONFIGURE_OPTS+=CXX=""
240 endif
241
242
243
244 # X Windowing system
245
246 XSERVER:=
247 ifeq ($(strip $(BR2_PACKAGE_TINYX)),y)
248 XSERVER+=tinyx
249 endif
250 ifeq ($(strip $(BR2_PACKAGE_XORG)),y)
251 XSERVER+=xorg
252 endif
253 ifeq ($(strip $(BR2_PACKAGE_XGGI)),y)
254 XSERVER+=xggi
255 endif
256
This page took 0.038283 seconds and 4 git commands to generate.