7 HOSTMAKE
:=$(shell $(CONFIG_SHELL
) -c
"which $(HOSTMAKE)" || type
-p
$(HOSTMAKE
) || echo make
)
9 MAKE1
:=$(HOSTMAKE
) MAKE
="$(firstword $(HOSTMAKE)) -j1"
10 MAKE
:=$(HOSTMAKE
) -j
$(BR2_JLEVEL
)
13 #########################################################################
14 ifeq ($(BR2_TOOLCHAIN_SOURCE
),y
)
15 TARGET_CFLAGS
=$(TARGET_OPTIMIZATION
) $(TARGET_DEBUGGING
) \
16 -I
$(STAGING_DIR
)/usr
/include -I
$(STAGING_DIR
)/include
17 TARGET_LDFLAGS
+=-L
$(STAGING_DIR
)/lib
-L
$(STAGING_DIR
)/usr
/lib
18 ifeq ($(BR2_TOOLCHAIN_SYSROOT
),y
)
19 TARGET_CFLAGS
+= $(BR2_SYSROOT
) $(BR2_ISYSROOT
)
20 TARGET_LDFLAGS
+= $(BR2_SYSROOT
)
23 CC_TARGET_TUNE_
:=$(strip $(subst ",,$(BR2_GCC_TARGET_TUNE)))
25 CC_TARGET_ARCH_
:=$(strip $(subst ",,$(BR2_GCC_TARGET_ARCH)))
27 CC_TARGET_ABI_
:=$(strip $(subst ",,$(BR2_GCC_TARGET_ABI)))
29 ifneq ($(CC_TARGET_TUNE_
),)
30 TARGET_CFLAGS
+=-mtune
=$(CC_TARGET_TUNE_
)
32 ifneq ($(CC_TARGET_ARCH_
),)
33 TARGET_CFLAGS
+=-march
=$(CC_TARGET_ARCH_
)
35 ifneq ($(CC_TARGET_ABI_
),)
36 TARGET_CFLAGS
+=-mabi
=$(CC_TARGET_ABI_
)
39 ifneq ($(BR2_PREFER_STATIC_LIB
),y
)
40 ifeq ($(BR2_x86_64
),y
)
41 TARGET_CFLAGS
+=-fPIC
-DPIC
42 endif # PIC for dynamic objects on x86_64
45 ifeq ($(BR2_SOFT_FLOAT
),y
)
46 TARGET_CFLAGS
+=-msoft-float
49 # enable VIS for v9a and v9b
50 ifeq ($(findstring y
,$(BR2_sparc_v9a
)$(BR2_sparc64_v9a
)$(BR2_sparc_v9b
)$(BR2_sparc64_v9b
)),y
)
54 ifeq ($(findstring yy
,$(BR2_mips
)$(BR2_MIPS_ABI64
)),yy
)
55 TARGET_CFLAGS
+=-fno-pic
-mno-abicalls
58 TARGET_CXXFLAGS
=$(TARGET_CFLAGS
)
59 TARGET_FFLAGS
=$(TARGET_CFLAGS
)
60 TARGET_FCFLAGS
=$(TARGET_CFLAGS
)
61 TARGET_F77FLAGS
=$(TARGET_CFLAGS
)
63 # else it's an external toolchain
64 #########################################################################
66 TARGET_CFLAGS
=$(TARGET_OPTIMIZATION
) $(TARGET_DEBUGGING
) -I
$(STAGING_DIR
)/include -I
$(STAGING_DIR
)/usr
/include -I
$(TOOLCHAIN_EXTERNAL_PATH
)/$(TOOLCHAIN_EXTERNAL_PREFIX
)/include
67 TARGET_CXXFLAGS
=$(TARGET_CFLAGS
)
68 TARGET_LDFLAGS
=-L
$(STAGING_DIR
)/lib
-L
$(STAGING_DIR
)/usr
/lib
70 #########################################################################
73 ifeq ($(BR2_TOOLCHAIN_SOURCE
),y
)
74 TOOL_BUILD_DIR
=$(BASE_DIR
)/$(TOPDIR_PREFIX
)toolchain_build_
$(ARCH
)$(ARCH_FPU_SUFFIX
)$(TOPDIR_SUFFIX
)
76 # Quotes are needed for spaces et al in path components.
77 TARGET_PATH
="$(TOOL_BUILD_DIR)/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)"
78 IMAGE
:=$(BINARIES_DIR
)/rootfs.
$(ARCH
)$(ARCH_FPU_SUFFIX
)
79 GNU_TARGET_NAME
=$(OPTIMIZE_FOR_CPU
)-linux
80 REAL_GNU_TARGET_NAME
=$(OPTIMIZE_FOR_CPU
)$(GNU_TARGET_SUFFIX
)
81 TARGET_CROSS
=$(STAGING_DIR
)/usr
/bin
/$(REAL_GNU_TARGET_NAME
)-
82 KERNEL_CROSS
=$(TARGET_CROSS
)
84 TOOLCHAIN_EXTERNAL_PREFIX
:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PREFIX)))
86 TOOLCHAIN_EXTERNAL_PATH
:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PATH)))
88 TOOL_BUILD_DIR
=$(BASE_DIR
)/$(TOPDIR_PREFIX
)toolchain_build_
$(TOOLCHAIN_EXTERNAL_PREFIX
)
89 TARGET_PATH
="$(STAGING_DIR)/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
90 IMAGE
:=$(BINARIES_DIR
)/rootfs.
$(TOOLCHAIN_EXTERNAL_PREFIX
)-$(DATE
)
92 REAL_GNU_TARGET_NAME
=$(TOOLCHAIN_EXTERNAL_PREFIX
)
93 GNU_TARGET_NAME
=$(TOOLCHAIN_EXTERNAL_PREFIX
)
94 KERNEL_CROSS
=$(TOOLCHAIN_EXTERNAL_PATH
)/bin
/$(TOOLCHAIN_EXTERNAL_PREFIX
)-
95 TARGET_CROSS
=$(TOOLCHAIN_EXTERNAL_PATH
)/bin
/$(TOOLCHAIN_EXTERNAL_PREFIX
)-
97 TARGET_AR
=$(TARGET_CROSS
)ar
98 TARGET_AS
=$(TARGET_CROSS
)as
99 TARGET_CC
=$(TARGET_CROSS
)gcc
100 TARGET_CPP
=$(TARGET_CROSS
)cpp
101 TARGET_CXX
=$(TARGET_CROSS
)g
++
102 ifeq ($(BR2_GCC_VERSION_3_4_6
),y
)
103 TARGET_FC
=$(TARGET_CROSS
)g77
105 TARGET_FC
=$(TARGET_CROSS
)gfortran
107 TARGET_LD
=$(TARGET_CROSS
)ld
108 TARGET_NM
=$(TARGET_CROSS
)nm
109 TARGET_RANLIB
=$(TARGET_CROSS
)ranlib
110 TARGET_OBJCOPY
=$(TARGET_CROSS
)objcopy
111 TARGET_OBJDUMP
=$(TARGET_CROSS
)objdump
112 TARGET_LDCONFIG
=$(TARGET_CROSS
)ldconfig
113 ifeq ($(BR2_STRIP_strip
),y
)
114 STRIP_DISCARD_ALL
:=--discard-all
115 STRIP_STRIP_UNNEEDED
:=--strip-unneeded
116 STRIP_STRIP_ALL
:=--strip-all
117 REMOVE_SECTION_COMMENT
:=--remove-section
=.comment
118 REMOVE_SECTION_NOTE
:=--remove-section
=.note
119 TARGET_STRIP
=$(TARGET_CROSS
)strip
120 STRIPCMD
=$(TARGET_CROSS
)strip $(REMOVE_SECTION_COMMENT
) $(REMOVE_SECTION_NOTE
)
122 ifeq ($(BR2_STRIP_sstrip
),y
)
124 STRIP_STRIP_UNNEEDED
:=
126 REMOVE_SECTION_COMMENT
:=
127 REMOVE_SECTION_NOTE
:=
128 TARGET_STRIP
=$(STAGING_DIR
)/usr
/bin
/$(REAL_GNU_TARGET_NAME
)-sstrip
129 STRIPCMD
=$(TARGET_STRIP
)
131 ifeq ($(BR2_STRIP_none
),y
)
132 TARGET_STRIP
=true
-Not_stripping
133 STRIPCMD
=$(TARGET_STRIP
)
135 INSTALL
=/usr
/bin
/install
137 HOST_ARCH
:=$(shell $(HOSTCC
) -dumpmachine | sed
-e s
'/-.*//' \
138 -e
's/sparc.*/sparc/' \
140 -e
's/m68k.*/m68k/' \
141 -e
's/ppc/powerpc/g' \
142 -e
's/v850.*/v850/g' \
144 -e
's/mips-.*/mips/' \
145 -e
's/mipsel-.*/mipsel/' \
146 -e
's/cris.*/cris/' \
147 -e
's/i[3-9]86/i386/' \
149 GNU_HOST_NAME
:=$(HOST_ARCH
)-$(subst ",,$(BR2_GNU_BUILD_SUFFIX))
152 AUTO_CONFIGURE_TARGET
= \
153 $(TARGET_CONFIGURE_OPTS
) \
154 $(TARGET_CONFIGURE_ARGS
) \
155 $(TARGET_CONFIGURE_ENV
) \
156 $(if
$(THIS_SRCDIR
),$(THIS_SRCDIR
)/,.
/)configure \
157 --target
=$(REAL_GNU_TARGET_NAME
) \
158 --host
=$(REAL_GNU_TARGET_NAME
) \
159 --build
=$(GNU_HOST_NAME
)
161 TARGET_CONFIGURE_OPTS
=PATH
=$(TARGET_PATH
) \
164 LD
="$(TARGET_LD) $(TARGET_LDFLAGS)" \
166 CC
="$(TARGET_CC) $(TARGET_CFLAGS)" \
167 GCC
="$(TARGET_CC) $(TARGET_CFLAGS)" \
168 CPP
="$(TARGET_CPP) $(TARGET_CFLAGS)" \
169 CXX
="$(if $(BR2_GCC_CROSS_CXX),$(TARGET_CXX) $(TARGET_CXXFLAGS))" \
170 FC
="$(TARGET_FC) $(TARGET_FCFLAGS)" \
171 RANLIB
="$(TARGET_RANLIB)" \
172 STRIP
="$(TARGET_STRIP)" \
173 OBJCOPY
="$(TARGET_OBJCOPY)" \
174 AR_FOR_BUILD
="$(HOSTAR)" \
175 AS_FOR_BUILD
="$(HOSTAS)" \
176 CC_FOR_BUILD
="$(HOSTCC)" \
177 GCC_FOR_BUILD
="$(HOSTCC)" \
178 CXX_FOR_BUILD
="$(HOSTCXX)" \
179 FC_FOR_BUILD
="$(HOSTFC)" \
180 LD_FOR_BUILD
="$(HOSTLD)" \
181 CFLAGS_FOR_BUILD
="$(HOST_CFLAGS)" \
182 CXXFLAGS_FOR_BUILD
="$(HOST_CXXFLAGS)" \
183 LDFLAGS_FOR_BUILD
="$(HOST_LDFLAGS)" \
184 FCFLAGS_FOR_BUILD
="$(HOST_FCFLAGS)" \
185 AR_FOR_TARGET
="$(TARGET_AR)" \
186 AS_FOR_TARGET
="$(TARGET_AS)" \
187 CC_FOR_TARGET
="$(TARGET_CC)" \
188 LD_FOR_TARGET
="$(TARGET_LD)" \
189 NM_FOR_TARGET
="$(TARGET_NM)" \
190 DEFAULT_ASSEMBLER
="$(TARGET_AS)" \
191 DEFAULT_LINKER
="$(TARGET_LD)" \
192 PKG_CONFIG_SYSROOT
="$(STAGING_DIR)" \
193 PKG_CONFIG
="$(STAGING_DIR)/usr/bin/pkg-config" \
194 PKG_CONFIG_PATH
="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
195 PKG_CONFIG_ALLOW_SYSTEM_CFLAGS
=1 \
196 PKG_CONFIG_ALLOW_SYSTEM_LIBS
=1 \
197 STAGING_DIR
="$(STAGING_DIR)"
199 TARGET_CONFIGURE_ENV
:=\
200 CFLAGS
="$(TARGET_CFLAGS)" \
201 LDFLAGS
="$(TARGET_LDFLAGS)" \
202 CXXFLAGS
="$(if $(BR2_GCC_CROSS_CXX),$(TARGET_CXXFLAGS))" \
203 FFLAGS
="$(TARGET_FFLAGS)" \
204 FCFLAGS
="$(TARGET_FCFLAGS)" \
205 F77FLAGS
="$(TARGET_F77FLAGS)" \
207 HOST_CONFIGURE_OPTS
=PATH
=$(TARGET_PATH
) \
210 LD
="$(HOSTLD) $(HOST_LDFLAGS)" \
212 CC
="$(HOSTCC) $(HOST_CFLAGS)" \
213 GCC
="$(HOSTCC) $(HOST_CFLAGS)" \
214 CXX
="$(HOSTCXX) $(HOST_CXXFLAGS)" \
215 CPP
="$(HOSTCPP) $(HOST_CFLAGS)" \
216 AR_FOR_BUILD
="$(HOSTAR)" \
217 AS_FOR_BUILD
="$(HOSTAS)" \
218 CC_FOR_BUILD
="$(HOSTCC)" \
219 GCC_FOR_BUILD
="$(HOSTCC)" \
220 CPP_FOR_BUILD
="$(HOSTCPP)" \
221 CXX_FOR_BUILD
="$(HOSTCXX)" \
222 LD_FOR_BUILD
="$(HOSTLD)" \
223 FC_FOR_BUILD
="$(HOSTFC)" \
224 CFLAGS_FOR_BUILD
="$(HOST_CFLAGS)" \
225 CXXFLAGS_FOR_BUILD
="$(HOST_CXXFLAGS)" \
226 LDFLAGS_FOR_BUILD
="$(HOST_LDFLAGS)" \
227 FCFLAGS_FOR_BUILD
="$(HOST_FCFLAGS)" \
228 AR_FOR_TARGET
="$(TARGET_AR)" \
229 AS_FOR_TARGET
="$(TARGET_AS)" \
230 CC_FOR_TARGET
="$(TARGET_CC)" \
231 CPP_FOR_TARGET
="$(TARGET_CPP)" \
232 LD_FOR_TARGET
="$(TARGET_LD)" \
233 NM_FOR_TARGET
="$(TARGET_NM)" \
234 RANLIB_FOR_TARGET
="$(TARGET_RANLIB)" \
235 STRIP_FOR_TARGET
="$(TARGET_STRIP)" \
236 OBJCOPY_FOR_TARGET
="$(TARGET_OBJCOPY)" \
237 OBJDUMP_FOR_TARGET
="$(TARGET_OBJDUMP)" \
238 DEFAULT_ASSEMBLER
="$(TARGET_AS)" \
239 DEFAULT_LINKER
="$(TARGET_LD)" \
240 ORIGINAL_AS_FOR_TARGET
="$(TARGET_AS)" \
241 ORIGINAL_LD_FOR_TARGET
="$(TARGET_LD)" \
242 ORIGINAL_NM_FOR_TARGET
="$(TARGET_NM)" \
243 ORIGINAL_OBJDUMP_FOR_TARGET
="$(TARGET_OBJDUMP)"
245 #######################################################################
246 # settings we need to pass to configure
248 # does unaligned access trap?
249 BR2_AC_CV_TRAP_CHECK
=ac_cv_lbl_unaligned_fail
=yes
251 BR2_AC_CV_TRAP_CHECK
=ac_cv_lbl_unaligned_fail
=no
253 ifeq ($(BR2_x86_64
),y
)
254 BR2_AC_CV_TRAP_CHECK
=ac_cv_lbl_unaligned_fail
=no
257 BR2_AC_CV_TRAP_CHECK
=ac_cv_lbl_unaligned_fail
=no
260 BR2_AC_CV_TRAP_CHECK
=ac_cv_lbl_unaligned_fail
=no
262 ifeq ($(BR2_powerpc
)$(BR2_ENDIAN
),yBIG
)
263 BR2_AC_CV_TRAP_CHECK
=ac_cv_lbl_unaligned_fail
=no
266 ifeq ($(BR2_ENDIAN
),"BIG")
267 BR2_AC_CV_C_BIGENDIAN
=ac_cv_c_bigendian
=yes
269 BR2_AC_CV_C_BIGENDIAN
=ac_cv_c_bigendian
=no
272 # XXX: FIXME: We would need to grab MALLOC_GLIBC_COMPAT from the uClibc.config
273 # Including it doesn't seem wise, grepping is ugly.. Suggestions?
274 # Does malloc return live pointer for malloc(0) ?
275 ifeq ($(MALLOC_GLIBC_COMPAT
),y
)
276 BR2_AC_CV_FUNC_MALLOC_0_NONNULL
=ac_cv_func_malloc_0_nonnull
=yes \
277 gl_cv_func_malloc_0_nonnull
=yes \
278 ac_cv_func_realloc_0_nonnull
=yes
280 BR2_AC_CV_FUNC_MALLOC_0_NONNULL
=ac_cv_func_malloc_0_nonnull
=no \
281 gl_cv_func_malloc_0_nonnull
=no \
282 ac_cv_func_realloc_0_nonnull
=no
286 TARGET_CONFIGURE_ARGS
= \
287 $(BR2_AC_CV_TRAP_CHECK
) \
288 ac_cv_func_mmap_fixed_mapped
=yes \
289 ac_cv_func_memcmp_working
=yes \
290 $(BR2_AC_CV_C_BIGENDIAN
)
292 #######################################################################
294 #ifneq ($(BR2_GCC_CROSS_CXX),y)
295 #TARGET_CONFIGURE_OPTS+=CXX=""
303 ifeq ($(BR2_PACKAGE_TINYX
),y
)
306 ifeq ($(BR2_PACKAGE_XORG
),y
)
309 ifeq ($(BR2_PACKAGE_XORG7
),y
)
310 XSERVER
+=xserver_xorg-server
312 ifeq ($(BR2_PACKAGE_XGGI
),y
)
316 X11_PREFIX
:=$(strip $(subst ",, $(BR2_X11_PREFIX)))
319 include package
/Makefile.autotools.in