]> rtime.felk.cvut.cz Git - coffee/buildroot.git/blob - package/uclibc/uclibc.mk
Globally replace $(HOST_DIR)/usr/bin with $(HOST_DIR)/bin
[coffee/buildroot.git] / package / uclibc / uclibc.mk
1 ################################################################################
2 #
3 # uclibc
4 #
5 ################################################################################
6
7 UCLIBC_VERSION = 1.0.25
8 UCLIBC_SOURCE = uClibc-ng-$(UCLIBC_VERSION).tar.xz
9 UCLIBC_SITE = http://downloads.uclibc-ng.org/releases/$(UCLIBC_VERSION)
10 UCLIBC_LICENSE = LGPL-2.1+
11 UCLIBC_LICENSE_FILES = COPYING.LIB
12 UCLIBC_INSTALL_STAGING = YES
13
14 define UCLIBC_HELP_CMDS
15         @echo '  uclibc-menuconfig      - Run uClibc menuconfig'
16 endef
17
18 # uclibc is part of the toolchain so disable the toolchain dependency
19 UCLIBC_ADD_TOOLCHAIN_DEPENDENCY = NO
20
21 # Before uClibc is configured, we must have the first stage
22 # cross-compiler and the kernel headers
23 UCLIBC_DEPENDENCIES = host-gcc-initial linux-headers
24
25 # specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config
26 # setting.
27 ifndef UCLIBC_CONFIG_FILE
28 UCLIBC_CONFIG_FILE = $(call qstrip,$(BR2_UCLIBC_CONFIG))
29 endif
30
31 UCLIBC_KCONFIG_FILE = $(UCLIBC_CONFIG_FILE)
32 UCLIBC_KCONFIG_FRAGMENT_FILES = $(call qstrip,$(BR2_UCLIBC_CONFIG_FRAGMENT_FILES))
33
34 UCLIBC_KCONFIG_OPTS = \
35         $(UCLIBC_MAKE_FLAGS) \
36         PREFIX=$(STAGING_DIR) \
37         DEVEL_PREFIX=/usr/ \
38         RUNTIME_PREFIX=$(STAGING_DIR)/
39
40 UCLIBC_TARGET_ARCH = $(call qstrip,$(BR2_UCLIBC_TARGET_ARCH))
41
42 UCLIBC_GENERATE_LOCALES = $(call qstrip,$(BR2_GENERATE_LOCALE))
43
44 ifeq ($(UCLIBC_GENERATE_LOCALES),)
45 # We need at least one locale
46 UCLIBC_LOCALES = en_US
47 else
48 # Strip out the encoding part of locale names, if any
49 UCLIBC_LOCALES = \
50         $(foreach locale,$(UCLIBC_GENERATE_LOCALES),\
51         $(firstword $(subst .,$(space),$(locale))))
52 endif
53
54 # noMMU binary formats
55 ifeq ($(BR2_BINFMT_FDPIC),y)
56 define UCLIBC_BINFMT_CONFIG
57         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT,$(@D)/.config)
58         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA,$(@D)/.config)
59         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT,$(@D)/.config)
60         $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF,$(@D)/.config)
61 endef
62 endif
63 ifeq ($(BR2_BINFMT_FLAT_ONE),y)
64 define UCLIBC_BINFMT_CONFIG
65         $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_FLAT,$(@D)/.config)
66         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA,$(@D)/.config)
67         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT,$(@D)/.config)
68         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF,$(@D)/.config)
69 endef
70 endif
71 ifeq ($(BR2_BINFMT_FLAT_SEP_DATA),y)
72 define UCLIBC_BINFMT_CONFIG
73         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT,$(@D)/.config)
74         $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA,$(@D)/.config)
75         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT,$(@D)/.config)
76         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF,$(@D)/.config)
77 endef
78 endif
79 ifeq ($(BR2_BINFMT_FLAT_SHARED),y)
80 define UCLIBC_BINFMT_CONFIG
81         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT,$(@D)/.config)
82         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FLAT_SEP_DATA,$(@D)/.config)
83         $(call KCONFIG_ENABLE_OPT,UCLIBC_FORMAT_SHARED_FLAT,$(@D)/.config)
84         $(call KCONFIG_DISABLE_OPT,UCLIBC_FORMAT_FDPIC_ELF,$(@D)/.config)
85 endef
86 endif
87
88 #
89 # ARC definitions
90 #
91
92 ifeq ($(UCLIBC_TARGET_ARCH),arc)
93 UCLIBC_ARC_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_ARC_TYPE))
94 define UCLIBC_ARC_TYPE_CONFIG
95         $(call KCONFIG_ENABLE_OPT,$(UCLIBC_ARC_TYPE),$(@D)/.config)
96 endef
97
98 UCLIBC_ARC_PAGE_SIZE = CONFIG_ARC_PAGE_SIZE_$(call qstrip,$(BR2_ARC_PAGE_SIZE))
99 define UCLIBC_ARC_PAGE_SIZE_CONFIG
100         $(SED) '/CONFIG_ARC_PAGE_SIZE_*/d' $(@D)/.config
101         $(call KCONFIG_ENABLE_OPT,$(UCLIBC_ARC_PAGE_SIZE),$(@D)/.config)
102 endef
103
104 ifeq ($(BR2_ARC_ATOMIC_EXT),)
105 define UCLIBC_ARC_ATOMICS_CONFIG
106         $(call KCONFIG_DISABLE_OPT,CONFIG_ARC_HAS_ATOMICS,$(@D)/.config)
107 endef
108 endif
109
110 endif # arc
111
112 #
113 # ARM definitions
114 #
115
116 ifeq ($(UCLIBC_TARGET_ARCH),arm)
117 define UCLIBC_ARM_ABI_CONFIG
118         $(SED) '/CONFIG_ARM_.ABI/d' $(@D)/.config
119         $(call KCONFIG_ENABLE_OPT,CONFIG_ARM_EABI,$(@D)/.config)
120 endef
121
122 ifeq ($(BR2_BINFMT_FLAT),y)
123 define UCLIBC_ARM_BINFMT_FLAT
124         $(call KCONFIG_DISABLE_OPT,DOPIC,$(@D)/.config)
125 endef
126 endif
127
128 # context functions are written with ARM instructions. Therefore, if
129 # we are using a Thumb2-only platform (i.e, Cortex-M), they must be
130 # disabled. Thumb1 platforms are not a problem, since they all also
131 # support the ARM instructions.
132 ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB2):$(BR2_ARM_CPU_HAS_ARM),y:)
133 define UCLIBC_ARM_NO_CONTEXT_FUNCS
134         $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_CONTEXT_FUNCS,$(@D)/.config)
135 endef
136 endif
137
138 endif # arm
139
140 #
141 # m68k/coldfire definitions
142 #
143
144 ifeq ($(UCLIBC_TARGET_ARCH),m68k)
145
146 # disable DOPIC for flat without separate data
147 ifeq ($(BR2_BINFMT_FLAT_ONE),y)
148 define UCLIBC_M68K_BINFMT_FLAT
149         $(call KCONFIG_DISABLE_OPT,DOPIC,$(@D)/.config)
150 endef
151 endif
152
153 endif # m68k/coldfire
154
155 #
156 # MIPS definitions
157 #
158
159 ifeq ($(UCLIBC_TARGET_ARCH),mips)
160 UCLIBC_MIPS_ABI = CONFIG_MIPS_$(call qstrip,$(BR2_UCLIBC_MIPS_ABI))_ABI
161 define UCLIBC_MIPS_ABI_CONFIG
162         $(SED) '/CONFIG_MIPS_[NO].._ABI/d' $(@D)/.config
163         $(call KCONFIG_ENABLE_OPT,$(UCLIBC_MIPS_ABI),$(@D)/.config)
164 endef
165
166 UCLIBC_MIPS_NAN = CONFIG_MIPS_NAN_$(call qstrip,$(BR2_UCLIBC_MIPS_NAN))
167 define UCLIBC_MIPS_NAN_CONFIG
168         $(SED) '/CONFIG_MIPS_NAN_.*/d' $(@D)/.config
169         $(call KCONFIG_ENABLE_OPT,$(UCLIBC_MIPS_NAN),$(@D)/.config)
170 endef
171 endif # mips
172
173 #
174 # SH definitions
175 #
176
177 ifeq ($(UCLIBC_TARGET_ARCH),sh)
178 UCLIBC_SH_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_SH_TYPE))
179 define UCLIBC_SH_TYPE_CONFIG
180         $(SED) '/CONFIG_SH[234A]*/d' $(@D)/.config
181         $(call KCONFIG_ENABLE_OPT,$(UCLIBC_SH_TYPE),$(@D)/.config)
182 endef
183 endif # sh
184
185 #
186 # SPARC definitions
187 #
188
189 ifeq ($(UCLIBC_TARGET_ARCH),sparc)
190 UCLIBC_SPARC_TYPE = CONFIG_SPARC_$(call qstrip,$(BR2_UCLIBC_SPARC_TYPE))
191 define UCLIBC_SPARC_TYPE_CONFIG
192         $(SED) 's/^\(CONFIG_[^_]*[_]*SPARC[^=]*\)=.*/# \1 is not set/g' \
193                 $(@D)/.config
194         $(call KCONFIG_ENABLE_OPT,$(UCLIBC_SPARC_TYPE),$(@D)/.config)
195 endef
196 endif # sparc
197
198 #
199 # PowerPC definitions
200 #
201
202 ifeq ($(UCLIBC_TARGET_ARCH),powerpc)
203 UCLIBC_POWERPC_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_POWERPC_TYPE))
204 define UCLIBC_POWERPC_TYPE_CONFIG
205         $(call KCONFIG_DISABLE_OPT,CONFIG_GENERIC,$(@D)/.config)
206         $(call KCONFIG_DISABLE_OPT,CONFIG_E500,$(@D)/.config)
207         $(call KCONFIG_ENABLE_OPT,$(UCLIBC_POWERPC_TYPE),$(@D)/.config)
208 endef
209 endif # powerpc
210
211 #
212 # x86 definitions
213 #
214 ifeq ($(UCLIBC_TARGET_ARCH),i386)
215 UCLIBC_X86_TYPE = CONFIG_$(call qstrip,$(BR2_UCLIBC_X86_TYPE))
216 define UCLIBC_X86_TYPE_CONFIG
217         $(call KCONFIG_ENABLE_OPT,$(UCLIBC_X86_TYPE),$(@D)/.config)
218 endef
219 endif
220
221 #
222 # Debug
223 #
224 ifeq ($(BR2_ENABLE_DEBUG),y)
225 define UCLIBC_DEBUG_CONFIG
226         $(call KCONFIG_ENABLE_OPT,DODEBUG,$(@D)/.config)
227 endef
228 endif
229
230 #
231 # Endianness
232 #
233
234 ifeq ($(call qstrip,$(BR2_ENDIAN)),BIG)
235 define UCLIBC_ENDIAN_CONFIG
236         $(call KCONFIG_ENABLE_OPT,ARCH_BIG_ENDIAN,$(@D)/.config)
237         $(call KCONFIG_ENABLE_OPT,ARCH_WANTS_BIG_ENDIAN,$(@D)/.config)
238         $(call KCONFIG_DISABLE_OPT,ARCH_LITTLE_ENDIAN,$(@D)/.config)
239         $(call KCONFIG_DISABLE_OPT,ARCH_WANTS_LITTLE_ENDIAN,$(@D)/.config)
240 endef
241 else
242 define UCLIBC_ENDIAN_CONFIG
243         $(call KCONFIG_ENABLE_OPT,ARCH_LITTLE_ENDIAN,$(@D)/.config)
244         $(call KCONFIG_ENABLE_OPT,ARCH_WANTS_LITTLE_ENDIAN,$(@D)/.config)
245         $(call KCONFIG_DISABLE_OPT,ARCH_BIG_ENDIAN,$(@D)/.config)
246         $(call KCONFIG_DISABLE_OPT,ARCH_WANTS_BIG_ENDIAN,$(@D)/.config)
247 endef
248 endif
249
250 #
251 # MMU
252 #
253
254 ifeq ($(BR2_USE_MMU),y)
255 define UCLIBC_MMU_CONFIG
256         $(call KCONFIG_ENABLE_OPT,ARCH_HAS_MMU,$(@D)/.config)
257         $(call KCONFIG_ENABLE_OPT,ARCH_USE_MMU,$(@D)/.config)
258 endef
259 else
260 define UCLIBC_MMU_CONFIG
261         $(call KCONFIG_DISABLE_OPT,ARCH_HAS_MMU,$(@D)/.config)
262         $(call KCONFIG_DISABLE_OPT,ARCH_USE_MMU,$(@D)/.config)
263 endef
264 endif
265
266 #
267 # IPv6
268 #
269
270 UCLIBC_IPV6_CONFIG = $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_IPV6,$(@D)/.config)
271
272 #
273 # soft-float
274 #
275
276 ifeq ($(BR2_SOFT_FLOAT),y)
277 define UCLIBC_FLOAT_CONFIG
278         $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_FPU,$(@D)/.config)
279         $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FLOATS,$(@D)/.config)
280         $(call KCONFIG_ENABLE_OPT,DO_C99_MATH,$(@D)/.config)
281 endef
282 else
283 define UCLIBC_FLOAT_CONFIG
284         $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FPU,$(@D)/.config)
285         $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_FLOATS,$(@D)/.config)
286 endef
287 endif
288
289 #
290 # SSP
291 #
292 ifeq ($(BR2_TOOLCHAIN_BUILDROOT_USE_SSP),y)
293 define UCLIBC_SSP_CONFIG
294         $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_SSP,$(@D)/.config)
295         $(call KCONFIG_ENABLE_OPT,UCLIBC_BUILD_SSP,$(@D)/.config)
296 endef
297 else
298 define UCLIBC_SSP_CONFIG
299         $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_SSP,$(@D)/.config)
300         $(call KCONFIG_DISABLE_OPT,UCLIBC_BUILD_SSP,$(@D)/.config)
301 endef
302 endif
303
304 #
305 # Threads
306 #
307 ifeq ($(BR2_PTHREADS_NONE),y)
308 define UCLIBC_THREAD_CONFIG
309         $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config)
310         $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LINUXTHREADS,$(@D)/.config)
311         $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config)
312 endef
313 else ifeq ($(BR2_PTHREADS),y)
314 define UCLIBC_THREAD_CONFIG
315         $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config)
316         $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_LINUXTHREADS,$(@D)/.config)
317         $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config)
318 endef
319 else ifeq ($(BR2_PTHREADS_NATIVE),y)
320 define UCLIBC_THREAD_CONFIG
321         $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS,$(@D)/.config)
322         $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LINUXTHREADS,$(@D)/.config)
323         $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_THREADS_NATIVE,$(@D)/.config)
324 endef
325 endif
326
327 #
328 # Thread debug
329 #
330
331 ifeq ($(BR2_PTHREAD_DEBUG),y)
332 UCLIBC_THREAD_DEBUG_CONFIG = $(call KCONFIG_ENABLE_OPT,PTHREADS_DEBUG_SUPPORT,$(@D)/.config)
333 else
334 UCLIBC_THREAD_DEBUG_CONFIG = $(call KCONFIG_DISABLE_OPT,PTHREADS_DEBUG_SUPPORT,$(@D)/.config)
335 endif
336
337 #
338 # Locale
339 #
340
341 ifeq ($(BR2_TOOLCHAIN_BUILDROOT_LOCALE),y)
342 define UCLIBC_LOCALE_CONFIG
343         $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_LOCALE,$(@D)/.config)
344         $(call KCONFIG_DISABLE_OPT,UCLIBC_BUILD_ALL_LOCALE,$(@D)/.config)
345         $(call KCONFIG_ENABLE_OPT,UCLIBC_BUILD_MINIMAL_LOCALE,$(@D)/.config)
346         $(call KCONFIG_SET_OPT,UCLIBC_BUILD_MINIMAL_LOCALES,"$(UCLIBC_LOCALES)",$(@D)/.config)
347         $(call KCONFIG_DISABLE_OPT,UCLIBC_PREGENERATED_LOCALE_DATA,$(@D)/.config)
348         $(call KCONFIG_DISABLE_OPT,DOWNLOAD_PREGENERATED_LOCALE_DATA,$(@D)/.config)
349         $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_XLOCALE,$(@D)/.config)
350         $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_GLIBC_DIGIT_GROUPING,$(@D)/.config)
351 endef
352 else
353 define UCLIBC_LOCALE_CONFIG
354         $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_LOCALE,$(@D)/.config)
355 endef
356 endif
357
358 #
359 # wchar
360 #
361
362 ifeq ($(BR2_TOOLCHAIN_BUILDROOT_WCHAR),y)
363 UCLIBC_WCHAR_CONFIG = $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_WCHAR,$(@D)/.config)
364 else
365 UCLIBC_WCHAR_CONFIG = $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_WCHAR,$(@D)/.config)
366 endif
367
368 #
369 # static/shared libs
370 #
371
372 ifeq ($(BR2_STATIC_LIBS),y)
373 UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_DISABLE_OPT,HAVE_SHARED,$(@D)/.config)
374 else
375 UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_ENABLE_OPT,HAVE_SHARED,$(@D)/.config)
376 endif
377
378 #
379 # Commands
380 #
381
382 UCLIBC_MAKE_FLAGS = \
383         ARCH="$(UCLIBC_TARGET_ARCH)" \
384         CROSS_COMPILE="$(TARGET_CROSS)" \
385         UCLIBC_EXTRA_CFLAGS="$(UCLIBC_EXTRA_CFLAGS) $(TARGET_ABI)" \
386         HOSTCC="$(HOSTCC)"
387
388 define UCLIBC_KCONFIG_FIXUP_CMDS
389         $(call KCONFIG_SET_OPT,CROSS_COMPILER_PREFIX,"$(TARGET_CROSS)",$(@D)/.config)
390         $(call KCONFIG_ENABLE_OPT,TARGET_$(UCLIBC_TARGET_ARCH),$(@D)/.config)
391         $(call KCONFIG_SET_OPT,TARGET_ARCH,"$(UCLIBC_TARGET_ARCH)",$(@D)/.config)
392         $(call KCONFIG_SET_OPT,KERNEL_HEADERS,"$(LINUX_HEADERS_DIR)/usr/include",$(@D)/.config)
393         $(call KCONFIG_SET_OPT,RUNTIME_PREFIX,"/",$(@D)/.config)
394         $(call KCONFIG_SET_OPT,DEVEL_PREFIX,"/usr",$(@D)/.config)
395         $(call KCONFIG_SET_OPT,SHARED_LIB_LOADER_PREFIX,"/lib",$(@D)/.config)
396         $(UCLIBC_MMU_CONFIG)
397         $(UCLIBC_BINFMT_CONFIG)
398         $(UCLIBC_ARC_TYPE_CONFIG)
399         $(UCLIBC_ARC_PAGE_SIZE_CONFIG)
400         $(UCLIBC_ARC_ATOMICS_CONFIG)
401         $(UCLIBC_ARM_ABI_CONFIG)
402         $(UCLIBC_ARM_BINFMT_FLAT)
403         $(UCLIBC_ARM_NO_CONTEXT_FUNCS)
404         $(UCLIBC_M68K_BINFMT_FLAT)
405         $(UCLIBC_MIPS_ABI_CONFIG)
406         $(UCLIBC_MIPS_NAN_CONFIG)
407         $(UCLIBC_SH_TYPE_CONFIG)
408         $(UCLIBC_SPARC_TYPE_CONFIG)
409         $(UCLIBC_POWERPC_TYPE_CONFIG)
410         $(UCLIBC_X86_TYPE_CONFIG)
411         $(UCLIBC_DEBUG_CONFIG)
412         $(UCLIBC_ENDIAN_CONFIG)
413         $(UCLIBC_LARGEFILE_CONFIG)
414         $(UCLIBC_IPV6_CONFIG)
415         $(UCLIBC_FLOAT_CONFIG)
416         $(UCLIBC_SSP_CONFIG)
417         $(UCLIBC_THREAD_CONFIG)
418         $(UCLIBC_THREAD_DEBUG_CONFIG)
419         $(UCLIBC_LOCALE_CONFIG)
420         $(UCLIBC_WCHAR_CONFIG)
421         $(UCLIBC_SHARED_LIBS_CONFIG)
422 endef
423
424 define UCLIBC_BUILD_CMDS
425         $(MAKE) -C $(@D) $(UCLIBC_MAKE_FLAGS) headers
426         $(MAKE) -C $(@D) $(UCLIBC_MAKE_FLAGS)
427         $(MAKE) -C $(@D)/utils \
428                 PREFIX=$(HOST_DIR) \
429                 HOSTCC="$(HOSTCC)" hostutils
430 endef
431
432 ifeq ($(BR2_UCLIBC_INSTALL_UTILS),y)
433 define UCLIBC_INSTALL_UTILS_TARGET
434         $(MAKE1) -C $(@D) \
435                 CC="$(TARGET_CC)" CPP="$(TARGET_CPP)" LD="$(TARGET_LD)" \
436                 ARCH="$(UCLIBC_TARGET_ARCH)" \
437                 PREFIX=$(TARGET_DIR) \
438                 utils install_utils
439 endef
440 endif
441
442 define UCLIBC_INSTALL_TARGET_CMDS
443         $(MAKE1) -C $(@D) \
444                 $(UCLIBC_MAKE_FLAGS) \
445                 PREFIX=$(TARGET_DIR) \
446                 DEVEL_PREFIX=/usr/ \
447                 RUNTIME_PREFIX=/ \
448                 install_runtime
449         $(UCLIBC_INSTALL_UTILS_TARGET)
450         $(UCLIBC_INSTALL_LDSO_SYMLINKS)
451 endef
452
453 # STATIC has no ld* tools, only getconf
454 ifeq ($(BR2_STATIC_LIBS),)
455 define UCLIBC_INSTALL_UTILS_STAGING
456         $(INSTALL) -D -m 0755 $(@D)/utils/ldd.host $(HOST_DIR)/bin/ldd
457         ln -sf ldd $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-ldd
458         $(INSTALL) -D -m 0755 $(@D)/utils/ldconfig.host $(HOST_DIR)/bin/ldconfig
459         ln -sf ldconfig $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-ldconfig
460 endef
461 endif
462
463 define UCLIBC_INSTALL_STAGING_CMDS
464         $(MAKE1) -C $(@D) \
465                 $(UCLIBC_MAKE_FLAGS) \
466                 PREFIX=$(STAGING_DIR) \
467                 DEVEL_PREFIX=/usr/ \
468                 RUNTIME_PREFIX=/ \
469                 install_runtime install_dev
470         $(UCLIBC_INSTALL_UTILS_STAGING)
471 endef
472
473 # Checks to give errors that the user can understand
474 # Must be before we call to kconfig-package
475 ifeq ($(BR2_PACKAGE_UCLIBC)$(BR_BUILDING),yy)
476 ifeq ($(call qstrip,$(BR2_UCLIBC_CONFIG)),)
477 $(error No uClibc configuration file specified, check your BR2_UCLIBC_CONFIG setting)
478 endif
479 endif
480
481 $(eval $(kconfig-package))