add mmu knob
[buildroot.git] / toolchain / uClibc / uclibc.mk
blob1b4c1b385e0e663325e287bd4b22729aa8244f02
1 #############################################################
3 # uClibc (the C library)
5 #############################################################
7 ifeq ($(BR2_TOOLCHAIN_SOURCE),y)
9 # specifying UCLIBC_CONFIG_FILE on the command-line overrides the .config
10 # setting.
11 ifndef UCLIBC_CONFIG_FILE
12 UCLIBC_CONFIG_FILE=$(subst ",, $(strip $(BR2_UCLIBC_CONFIG)))
13 #")
14 endif
16 ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
17 # Be aware that this changes daily....
18 UCLIBC_VER:=0.9.29
19 UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc
20 UCLIBC_SOURCE:=uClibc-$(strip $(subst ",, $(BR2_USE_UCLIBC_SNAPSHOT))).tar.bz2
21 #"))
22 UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots
23 UCLIBC_PATCH_DIR:=toolchain/uClibc/
24 else
25 # releases
26 ifeq ($(BR2_UCLIBC_VERSION_0_9_29),y)
27 UCLIBC_VER:=0.9.29
28 endif
29 ifeq ($(BR2_UCLIBC_VERSION_0_9_28_3),y)
30 UCLIBC_VER:=0.9.28.3
31 endif
32 ifeq ($(BR2_UCLIBC_VERSION_0_9_28),y)
33 UCLIBC_VER:=0.9.28
34 endif
35 UCLIBC_SITE:=http://www.uclibc.org/downloads
37 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_SOURCE),y)
38 UCLIBC_SITE:=$(VENDOR_SITE)
39 endif
41 UCLIBC_OFFICIAL_VERSION:=$(UCLIBC_VER)$(VENDOR_SUFFIX)$(VENDOR_UCLIBC_RELEASE)
43 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
44 UCLIBC_PATCH_DIR:=toolchain/uClibc/
45 else
46 UCLIBC_PATCH_DIR:=$(VENDOR_PATCH_DIR)/uClibc-$(UCLIBC_OFFICIAL_VERSION)
47 endif
49 UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc-$(UCLIBC_OFFICIAL_VERSION)
50 UCLIBC_SOURCE:=uClibc-$(UCLIBC_OFFICIAL_VERSION).tar.bz2
51 endif
53 UCLIBC_CAT:=$(BZCAT)
55 UCLIBC_TARGET_ARCH:=$(shell $(SHELL) -c "echo $(ARCH) | sed \
56 -e 's/-.*//' \
57 -e 's/i.86/i386/' \
58 -e 's/sparc.*/sparc/' \
59 -e 's/arm.*/arm/g' \
60 -e 's/bfin.*/bfin/g' \
61 -e 's/m68k.*/m68k/' \
62 -e 's/ppc/powerpc/g' \
63 -e 's/v850.*/v850/g' \
64 -e 's/sh[234].*/sh/' \
65 -e 's/mips.*/mips/' \
66 -e 's/mipsel.*/mips/' \
67 -e 's/cris.*/cris/' \
68 -e 's/nios2.*/nios2/' \
70 # just handle the ones that can be big or little
71 UCLIBC_TARGET_ENDIAN:=$(shell $(SHELL) -c "echo $(ARCH) | sed \
72 -e 's/armeb/BIG/' \
73 -e 's/arm/LITTLE/' \
74 -e 's/mipsel/LITTLE/' \
75 -e 's/mips/BIG/' \
76 -e 's/sh[234].*eb/BIG/' \
77 -e 's/sh[234]/LITTLE/' \
78 -e 's/sparc.*/BIG/' \
81 ifneq ($(UCLIBC_TARGET_ENDIAN),LITTLE)
82 ifneq ($(UCLIBC_TARGET_ENDIAN),BIG)
83 UCLIBC_TARGET_ENDIAN:=
84 endif
85 endif
86 ifeq ($(UCLIBC_TARGET_ENDIAN),LITTLE)
87 UCLIBC_NOT_TARGET_ENDIAN:=BIG
88 else
89 UCLIBC_NOT_TARGET_ENDIAN:=LITTLE
90 endif
92 UCLIBC_ARM_TYPE:=CONFIG_$(strip $(subst ",, $(BR2_ARM_TYPE)))
93 #"))
94 UCLIBC_SPARC_TYPE:=CONFIG_SPARC_$(strip $(subst ",, $(BR2_SPARC_TYPE)))
95 #"))
97 ifeq ($(BR2_GCC_USE_INTERWORKING),y)
98 __UCLIBC_EXTRA_TARGET_CFLAGS+=-mthumb-interwork
99 endif
101 $(DL_DIR)/$(UCLIBC_SOURCE):
102 $(WGET) -P $(DL_DIR) $(UCLIBC_SITE)/$(UCLIBC_SOURCE)
104 ifneq ($(BR2_ENABLE_LOCALE),)
105 UCLIBC_SITE_LOCALE:=http://www.uclibc.org/downloads
106 UCLIBC_SOURCE_LOCALE:=uClibc-locale-030818.tgz
108 $(DL_DIR)/$(UCLIBC_SOURCE_LOCALE):
109 $(WGET) -P $(DL_DIR) $(UCLIBC_SITE_LOCALE)/$(UCLIBC_SOURCE_LOCALE)
111 UCLIBC_LOCALE_DATA:=$(DL_DIR)/$(UCLIBC_SOURCE_LOCALE)
112 else
113 UCLIBC_LOCALE_DATA=
114 endif
116 $(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE) $(UCLIBC_LOCALE_DATA)
117 mkdir -p $(TOOL_BUILD_DIR)
118 rm -rf $(UCLIBC_DIR)
119 $(UCLIBC_CAT) $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
120 ifneq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y)
121 toolchain/patch-kernel.sh $(UCLIBC_DIR) $(UCLIBC_PATCH_DIR) uClibc-$(UCLIBC_OFFICIAL_VERSION)-\*.patch
122 else
123 toolchain/patch-kernel.sh $(UCLIBC_DIR) $(UCLIBC_PATCH_DIR) uClibc.\*.patch
124 endif
125 ifneq ($(BR2_ENABLE_LOCALE),)
126 cp -dpf $(DL_DIR)/$(UCLIBC_SOURCE_LOCALE) $(UCLIBC_DIR)/extra/locale/
127 endif
128 touch $@
130 UCLIBC_CONFIGURED_PREREQ:=$(wildcard $(BR2_DEPENDS_DIR)/br2/arch.h*) \
131 $(wildcard $(BR2_DEPENDS_DIR)/br2/endian.h*) \
132 $(wildcard $(BR2_DEPENDS_DIR)/br2/$(UCLIBC_TARGET_ARCH).h*) \
133 $(wildcard $(BR2_DEPENDS_DIR)/br2/pthreads.h*) \
134 $(wildcard $(BR2_DEPENDS_DIR)/br2/$(UCLIBC_TARGET_ARCH)/*.h) \
135 $(wildcard $(BR2_DEPENDS_DIR)/br2/pthread*/*.h) \
136 $(wildcard $(BR2_DEPENDS_DIR)/br2/enable/*locale*.h) \
137 $(wildcard $(BR2_DEPENDS_DIR)/br2/enable/*locale*.h) \
138 $(wildcard $(BR2_DEPENDS_DIR)/br2/use/*wchar*.h) \
139 $(wildcard $(BR2_DEPENDS_DIR)/br2/use/*updates*.h) \
140 $(wildcard $(BR2_DEPENDS_DIR)/br2/uclibc/*.h) \
141 $(wildcard $(BR2_DEPENDS_DIR)/br2/uclibc/*/*.h)
144 # Some targets may wish to provide their own UCLIBC_CONFIG_FILE...
145 $(UCLIBC_DIR)/.oldconfig: $(UCLIBC_DIR)/.unpacked $(UCLIBC_CONFIG_FILE) $(UCLIBC_CONFIGURED_PREREQ)
146 ifeq ($(BR2_USE_UPDATES),y)
147 (cd $(@D) && $(SVN_UP))
148 endif
149 cp -f $(UCLIBC_CONFIG_FILE) $(UCLIBC_DIR)/.oldconfig
150 $(SED) 's,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX="$(TARGET_CROSS)",g' \
151 -e 's,# TARGET_$(UCLIBC_TARGET_ARCH) is not set,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \
152 -e 's,^TARGET_ARCH=".*",TARGET_ARCH=\"$(UCLIBC_TARGET_ARCH)\",g' \
153 -e 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_HEADERS_DIR)\",g' \
154 -e 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"$(LINUX_HEADERS_DIR)/include\",g' \
155 -e 's,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX=\"/\",g' \
156 -e 's,^DEVEL_PREFIX=.*,DEVEL_PREFIX=\"/usr/\",g' \
157 -e 's,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX=\"/lib\",g' \
158 $(UCLIBC_DIR)/.oldconfig
159 ifeq ($(UCLIBC_TARGET_ARCH),arm)
160 $(SED) 's/^\(CONFIG_[^_]*[_]*ARM[^=]*\)=.*/# \1 is not set/g' \
161 $(UCLIBC_DIR)/.oldconfig
162 $(SED) 's/^.*$(UCLIBC_ARM_TYPE).*/$(UCLIBC_ARM_TYPE)=y/g' $(UCLIBC_DIR)/.oldconfig
163 $(SED) '/CONFIG_ARM_.ABI/d' $(UCLIBC_DIR)/.oldconfig
164 ifeq ($(BR2_ARM_EABI),y)
165 /bin/echo "# CONFIG_ARM_OABI is not set" >> $(UCLIBC_DIR)/.oldconfig
166 /bin/echo "CONFIG_ARM_EABI=y" >> $(UCLIBC_DIR)/.oldconfig
167 endif
168 ifeq ($(BR2_ARM_OABI),y)
169 /bin/echo "CONFIG_ARM_OABI=y" >> $(UCLIBC_DIR)/.oldconfig
170 /bin/echo "# CONFIG_ARM_EABI is not set" >> $(UCLIBC_DIR)/.oldconfig
171 endif
172 endif
173 ifeq ($(UCLIBC_TARGET_ARCH),mips)
174 $(SED) '/CONFIG_MIPS_[NO].._ABI/d' $(UCLIBC_DIR)/.oldconfig
175 $(SED) '/CONFIG_MIPS_ISA_.*/d' $(UCLIBC_DIR)/.oldconfig
176 (/bin/echo "# CONFIG_MIPS_O32_ABI is not set"; \
177 /bin/echo "# CONFIG_MIPS_N32_ABI is not set"; \
178 /bin/echo "# CONFIG_MIPS_N64_ABI is not set"; \
179 /bin/echo "# CONFIG_MIPS_ISA_1 is not set"; \
180 /bin/echo "# CONFIG_MIPS_ISA_2 is not set"; \
181 /bin/echo "# CONFIG_MIPS_ISA_3 is not set"; \
182 /bin/echo "# CONFIG_MIPS_ISA_4 is not set"; \
183 /bin/echo "# CONFIG_MIPS_ISA_MIPS32 is not set"; \
184 /bin/echo "# CONFIG_MIPS_ISA_MIPS64 is not set"; \
185 ) >> $(UCLIBC_DIR)/.oldconfig
186 ifeq ($(BR2_MIPS_OABI32),y)
187 $(SED) 's/.*\(CONFIG_MIPS_O32_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
188 endif
189 ifeq ($(findstring y,$(BR2_MIPS_EABI)$(BR2_MIPS_ABI32)),y)
190 $(SED) 's/.*\(CONFIG_MIPS_N32_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
191 endif
192 ifeq ($(findstring y,$(BR2_MIPS_ABI64)$(BR2_MIPS_OABI64)),y)
193 $(SED) 's/.*\(CONFIG_MIPS_N64_ABI\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
194 endif
195 ifeq ($(BR2_mips_1),y)
196 $(SED) 's/.*\(CONFIG_MIPS_ISA_1\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
197 endif
198 ifeq ($(BR2_mips_2),y)
199 $(SED) 's/.*\(CONFIG_MIPS_ISA_2\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
200 endif
201 ifeq ($(BR2_mips_3),y)
202 $(SED) 's/.*\(CONFIG_MIPS_ISA_3\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
203 endif
204 ifeq ($(BR2_mips_4),y)
205 $(SED) 's/.*\(CONFIG_MIPS_ISA_4\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
206 endif
207 ifeq ($(BR2_mips_32),y)
208 $(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS32\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
209 endif
210 ifeq ($(BR2_mips_32r2),y)
211 $(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS32\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
212 endif
213 ifeq ($(BR2_mips_64),y)
214 $(SED) 's/.*\(CONFIG_MIPS_ISA_MIPS64\).*/\1=y/' $(UCLIBC_DIR)/.oldconfig
215 endif
216 endif
217 ifeq ($(UCLIBC_TARGET_ARCH),nios2)
218 $(SED) '/UCLIBC_FORMAT_/d' $(UCLIBC_DIR)/.oldconfig
219 /bin/echo "# UCLIBC_FORMAT_FDPIC_ELF is not set" >> $(UCLIBC_DIR)/.oldconfig
220 /bin/echo "UCLIBC_FORMAT_FLAT=y" >> $(UCLIBC_DIR)/.oldconfig
221 /bin/echo "# UCLIBC_FORMAT_FLAT_SEP_DATA is not set" >> $(UCLIBC_DIR)/.oldconfig
222 /bin/echo "# UCLIBC_FORMAT_SHARED_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
223 endif
224 ifeq ($(UCLIBC_TARGET_ARCH),sh)
225 /bin/echo "# CONFIG_SH2A is not set" >> $(UCLIBC_DIR)/.oldconfig
226 /bin/echo "# CONFIG_SH2 is not set" >> $(UCLIBC_DIR)/.oldconfig
227 /bin/echo "# CONFIG_SH3 is not set" >> $(UCLIBC_DIR)/.oldconfig
228 /bin/echo "# CONFIG_SH4 is not set" >> $(UCLIBC_DIR)/.oldconfig
229 ifeq ($(BR2_sh2a_nofpueb),y)
230 $(SED) '/UCLIBC_FORMAT_/d' $(UCLIBC_DIR)/.oldconfig
231 $(SED) 's,# CONFIG_SH2A is not set,CONFIG_SH2A=y,g' $(UCLIBC_DIR)/.oldconfig
232 /bin/echo "# UCLIBC_FORMAT_FDPIC_ELF is not set" >> $(UCLIBC_DIR)/.oldconfig
233 /bin/echo "# UCLIBC_FORMAT_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
234 /bin/echo "# UCLIBC_FORMAT_FLAT_SEP_DATA is not set" >> $(UCLIBC_DIR)/.oldconfig
235 /bin/echo "# UCLIBC_FORMAT_SHARED_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
236 endif
237 ifeq ($(BR2_sh2eb),y)
238 $(SED) '/UCLIBC_FORMAT_/d' $(UCLIBC_DIR)/.oldconfig
239 $(SED) 's,# CONFIG_SH2 is not set,CONFIG_SH2=y,g' $(UCLIBC_DIR)/.oldconfig
240 /bin/echo "# UCLIBC_FORMAT_FDPIC_ELF is not set" >> $(UCLIBC_DIR)/.oldconfig
241 /bin/echo "# UCLIBC_FORMAT_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
242 /bin/echo "# UCLIBC_FORMAT_FLAT_SEP_DATA is not set" >> $(UCLIBC_DIR)/.oldconfig
243 /bin/echo "# UCLIBC_FORMAT_SHARED_FLAT is not set" >> $(UCLIBC_DIR)/.oldconfig
244 endif
245 ifeq ($(BR2_sh3eb),y)
246 $(SED) 's,# CONFIG_SH3 is not set,CONFIG_SH3=y,g' $(UCLIBC_DIR)/.oldconfig
247 endif
248 ifeq ($(BR2_sh3),y)
249 $(SED) 's,# CONFIG_SH3 is not set,CONFIG_SH3=y,g' $(UCLIBC_DIR)/.oldconfig
250 endif
251 ifeq ($(BR2_sh4eb),y)
252 $(SED) 's,# CONFIG_SH4 is not set,CONFIG_SH4=y,g' $(UCLIBC_DIR)/.oldconfig
253 endif
254 ifeq ($(BR2_sh4),y)
255 $(SED) 's,# CONFIG_SH4 is not set,CONFIG_SH4=y,g' $(UCLIBC_DIR)/.oldconfig
256 endif
257 endif
258 ifeq ($(UCLIBC_TARGET_ARCH),sparc)
259 $(SED) 's/^\(CONFIG_[^_]*[_]*SPARC[^=]*\)=.*/# \1 is not set/g' \
260 $(UCLIBC_DIR)/.oldconfig
261 for i in V7 V8 V9 V9B; do echo "# CONFIG_SPARC_$$i is not set"; done \
262 >> $(UCLIBC_DIR)/.oldconfig
263 $(SED) 's/^.*$(UCLIBC_SPARC_TYPE).*/$(UCLIBC_SPARC_TYPE)=y/g' $(UCLIBC_DIR)/.oldconfig
264 endif
265 ifeq ($(UCLIBC_TARGET_ARCH),bfin)
266 $(SED) 's/^\(UCLIBC_FORMAT_[^[:space:]]*\).*/# \1 is not set/g' $(UCLIBC_DIR)/.oldconfig
267 $(SED) '/UCLIBC_FORMAT_FDPIC_ELF/d' $(UCLIBC_DIR)/.oldconfig
268 echo 'UCLIBC_FORMAT_FDPIC_ELF=y' >> $(UCLIBC_DIR)/.oldconfig
269 endif
270 ifeq ($(BR2_cris),y)
271 $(SED) '/CONFIG_CRIS/d' $(UCLIBC_DIR)/.oldconfig
272 echo '# CONFIG_CRIS is not set' >> $(UCLIBC_DIR)/.oldconfig
273 echo '# CONFIG_CRISV32 is not set' >> $(UCLIBC_DIR)/.oldconfig
274 ifeq ($(BR2_cris_cris32),y)
275 $(SED) 's,^TARGET_ARCH=".*",TARGET_ARCH=\"crisv32\",g' \
276 -e 's,.*\(CONFIG_CRIS\) .*,\1=y,' $(UCLIBC_DIR)/.oldconfig
277 endif
278 ifeq ($(BR2_cris_cris),y)
279 $(SED) 's,^TARGET_ARCH=".*",TARGET_ARCH=\"cris\",g' \
280 -e 's,.*\(CONFIG_CRISV32\) .*,\1=y,' $(UCLIBC_DIR)/.oldconfig
281 endif
282 endif
283 ifneq ($(UCLIBC_TARGET_ENDIAN),)
284 # The above doesn't work for me, so redo
285 $(SED) 's/.*\(ARCH_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN\).*/# \1 is not set/g' \
286 -e 's/.*\(ARCH_WANTS_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN\).*/# \1 is not set/g' \
287 -e 's/.*\(ARCH_$(UCLIBC_TARGET_ENDIAN)_ENDIAN\).*/\1=y/g' \
288 -e 's/.*\(ARCH_WANTS_$(UCLIBC_TARGET_ENDIAN)_ENDIAN\).*/\1=y/g' \
289 $(UCLIBC_DIR)/.oldconfig
290 endif
291 $(SED) '/ARCH_USE_MMU/d' $(UCLIBC_DIR)/.oldconfig
292 ifeq ($(BR2_USE_MMU),y)
293 echo 'ARCH_USE_MMU=y' >> $(UCLIBC_DIR)/.oldconfig
294 endif
295 ifeq ($(BR2_ENABLE_SHARED),y)
296 $(SED) 's/.*\(HAVE_SHARED\).*/\1=y/g' $(UCLIBC_DIR)/.oldconfig
297 else
298 $(SED) 's/.*\(HAVE_SHARED\).*/# \1 is not set/g' $(UCLIBC_DIR)/.oldconfig
299 endif
300 ifeq ($(BR2_LARGEFILE),y)
301 $(SED) 's,.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=y,g' $(UCLIBC_DIR)/.oldconfig
302 else
303 $(SED) 's,.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=n,g' $(UCLIBC_DIR)/.oldconfig
304 $(SED) '/.*UCLIBC_HAS_FOPEN_LARGEFILE_MODE.*/d' $(UCLIBC_DIR)/.oldconfig
305 echo "# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set" >> $(UCLIBC_DIR)/.oldconfig
306 endif
307 $(SED) '/UCLIBC_HAS_IPV6/d' $(UCLIBC_DIR)/.oldconfig
308 echo "# UCLIBC_HAS_IPV6 is not set" >> $(UCLIBC_DIR)/.oldconfig
309 ifeq ($(BR2_INET_IPV6),y)
310 $(SED) 's,^.*UCLIBC_HAS_IPV6.*,UCLIBC_HAS_IPV6=y,g' $(UCLIBC_DIR)/.oldconfig
311 else
312 $(SED) 's,^.*UCLIBC_HAS_IPV6.*,UCLIBC_HAS_IPV6=n,g' $(UCLIBC_DIR)/.oldconfig
313 endif
314 $(SED) '/UCLIBC_HAS_RPC/d' $(UCLIBC_DIR)/.oldconfig
315 echo "# UCLIBC_HAS_RPC is not set" >> $(UCLIBC_DIR)/.oldconfig
316 ifeq ($(BR2_INET_RPC),y)
317 $(SED) 's,^.*UCLIBC_HAS_RPC.*,UCLIBC_HAS_RPC=y,g' \
318 -e 's,^.*UCLIBC_HAS_FULL_RPC.*,UCLIBC_HAS_FULL_RPC=y,g' \
319 -e 's,^.*UCLIBC_HAS_REENTRANT_RPC.*,UCLIBC_HAS_REENTRANT_RPC=y,g' \
320 $(UCLIBC_DIR)/.oldconfig
321 else
322 $(SED) 's,^.*UCLIBC_HAS_RPC.*,UCLIBC_HAS_RPC=n,g' \
323 -e 's,^.*UCLIBC_HAS_FULL_RPC.*,UCLIBC_HAS_FULL_RPC=n,g' \
324 -e 's,^.*UCLIBC_HAS_REENTRANT_RPC.*,UCLIBC_HAS_REENTRANT_RPC=n,g' \
325 $(UCLIBC_DIR)/.oldconfig
326 endif
327 ifeq ($(BR2_SOFT_FLOAT),y)
328 $(SED) 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=n,g' \
329 -e 's,^[^_]*HAS_FPU.*,HAS_FPU=n,g' \
330 -e 's,.*UCLIBC_HAS_FLOATS.*,UCLIBC_HAS_FLOATS=y,g' \
331 -e 's,.*DO_C99_MATH.*,DO_C99_MATH=y,g' \
332 $(UCLIBC_DIR)/.oldconfig
333 #$(SED) 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=n\nHAS_FPU=n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,g' $(UCLIBC_DIR)/.oldconfig
334 else
335 $(SED) '/UCLIBC_HAS_FLOATS/d' \
336 -e 's,.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=y\nHAS_FPU=y\nUCLIBC_HAS_FLOATS=y\n,g' \
337 $(UCLIBC_DIR)/.oldconfig
338 endif
339 $(SED) '/UCLIBC_HAS_THREADS/d' $(UCLIBC_DIR)/.oldconfig
340 $(SED) '/LINUXTHREADS/d' $(UCLIBC_DIR)/.oldconfig
341 $(SED) '/LINUXTHREADS_OLD/d' $(UCLIBC_DIR)/.oldconfig
342 $(SED) '/PTHREADS_DEBUG_SUPPORT/d' $(UCLIBC_DIR)/.oldconfig
343 $(SED) '/UCLIBC_HAS_THREADS_NATIVE/d' $(UCLIBC_DIR)/.oldconfig
344 ifeq ($(BR2_PTHREADS_NONE),y)
345 echo "# UCLIBC_HAS_THREADS is not set" >> $(UCLIBC_DIR)/.oldconfig
346 else
347 echo "UCLIBC_HAS_THREADS=y" >> $(UCLIBC_DIR)/.oldconfig
348 endif
349 ifeq ($(BR2_PTHREADS),y)
350 echo "LINUXTHREADS=y" >> $(UCLIBC_DIR)/.oldconfig
351 else
352 echo "# LINUXTHREADS is not set" >> $(UCLIBC_DIR)/.oldconfig
353 endif
354 ifeq ($(BR2_PTHREADS_OLD),y)
355 echo "LINUXTHREADS_OLD=y" >> $(UCLIBC_DIR)/.oldconfig
356 else
357 echo "# LINUXTHREADS_OLD is not set" >> $(UCLIBC_DIR)/.oldconfig
358 endif
359 ifeq ($(BR2_PTHREADS_NATIVE),y)
360 echo "UCLIBC_HAS_THREADS_NATIVE=y" >> $(UCLIBC_DIR)/.oldconfig
361 else
362 echo "# UCLIBC_HAS_THREADS_NATIVE is not set" >> $(UCLIBC_DIR)/.oldconfig
363 endif
364 ifeq ($(BR2_PTHREAD_DEBUG),y)
365 echo "PTHREADS_DEBUG_SUPPORT=y" >> $(UCLIBC_DIR)/.oldconfig
366 else
367 echo "# PTHREADS_DEBUG_SUPPORT is not set" >> $(UCLIBC_DIR)/.oldconfig
368 endif
369 ifeq ($(BR2_ENABLE_LOCALE),y)
370 $(SED) 's,^.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=y\nUCLIBC_PREGENERATED_LOCALE_DATA=y\nUCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA=y\nUCLIBC_HAS_XLOCALE=y\nUCLIBC_HAS_GLIBC_DIGIT_GROUPING=n\n,g' $(UCLIBC_DIR)/.oldconfig
371 $(SED) 's,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g' $(UCLIBC_DIR)/.oldconfig
372 else
373 $(SED) 's,^.*UCLIBC_HAS_LOCALE.*,UCLIBC_HAS_LOCALE=n,g' $(UCLIBC_DIR)/.oldconfig
374 $(SED) 's,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=n,g' $(UCLIBC_DIR)/.oldconfig
375 endif
376 ifeq ($(BR2_USE_WCHAR),y)
377 $(SED) 's,^.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g' $(UCLIBC_DIR)/.oldconfig
378 else
379 $(SED) 's,^.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=n,g' $(UCLIBC_DIR)/.oldconfig
380 endif
381 ifeq ($(BR2_UCLIBC_PROGRAM_INVOCATION),y)
382 $(SED) 's,^.*UCLIBC_HAS_PROGRAM_INVOCATION_NAME.*,UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y,g' $(UCLIBC_DIR)/.oldconfig
383 else
384 $(SED) 's,^.*UCLIBC_HAS_PROGRAM_INVOCATION_NAME.*,UCLIBC_HAS_PROGRAM_INVOCATION_NAME=n,g' $(UCLIBC_DIR)/.oldconfig
385 endif
386 ifeq ("$(KERNEL_ARCH)","i386")
387 $(SED) '/CONFIG_GENERIC_386/d' \
388 -e '/CONFIG_[0-9]86/d' \
389 -e '/CONFIG_[0-9]86MMX/d' \
390 -e '/CONFIG_PENTIUM.*/d' \
391 -e '/CONFIG_K[0-9]/d' \
392 -e '/CONFIG_ELAN/d' \
393 -e '/CONFIG_CRUSOE/d' \
394 -e '/CONFIG_WINCHIP*/d' \
395 -e '/CONFIG_CYRIX*/d' \
396 -e '/CONFIG_NEHEMIAH/d' $(UCLIBC_DIR)/.oldconfig
397 /bin/echo "# CONFIG_GENERIC_386 is not set" >> $(UCLIBC_DIR)/.oldconfig
398 /bin/echo "# CONFIG_386 is not set" >> $(UCLIBC_DIR)/.oldconfig
399 /bin/echo "# CONFIG_486 is not set" >> $(UCLIBC_DIR)/.oldconfig
400 /bin/echo "# CONFIG_586 is not set" >> $(UCLIBC_DIR)/.oldconfig
401 /bin/echo "# CONFIG_586MMX is not set" >> $(UCLIBC_DIR)/.oldconfig
402 /bin/echo "# CONFIG_686 is not set" >> $(UCLIBC_DIR)/.oldconfig
403 /bin/echo "# CONFIG_PENTIUMII is not set" >> $(UCLIBC_DIR)/.oldconfig
404 /bin/echo "# CONFIG_PENTIUMIII is not set" >> $(UCLIBC_DIR)/.oldconfig
405 /bin/echo "# CONFIG_PENTIUM4 is not set" >> $(UCLIBC_DIR)/.oldconfig
406 /bin/echo "# CONFIG_K6 is not set" >> $(UCLIBC_DIR)/.oldconfig
407 /bin/echo "# CONFIG_K7 is not set" >> $(UCLIBC_DIR)/.oldconfig
408 /bin/echo "# CONFIG_ELAN is not set" >> $(UCLIBC_DIR)/.oldconfig
409 /bin/echo "# CONFIG_CRUSOE is not set" >> $(UCLIBC_DIR)/.oldconfig
410 /bin/echo "# CONFIG_WINCHIPC6 is not set" >> $(UCLIBC_DIR)/.oldconfig
411 /bin/echo "# CONFIG_WINCHIP2 is not set" >> $(UCLIBC_DIR)/.oldconfig
412 /bin/echo "# CONFIG_CYRIXIII is not set" >> $(UCLIBC_DIR)/.oldconfig
413 /bin/echo "# CONFIG_NEHEMIAH is not set" >> $(UCLIBC_DIR)/.oldconfig
414 ifeq ($(BR2_x86_i386),y)
415 $(SED) 's,# CONFIG_386 is not set,CONFIG_386=y,g' $(UCLIBC_DIR)/.oldconfig
416 endif
417 ifeq ($(BR2_x86_i486),y)
418 $(SED) 's,# CONFIG_486 is not set,CONFIG_486=y,g' $(UCLIBC_DIR)/.oldconfig
419 endif
420 ifeq ($(BR2_x86_i586),y)
421 $(SED) 's,# CONFIG_586 is not set,CONFIG_586=y,g' $(UCLIBC_DIR)/.oldconfig
422 endif
423 ifeq ($(BR2_x86_i686),y)
424 $(SED) 's,# CONFIG_686 is not set,CONFIG_686=y,g' $(UCLIBC_DIR)/.oldconfig
425 endif
426 endif
427 $(SED) '/CONFIG_DOSTRIP/d' -e '/DOSTRIP/d' $(UCLIBC_DIR)/.oldconfig
428 /bin/echo "# DOSTRIP is not set" >> $(UCLIBC_DIR)/.oldconfig
429 ifneq ($(BR2_STRIP_none),y)
430 $(SED) 's/.*DOSTRIP.*/DOSTRIP=y/' $(UCLIBC_DIR)/.oldconfig
431 endif
432 ifeq ($(findstring y,$(BR2_GCC_CROSS_CXX)$(BR2_GCC_SHARED_LIBGCC)),y)
433 $(SED) 's/.*CONFIG_UCLIBC_CTOR_DTOR.*/CONFIG_UCLIBC_CTOR_DTOR=y/' $(UCLIBC_DIR)/.oldconfig
434 endif
435 $(SED) '/HAVE_NO_SSP/d' -e '/UCLIBC_HAS_SSP/d' \
436 -e '/UCLIBC_HAS_SSP_COMPAT/d' -e '/SSP_QUICK_CANARY/d' \
437 -e '/PROPOLICE_BLOCK_/d' -e '/UCLIBC_BUILD_SSP/d' $(UCLIBC_DIR)/.oldconfig
438 ifeq ($(BR2_ENABLE_SSP),y)
439 /bin/echo "# HAVE_NO_SSP is not set" >> $(UCLIBC_DIR)/.oldconfig
440 /bin/echo "UCLIBC_HAS_SSP=y" >> $(UCLIBC_DIR)/.oldconfig
441 /bin/echo "# UCLIBC_HAS_SSP_COMPAT is not set" >> $(UCLIBC_DIR)/.oldconfig
442 /bin/echo "# SSP_QUICK_CANARY is not set" >> $(UCLIBC_DIR)/.oldconfig
443 /bin/echo "PROPOLICE_BLOCK_ABRT=y" >> $(UCLIBC_DIR)/.oldconfig
444 /bin/echo "UCLIBC_BUILD_SSP=y" >> $(UCLIBC_DIR)/.oldconfig
445 else
446 /bin/echo "HAVE_NO_SSP=y" >> $(UCLIBC_DIR)/.oldconfig
447 /bin/echo "# UCLIBC_HAS_SSP is not set" >> $(UCLIBC_DIR)/.oldconfig
448 endif
451 $(UCLIBC_DIR)/.config: $(UCLIBC_DIR)/.oldconfig
452 cp -f $(UCLIBC_DIR)/.oldconfig $(UCLIBC_DIR)/.config
453 mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/usr/include
454 mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/usr/lib
455 mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/lib
456 $(MAKE1) -C $(UCLIBC_DIR) \
457 PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \
458 DEVEL_PREFIX=/usr/ \
459 RUNTIME_PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \
460 HOSTCC="$(HOSTCC)" \
461 BUILD_CFLAGS="$(HOST_CFLAGS)" \
462 BUILD_LDFLAGS="$(HOST_LDFLAGS)" \
463 oldconfig
464 touch $@
466 $(UCLIBC_DIR)/.configured: $(LINUX_HEADERS_DIR)/.configured $(UCLIBC_DIR)/.config
467 ifeq ($(findstring y,$(BR2_UCLIBC_VERSION_0_9_27)$(BR2_UCLIBC_VERSION_0_9_28_3)$(BR2_UCLIBC_VERSION_0_9_29)),y)
468 # older uClibc without the signum.h generation fix
469 set -x && $(MAKE1) -C $(UCLIBC_DIR) \
470 PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \
471 DEVEL_PREFIX=/usr/ \
472 RUNTIME_PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \
473 HOSTCC="$(HOSTCC)" \
474 BUILD_CFLAGS="$(HOST_CFLAGS)" \
475 BUILD_LDFLAGS="$(HOST_LDFLAGS)" \
476 UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
477 UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS) $(__UCLIBC_EXTRA_TARGET_CFLAGS)" \
478 pregen install_dev
479 else
480 set -x && $(MAKE1) -C $(UCLIBC_DIR) \
481 PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \
482 DEVEL_PREFIX=/usr/ \
483 RUNTIME_PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \
484 HOSTCC="$(HOSTCC)" \
485 BUILD_CFLAGS="$(HOST_CFLAGS)" \
486 BUILD_LDFLAGS="$(HOST_LDFLAGS)" \
487 UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
488 UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS) $(__UCLIBC_EXTRA_TARGET_CFLAGS)" \
489 install_headers
490 endif
491 # Install the kernel headers to the first stage gcc include dir
492 ifeq ($(LINUX_HEADERS_IS_KERNEL),y)
493 if [ ! -f $(TOOL_BUILD_DIR)/uClibc_dev/usr/include/linux/version.h ]; then \
494 cp -pLR $(LINUX_HEADERS_DIR)/include/* \
495 $(TOOL_BUILD_DIR)/uClibc_dev/usr/include/; \
497 else
498 if [ ! -f $(STAGING_DIR)/usr/include/linux/version.h ]; then \
499 cp -pLR $(LINUX_HEADERS_DIR)/include/asm \
500 $(TOOL_BUILD_DIR)/uClibc_dev/usr/include/; \
501 cp -pLR $(LINUX_HEADERS_DIR)/include/linux \
502 $(TOOL_BUILD_DIR)/uClibc_dev/usr/include/; \
503 if [ -d $(LINUX_HEADERS_DIR)/include/asm-generic ]; then \
504 cp -pLR $(LINUX_HEADERS_DIR)/include/asm-generic \
505 $(TOOL_BUILD_DIR)/uClibc_dev/usr/include/; \
506 fi; \
508 endif
509 touch $@
511 $(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(gcc_initial) $(LIBFLOAT_TARGET)
512 $(MAKE) -C $(UCLIBC_DIR) \
513 PREFIX= \
514 DEVEL_PREFIX=/ \
515 RUNTIME_PREFIX=/ \
516 HOSTCC="$(HOSTCC)" \
517 BUILD_CFLAGS="$(HOST_CFLAGS)" \
518 BUILD_LDFLAGS="$(HOST_LDFLAGS)" \
519 UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
520 UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS) $(__UCLIBC_EXTRA_TARGET_CFLAGS)" \
522 touch -c $@
524 uclibc-menuconfig: host-sed $(UCLIBC_DIR)/.config
525 $(MAKE1) -C $(UCLIBC_DIR) \
526 PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \
527 DEVEL_PREFIX=/usr/ \
528 RUNTIME_PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \
529 HOSTCC="$(HOSTCC)" \
530 BUILD_CFLAGS="$(HOST_CFLAGS)" \
531 BUILD_LDFLAGS="$(HOST_LDFLAGS)" \
532 menuconfig && \
533 touch -c $(UCLIBC_DIR)/.config
536 $(STAGING_DIR)/usr/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a
537 ifneq ($(BR2_TOOLCHAIN_SYSROOT),y)
538 $(MAKE1) -C $(UCLIBC_DIR) \
539 PREFIX= \
540 DEVEL_PREFIX=$(STAGING_DIR)/ \
541 RUNTIME_PREFIX=$(STAGING_DIR)/ \
542 install_runtime install_dev
543 else
544 $(MAKE1) -C $(UCLIBC_DIR) \
545 PREFIX=$(STAGING_DIR) \
546 DEVEL_PREFIX=/usr/ \
547 RUNTIME_PREFIX=/ \
548 HOSTCC="$(HOSTCC)" \
549 BUILD_CFLAGS="$(HOST_CFLAGS)" \
550 BUILD_LDFLAGS="$(HOST_LDFLAGS)" \
551 UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
552 UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS) $(__UCLIBC_EXTRA_TARGET_CFLAGS)" \
553 install_runtime install_dev
554 endif
555 # Install the kernel headers to the staging dir if necessary
556 ifeq ($(LINUX_HEADERS_IS_KERNEL),y)
557 if [ ! -f $(STAGING_DIR)/usr/include/linux/version.h ]; then \
558 cp -pLR $(LINUX_HEADERS_DIR)/include/* \
559 $(STAGING_DIR)/usr/include/; \
561 else
562 if [ ! -f $(STAGING_DIR)/usr/include/linux/version.h ]; then \
563 cp -pLR $(LINUX_HEADERS_DIR)/include/asm \
564 $(STAGING_DIR)/usr/include/; \
565 cp -pLR $(LINUX_HEADERS_DIR)/include/linux \
566 $(STAGING_DIR)/usr/include/; \
567 if [ -d $(LINUX_HEADERS_DIR)/include/asm-generic ]; then \
568 cp -pLR $(LINUX_HEADERS_DIR)/include/asm-generic \
569 $(STAGING_DIR)/usr/include/; \
570 fi; \
572 endif
573 # Build the host utils. Need to add an install target...
574 $(MAKE1) -C $(UCLIBC_DIR)/utils \
575 PREFIX=$(STAGING_DIR) \
576 HOSTCC="$(HOSTCC)" \
577 hostutils
578 # install readelf and eventually other host-utils
579 install -c $(UCLIBC_DIR)/utils/readelf.host $(STAGING_DIR)/usr/bin/readelf
580 ln -sf readelf $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-readelf
581 ln -sf readelf $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-readelf
582 ifeq ($(BR2__UCLIBC_HAVE_SHARED),y)
583 install -c $(UCLIBC_DIR)/utils/ldd.host $(STAGING_DIR)/usr/bin/ldd
584 ln -sf ldd $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-ldd
585 ln -sf ldd $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-ldd
586 install -c $(UCLIBC_DIR)/utils/ldconfig.host $(STAGING_DIR)/usr/sbin/ldconfig
587 ln -sf ldconfig $(STAGING_DIR)/usr/sbin/$(REAL_GNU_TARGET_NAME)-ldconfig
588 ln -sf ldconfig $(STAGING_DIR)/usr/sbin/$(GNU_TARGET_NAME)-ldconfig
589 endif
590 ifeq ($(BR2__UCLIBC_UCLIBC_HAS_LOCALE),y)
591 install -c $(UCLIBC_DIR)/utils/iconv.host $(STAGING_DIR)/usr/bin/iconv
592 ln -sf iconv $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-iconv
593 ln -sf iconv $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-iconv
594 install -c $(UCLIBC_DIR)/utils/locale.host $(STAGING_DIR)/usr/bin/locale
595 ln -sf locale $(STAGING_DIR)/usr/bin/$(REAL_GNU_TARGET_NAME)-locale
596 ln -sf locale $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-locale
597 endif
598 touch -c $@
600 ifneq ($(TARGET_DIR),)
601 $(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/usr/lib/libc.a
602 $(MAKE1) -C $(UCLIBC_DIR) \
603 PREFIX=$(TARGET_DIR) \
604 DEVEL_PREFIX=/usr/ \
605 RUNTIME_PREFIX=/ \
606 UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
607 UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS) $(__UCLIBC_EXTRA_TARGET_CFLAGS)" \
608 install_runtime
609 touch -c $@
611 $(TARGET_DIR)/usr/bin/ldd: $(cross_compiler)
612 $(MAKE1) -C $(UCLIBC_DIR) CC=$(TARGET_CROSS)gcc \
613 CPP=$(TARGET_CROSS)cpp LD=$(TARGET_CROSS)ld \
614 UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
615 UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS) $(__UCLIBC_EXTRA_TARGET_CFLAGS)" \
616 PREFIX=$(TARGET_DIR) utils install_utils
617 ifeq ($(BR2_CROSS_TOOLCHAIN_TARGET_UTILS),y)
618 mkdir -p $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils
619 install -c $(TARGET_DIR)/usr/bin/ldd \
620 $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils/ldd
621 endif
622 touch -c $@
624 UCLIBC_TARGETS=$(TARGET_DIR)/lib/libc.so.0
625 endif
627 uclibc: $(cross_compiler) $(STAGING_DIR)/usr/lib/libc.a $(UCLIBC_TARGETS)
629 uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE)
631 uclibc-unpacked: $(UCLIBC_DIR)/.unpacked
633 uclibc-config: $(UCLIBC_DIR)/.config
635 uclibc-oldconfig: $(UCLIBC_DIR)/.oldconfig
637 uclibc-update: uclibc-config
638 cp -f $(UCLIBC_DIR)/.config $(UCLIBC_CONFIG_FILE)
640 uclibc-configured: kernel-headers $(UCLIBC_DIR)/.configured
642 uclibc-configured-source: uclibc-source
644 uclibc-clean:
645 -$(MAKE1) -C $(UCLIBC_DIR) clean
646 $(patsubst %,rm -f %, $(wildcard $(STAGING_DIR)/usr/bin/*readelf \
647 $(STAGING_DIR)/usr/bin/*ldd \
648 $(STAGING_DIR)/usr/bin/*ldconfig \
649 $(STAGING_DIR)/usr/bin/*iconv \
650 $(STAGING_DIR)/usr/bin/*locale \
651 $(STAGING_DIR)/usr/sbin/*readelf \
652 $(STAGING_DIR)/usr/sbin/*ldd \
653 $(STAGING_DIR)/usr/sbin/*ldconfig \
654 $(STAGING_DIR)/usr/sbin/*iconv \
655 $(STAGING_DIR)/usr/sbin/*locale \
656 $(TARGET_DIR)/usr/bin/*readelf \
657 $(TARGET_DIR)/usr/bin/*ldd \
658 $(TARGET_DIR)/usr/bin/*ldconfig \
659 $(TARGET_DIR)/usr/bin/*iconv \
660 $(TARGET_DIR)/usr/bin/*locale \
661 $(TARGET_DIR)/usr/sbin/*readelf \
662 $(TARGET_DIR)/usr/sbin/*ldd \
663 $(TARGET_DIR)/usr/sbin/*ldconfig \
664 $(TARGET_DIR)/usr/sbin/*iconv \
665 $(TARGET_DIR)/usr/sbin/*locale))
666 rm -f $(UCLIBC_DIR)/.config $(UCLIBC_DIR)/.configured
668 uclibc-dirclean:
669 rm -rf $(UCLIBC_DIR)
671 uclibc-target-utils: $(TARGET_DIR)/usr/bin/ldd
673 uclibc-target-utils-source: $(DL_DIR)/$(UCLIBC_SOURCE)
675 #############################################################
677 # uClibc for the target just needs its header files
678 # and whatnot installed.
680 #############################################################
682 $(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/usr/lib/libc.a
683 $(MAKE1) -C $(UCLIBC_DIR) \
684 PREFIX=$(TARGET_DIR) \
685 DEVEL_PREFIX=/usr/ \
686 RUNTIME_PREFIX=/ \
687 install_dev
688 # Install the kernel headers to the target dir if necessary
689 ifeq ($(LINUX_HEADERS_IS_KERNEL),y)
690 if [ ! -f $(TARGET_DIR)/usr/include/linux/version.h ]; then \
691 cp -pLR $(LINUX_HEADERS_DIR)/include/* \
692 $(TARGET_DIR)/usr/include/; \
694 else
695 if [ ! -f $(TARGET_DIR)/usr/include/linux/version.h ]; then \
696 cp -pLR $(LINUX_HEADERS_DIR)/include/asm \
697 $(TARGET_DIR)/usr/include/; \
698 cp -pLR $(LINUX_HEADERS_DIR)/include/linux \
699 $(TARGET_DIR)/usr/include/; \
700 if [ -d $(LINUX_HEADERS_DIR)/include/asm-generic ]; then \
701 cp -pLR $(LINUX_HEADERS_DIR)/include/asm-generic \
702 $(TARGET_DIR)/usr/include/; \
703 fi; \
705 endif
706 touch -c $@
708 uclibc_target: cross_compiler uclibc $(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd
710 uclibc_target-clean:
711 rm -rf $(TARGET_DIR)/usr/include \
712 $(TARGET_DIR)/usr/lib/libc.a $(TARGET_DIR)/usr/bin/ldd
714 uclibc_target-dirclean:
715 rm -rf $(TARGET_DIR)/usr/include
717 endif