cris
[buildroot.git] / package / Makefile.in
blob73b67577223bd009261df6e30ca4f75a30e0b8ba
1 ifndef MAKE
2 MAKE:=make
3 endif
4 ifndef HOSTMAKE
5 HOSTMAKE=$(MAKE)
6 endif
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=
16 TARGET_LDFLAGS=
18 ifeq ($(BR2_TOOLCHAIN_SYSROOT),y)
19 TARGET_CFLAGS+= $(BR2_SYSROOT) $(BR2_ISYSROOT) -I=/usr/include
20 TARGET_LDFLAGS+= $(BR2_SYSROOT)
21 else
22 # for old gcc's, as fallback
23 TARGET_CFLAGS+= -I$(STAGING_DIR)/include
24 endif
25 TARGET_CFLAGS+=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) \
26 -I$(STAGING_DIR)/usr/include
27 TARGET_LDFLAGS+=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
29 ifeq ($(BR2_bfin),y)
30 CC_TARGET_CPU_SUB_:=$(strip $(subst ",,$(BR2_bfin_sirevision)))
31 #"))
32 CC_TARGET_CPU_SUB_:=$(if $(CC_TARGET_CPU_SUB_),-$(CC_TARGET_CPU_SUB_))
33 endif
35 CC_TARGET_CPU_:=$(strip $(subst ",,$(BR2_GCC_TARGET_CPU)))
36 #"))
37 CC_TARGET_TUNE_:=$(strip $(subst ",,$(BR2_GCC_TARGET_TUNE)))
38 #"))
39 CC_TARGET_ARCH_:=$(strip $(subst ",,$(BR2_GCC_TARGET_ARCH)))
40 #"))
41 CC_TARGET_ABI_:=$(strip $(subst ",,$(BR2_GCC_TARGET_ABI)))
42 #"))
43 ifneq ($(CC_TARGET_CPU_),)
44 TARGET_CFLAGS+=-mcpu=$(CC_TARGET_CPU_)$(CC_TARGET_CPU_SUB_)
45 endif
46 ifneq ($(CC_TARGET_TUNE_),)
47 TARGET_CFLAGS+=-mtune=$(CC_TARGET_TUNE_)
48 endif
49 ifneq ($(CC_TARGET_ARCH_),)
50 TARGET_CFLAGS+=-march=$(CC_TARGET_ARCH_)
51 endif
52 ifneq ($(CC_TARGET_ABI_),)
53 TARGET_CFLAGS+=-mabi=$(CC_TARGET_ABI_)
54 endif
56 ifneq ($(BR2_PREFER_STATIC_LIB),y)
57 ifeq ($(BR2_x86_64),y)
58 TARGET_CFLAGS+=-fPIC -DPIC
59 endif # PIC for dynamic objects on x86_64
60 endif
62 ifeq ($(BR2_SOFT_FLOAT),y)
63 TARGET_CFLAGS+=-msoft-float
64 endif
66 ifeq ($(BR2_THUMB_BINARIES),y)
67 TARGET_CFLAGS+=-mthumb
68 endif
70 # enable VIS for v9a and v9b
71 ifeq ($(findstring y,$(BR2_sparc_v9a)$(BR2_sparc64_v9a)$(BR2_sparc_v9b)$(BR2_sparc64_v9b)),y)
72 TARGET_CFLAGS+=-mvis
73 endif
75 ifeq ($(findstring yy,$(BR2_mips)$(BR2_MIPS_ABI64)),yy)
76 TARGET_CFLAGS+=-fno-pic -mno-abicalls
77 endif
79 TARGET_CXXFLAGS=$(TARGET_CFLAGS)
80 TARGET_FFLAGS=$(TARGET_CFLAGS)
81 TARGET_FCFLAGS=$(TARGET_CFLAGS)
82 TARGET_F77FLAGS=$(TARGET_CFLAGS)
84 # else it's an external toolchain
85 #########################################################################
86 else
87 TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include -I$(TOOLCHAIN_EXTERNAL_PATH)/$(TOOLCHAIN_EXTERNAL_PREFIX)/include
88 TARGET_CXXFLAGS=$(TARGET_CFLAGS)
89 TARGET_LDFLAGS=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
90 endif
91 #########################################################################
93 ifeq ($(BR2_ENABLE_SSP),y)
94 TARGET_CFLAGS+=-fstack-protector -fstack-protector-all -Wstack-protector
95 endif
97 ifeq ($(BR2_TOOLCHAIN_SOURCE),y)
98 TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
100 # Quotes are needed for spaces et al in path components.
101 TARGET_PATH="$(TOOL_BUILD_DIR)/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)"
102 IMAGE:=$(BINARIES_DIR)/rootfs.$(ARCH)$(ARCH_FPU_SUFFIX)
103 GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
104 REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)
105 TARGET_CROSS=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-
106 KERNEL_CROSS=$(TARGET_CROSS)
107 else
108 TOOLCHAIN_EXTERNAL_PREFIX:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PREFIX)))
109 #"))
110 TOOLCHAIN_EXTERNAL_PATH:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PATH)))
111 #"))
112 TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX)
113 TARGET_PATH="$(STAGING_DIR)/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
114 IMAGE:=$(BINARIES_DIR)/rootfs.$(TOOLCHAIN_EXTERNAL_PREFIX)-$(DATE)
116 REAL_GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
117 GNU_TARGET_NAME=$(TOOLCHAIN_EXTERNAL_PREFIX)
118 KERNEL_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
119 TARGET_CROSS=$(TOOLCHAIN_EXTERNAL_PATH)/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
120 endif
121 TARGET_AR=$(TARGET_CROSS)ar
122 TARGET_AS=$(TARGET_CROSS)as
123 TARGET_CC=$(TARGET_CROSS)gcc
124 TARGET_CPP=$(TARGET_CROSS)cpp
125 TARGET_CXX=$(TARGET_CROSS)g++
126 ifeq ($(BR2_GCC_VERSION_3_4_6),y)
127 TARGET_FC=$(TARGET_CROSS)g77
128 else
129 TARGET_FC=$(TARGET_CROSS)gfortran
130 endif
131 TARGET_LD=$(TARGET_CROSS)ld
132 TARGET_NM=$(TARGET_CROSS)nm
133 TARGET_RANLIB=$(TARGET_CROSS)ranlib
134 TARGET_OBJCOPY=$(TARGET_CROSS)objcopy
135 TARGET_OBJDUMP=$(TARGET_CROSS)objdump
136 TARGET_LDCONFIG=$(TARGET_CROSS)ldconfig
137 ifeq ($(BR2_STRIP_strip),y)
138 STRIP_DISCARD_ALL:=--discard-all
139 STRIP_STRIP_UNNEEDED:=--strip-unneeded
140 STRIP_STRIP_ALL:=--strip-all
141 REMOVE_SECTION_COMMENT:=--remove-section=.comment
142 REMOVE_SECTION_NOTE:=--remove-section=.note
143 TARGET_STRIP=$(TARGET_CROSS)strip
144 STRIPCMD=$(TARGET_CROSS)strip $(REMOVE_SECTION_COMMENT) $(REMOVE_SECTION_NOTE)
145 endif
146 ifeq ($(BR2_STRIP_sstrip),y)
147 STRIP_DISCARD_ALL:=
148 STRIP_STRIP_UNNEEDED:=
149 STRIP_STRIP_ALL:=
150 REMOVE_SECTION_COMMENT:=
151 REMOVE_SECTION_NOTE:=
152 TARGET_STRIP=$(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-sstrip
153 STRIPCMD=$(TARGET_STRIP)
154 endif
155 ifeq ($(BR2_STRIP_none),y)
156 TARGET_STRIP=true -Not_stripping
157 STRIPCMD=$(TARGET_STRIP)
158 endif
159 INSTALL=/usr/bin/install
160 FLEX:=$(shell $(CONFIG_SHELL) -c 'which flex || type -p flex')
161 BISON:=$(shell $(CONFIG_SHELL) -c 'which bison || type -p bison')
163 HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
164 -e 's/sparc.*/sparc/' \
165 -e 's/arm.*/arm/g' \
166 -e 's/m68k.*/m68k/' \
167 -e 's/ppc/powerpc/g' \
168 -e 's/v850.*/v850/g' \
169 -e 's/sh[234]/sh/' \
170 -e 's/mips-.*/mips/' \
171 -e 's/mipsel-.*/mipsel/' \
172 -e 's/cris.*/cris/' \
173 -e 's/i[3-9]86/i386/' \
175 GNU_HOST_NAME:=$(HOST_ARCH)-$(subst ",,$(BR2_GNU_BUILD_SUFFIX))
178 AUTO_CONFIGURE_TARGET= \
179 $(TARGET_CONFIGURE_OPTS) \
180 $(TARGET_CONFIGURE_ARGS) \
181 $(TARGET_CONFIGURE_ENV) \
182 $(if $(THIS_SRCDIR),$(THIS_SRCDIR)/,./)configure \
183 --target=$(REAL_GNU_TARGET_NAME) \
184 --host=$(REAL_GNU_TARGET_NAME) \
185 --build=$(GNU_HOST_NAME)
187 TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
188 AR="$(TARGET_AR)" \
189 AS="$(TARGET_AS)" \
190 LD="$(TARGET_LD) $(TARGET_LDFLAGS)" \
191 NM="$(TARGET_NM)" \
192 CC="$(TARGET_CC) $(TARGET_CFLAGS)" \
193 GCC="$(TARGET_CC) $(TARGET_CFLAGS)" \
194 CPP="$(TARGET_CPP) $(TARGET_CFLAGS)" \
195 CXX="$(if $(BR2_GCC_CROSS_CXX),$(TARGET_CXX) $(TARGET_CXXFLAGS))" \
196 FC="$(TARGET_FC) $(TARGET_FCFLAGS)" \
197 RANLIB="$(TARGET_RANLIB)" \
198 STRIP="$(TARGET_STRIP)" \
199 OBJCOPY="$(TARGET_OBJCOPY)" \
200 AR_FOR_BUILD="$(HOSTAR)" \
201 AS_FOR_BUILD="$(HOSTAS)" \
202 CC_FOR_BUILD="$(HOSTCC)" \
203 GCC_FOR_BUILD="$(HOSTCC)" \
204 CXX_FOR_BUILD="$(HOSTCXX)" \
205 FC_FOR_BUILD="$(HOSTFC)" \
206 LD_FOR_BUILD="$(HOSTLD)" \
207 CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
208 CXXFLAGS_FOR_BUILD="$(HOST_CXXFLAGS)" \
209 LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
210 FCFLAGS_FOR_BUILD="$(HOST_FCFLAGS)" \
211 AR_FOR_TARGET="$(TARGET_AR)" \
212 AS_FOR_TARGET="$(TARGET_AS)" \
213 CC_FOR_TARGET="$(TARGET_CC)" \
214 LD_FOR_TARGET="$(TARGET_LD)" \
215 NM_FOR_TARGET="$(TARGET_NM)" \
216 CXX_FOR_TARGET="$(if $(BR2_GCC_CROSS_CXX),$(TARGET_CXX))" \
217 DEFAULT_ASSEMBLER="$(TARGET_AS)" \
218 DEFAULT_LINKER="$(TARGET_LD)" \
219 PKG_CONFIG_SYSROOT="$(STAGING_DIR)" \
220 PKG_CONFIG="$(STAGING_DIR)/usr/bin/pkg-config" \
221 PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
222 PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
223 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
224 STAGING_DIR="$(STAGING_DIR)"
226 TARGET_CONFIGURE_ENV:=\
227 CFLAGS="$(TARGET_CFLAGS)" \
228 LDFLAGS="$(TARGET_LDFLAGS)" \
229 CXXFLAGS="$(if $(BR2_GCC_CROSS_CXX),$(TARGET_CXXFLAGS))" \
230 FFLAGS="$(TARGET_FFLAGS)" \
231 FCFLAGS="$(TARGET_FCFLAGS)" \
232 F77FLAGS="$(TARGET_F77FLAGS)" \
234 HOST_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
235 AR="$(HOSTAR)" \
236 AS="$(HOSTAS)" \
237 LD="$(HOSTLD) $(HOST_LDFLAGS)" \
238 NM="$(HOSTNM)" \
239 CC="$(HOSTCC) $(HOST_CFLAGS)" \
240 GCC="$(HOSTCC) $(HOST_CFLAGS)" \
241 CXX="$(HOSTCXX) $(HOST_CXXFLAGS)" \
242 CPP="$(HOSTCPP) $(HOST_CFLAGS)" \
243 AR_FOR_BUILD="$(HOSTAR)" \
244 AS_FOR_BUILD="$(HOSTAS)" \
245 CC_FOR_BUILD="$(HOSTCC)" \
246 GCC_FOR_BUILD="$(HOSTCC)" \
247 CPP_FOR_BUILD="$(HOSTCPP)" \
248 CXX_FOR_BUILD="$(HOSTCXX)" \
249 LD_FOR_BUILD="$(HOSTLD)" \
250 FC_FOR_BUILD="$(HOSTFC)" \
251 CFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \
252 CXXFLAGS_FOR_BUILD="$(HOST_CXXFLAGS)" \
253 LDFLAGS_FOR_BUILD="$(HOST_LDFLAGS)" \
254 FCFLAGS_FOR_BUILD="$(HOST_FCFLAGS)" \
255 AR_FOR_TARGET="$(TARGET_AR)" \
256 AS_FOR_TARGET="$(TARGET_AS)" \
257 CC_FOR_TARGET="$(TARGET_CC)" \
258 CPP_FOR_TARGET="$(TARGET_CPP)" \
259 LD_FOR_TARGET="$(TARGET_LD)" \
260 NM_FOR_TARGET="$(TARGET_NM)" \
261 CXX_FOR_TARGET="$(if $(BR2_GCC_CROSS_CXX),$(TARGET_CXX))" \
262 RANLIB_FOR_TARGET="$(TARGET_RANLIB)" \
263 STRIP_FOR_TARGET="$(TARGET_STRIP)" \
264 OBJCOPY_FOR_TARGET="$(TARGET_OBJCOPY)" \
265 OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)" \
266 DEFAULT_ASSEMBLER="$(TARGET_AS)" \
267 DEFAULT_LINKER="$(TARGET_LD)" \
268 ORIGINAL_AS_FOR_TARGET="$(TARGET_AS)" \
269 ORIGINAL_LD_FOR_TARGET="$(TARGET_LD)" \
270 ORIGINAL_NM_FOR_TARGET="$(TARGET_NM)" \
271 ORIGINAL_OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)"
273 #######################################################################
274 # settings we need to pass to configure
276 # does unaligned access trap?
277 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=yes
278 ifeq ($(BR2_i386),y)
279 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
280 endif
281 ifeq ($(BR2_x86_64),y)
282 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
283 endif
284 ifeq ($(BR2_m68k),y)
285 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
286 endif
287 ifeq ($(BR2_s390),y)
288 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
289 endif
290 ifeq ($(BR2_powerpc)$(BR2_ENDIAN),yBIG)
291 BR2_AC_CV_TRAP_CHECK=ac_cv_lbl_unaligned_fail=no
292 endif
294 ifeq ($(BR2_ENDIAN),"BIG")
295 BR2_AC_CV_C_BIGENDIAN=ac_cv_c_bigendian=yes
296 else
297 BR2_AC_CV_C_BIGENDIAN=ac_cv_c_bigendian=no
298 endif
300 # uClibc's config symbols reside in BR2__UCLIBC_${uclibc_config_sym}=${val}
301 # Does malloc return live pointer for malloc(0) ?
302 ifeq ($(BR2__UCLIBC_MALLOC_GLIBC_COMPAT),y)
303 BR2_AC_CV_FUNC_MALLOC_0_NONNULL=ac_cv_func_malloc_0_nonnull=yes \
304 gl_cv_func_malloc_0_nonnull=yes \
305 ac_cv_func_realloc_0_nonnull=yes
306 else
307 BR2_AC_CV_FUNC_MALLOC_0_NONNULL=ac_cv_func_malloc_0_nonnull=no \
308 gl_cv_func_malloc_0_nonnull=no \
309 ac_cv_func_realloc_0_nonnull=no
310 endif
312 ifeq ($(findstring y,$(BR2__UCLIBC_UCLIBC_SUSV3_LEGACY)$(BR2__UCLIBC_UCLIBC_SUSV3_LEGACY_MACROS)),y)
313 BR2_AC_CV_SUSV3_LEGACY=
314 endif
316 TARGET_CONFIGURE_ARGS= \
317 $(BR2_AC_CV_TRAP_CHECK) \
318 ac_cv_func_mmap_fixed_mapped=yes \
319 ac_cv_func_memcmp_working=yes \
320 $(BR2_AC_CV_FUNC_MALLOC_0_NONNULL) \
321 ac_cv_type_mode_t=yes \
322 ac_cv_prog_LEX="$(FLEX)" \
323 ac_cv_prog_YACC="$(BISON) $($(PKG)_BISON_FLAGS)" \
324 $(BR2_AC_CV_C_BIGENDIAN)
326 #######################################################################
328 #ifneq ($(BR2_GCC_CROSS_CXX),y)
329 #TARGET_CONFIGURE_OPTS+=CXX=""
330 #endif
334 # X Windowing system
336 XSERVER:=
337 ifeq ($(BR2_PACKAGE_TINYX),y)
338 XSERVER+=tinyx
339 endif
340 ifeq ($(BR2_PACKAGE_XORG),y)
341 XSERVER+=xorg
342 endif
343 ifeq ($(BR2_PACKAGE_XORG7),y)
344 XSERVER+=xserver_xorg-server
345 endif
346 ifeq ($(BR2_PACKAGE_XGGI),y)
347 XSERVER+=xggi
348 endif
350 X11_PREFIX:=$(strip $(subst ",, $(BR2_X11_PREFIX)))
351 #"))
353 include package/Makefile.autotools.in