1 #############################################################
3 # uClibc (the C library)
5 #############################################################
6 ifeq ($(USE_UCLIBC_SNAPSHOT
),true
)
7 # Be aware that this changes daily....
8 UCLIBC_DIR
=$(TOOL_BUILD_DIR
)/uClibc
9 UCLIBC_SOURCE
=uClibc-snapshot.
tar.gz
10 UCLIBC_SITE
:=http
://www.uclibc.org
/downloads
/snapshots
12 UCLIBC_DIR
:=$(TOOL_BUILD_DIR
)/uClibc-0.9
.28
13 UCLIBC_SOURCE
:=uClibc-0.9
.28.
tar.bz2
14 UCLIBC_SITE
:=http
://www.uclibc.org
/downloads
16 LINUX_DIR
:=/usr
/src
/linux
18 UCLIBC_TARGET_ARCH
:=$(shell echo
$(ARCH
) | sed
-e s
'/-.*//' \
20 -e
's/sparc.*/sparc/' \
23 -e
's/ppc/powerpc/g' \
24 -e
's/v850.*/v850/g' \
28 -e
's/mipsel.*/mips/' \
33 $(DL_DIR
)/$(UCLIBC_SOURCE
):
34 # $(WGET) -P $(DL_DIR) $(UCLIBC_SITE)/$(UCLIBC_SOURCE)
36 $(UCLIBC_DIR
)/.unpacked
: $(DL_DIR
)/$(UCLIBC_SOURCE
)
37 bzip2
-dc
$(DL_DIR
)/$(UCLIBC_SOURCE
) |
tar -C
$(TOOL_BUILD_DIR
) -xf
-
38 sed
-i
-e
's/include <sys\/types.h>/include <sys\/types.h>\n#include <pthread.h>/' $(UCLIBC_DIR
)/librt
/kernel-posix-timers.h
39 touch
$(UCLIBC_DIR
)/.unpacked
41 $(UCLIBC_DIR
)/.configured
: $(UCLIBC_DIR
)/.unpacked
42 $(MAKE
) -C
$(UCLIBC_DIR
) defconfig
;
43 cp
$(SOURCE_DIR
)/uClibc.config-
$(MACHINE
) $(UCLIBC_DIR
)/.config
44 cp
$(SOURCE_DIR
)/locales.txt
$(UCLIBC_DIR
)/extra
/locale
45 cp
$(SOURCE_DIR
)/codesets.txt
$(UCLIBC_DIR
)/extra
/locale
46 $(MAKE
) -C
$(UCLIBC_DIR
) PREFIX
=$(STAGING_DIR
) headers
;
47 (cd
$(UCLIBC_DIR
)/extra
/locale
; \
48 patch
-Np0
< /usr
/src
/src
/patches
/uClibc-gen_wctype-segfault.patch
; \
51 $(MAKE
) -C
$(UCLIBC_DIR
) PREFIX
=$(STAGING_DIR
) install_dev
;
52 rm -rf
$(STAGING_DIR
)/include
53 ln
-s
$(STAGING_DIR
)/usr
/include $(STAGING_DIR
)/include
54 touch
$(UCLIBC_DIR
)/.configured
56 $(UCLIBC_DIR
)/lib
/libc.a
: $(UCLIBC_DIR
)/.configured
$(LIBFLOAT_TARGET
)
57 $(SED
) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(UCLIBC_DIR
)/Rules.mak
58 $(MAKE
) -C
$(UCLIBC_DIR
) oldconfig
59 $(MAKE
) -C
$(UCLIBC_DIR
) headers
60 -$(MAKE
) -C
$(UCLIBC_DIR
) pregen
61 (cd
$(UCLIBC_DIR
)/extra
/locale
; \
62 patch
-Np0
< /usr
/src
/src
/patches
/uClibc-gen_wctype-segfault.patch
; \
65 $(MAKE
) -C
$(UCLIBC_DIR
)
67 $(STAGING_DIR
)/lib
/libc.a
: $(UCLIBC_DIR
)/lib
/libc.a
68 $(MAKE
) -C
$(UCLIBC_DIR
) PREFIX
=$(STAGING_DIR
) install_dev install_runtime
69 $(MAKE
) -C
$(UCLIBC_DIR
) PREFIX
=$(STAGING_DIR
) utils install_utils
70 # Clean up the host compiled utils...
71 $(MAKE
) -C
$(UCLIBC_DIR
)/utils
clean
72 (cd
$(STAGING_DIR
)/lib
; \
73 ln
-fs libc.so
.0 libc.so
; \
74 ln
-fs libdl.so
.0 libdl.so
; \
75 ln
-fs libcrypt.so
.0 libcrypt.so
; \
76 ln
-fs libresolv.so
.0 libresolv.so
; \
77 ln
-fs libutil.so
.0 libutil.so
; \
78 ln
-fs libm.so
.0 libm.so
; \
79 ln
-fs libpthread.so
.0 libpthread.so
; \
80 ln
-fs libnsl.so
.0 libnsl.so
; \
81 ln
-fs libthread_db.so
.1 libthread_db.so
; \
84 ifneq ($(TARGET_DIR
),)
85 $(TARGET_DIR
)/lib
/libc.so
.0: $(STAGING_DIR
)/lib
/libc.a
86 $(MAKE
) -C
$(UCLIBC_DIR
) PREFIX
=$(TARGET_DIR
) install_runtime
88 $(TARGET_DIR
)/usr
/bin
/ldd
: $(TARGET_DIR
)/lib
/libc.so
.0
89 $(MAKE
) -C
$(UCLIBC_DIR
) $(TARGET_CONFIGURE_OPTS
) \
90 PREFIX
=$(TARGET_DIR
) utils install_utils
92 UCLIBC_TARGETS
=$(TARGET_DIR
)/lib
/libc.so
.0 $(TARGET_DIR
)/usr
/bin
/ldd
95 uclibc-configured
: $(UCLIBC_DIR
)/.configured
97 uclibc
: $(STAGING_DIR
)/bin
/$(ARCH
)-linux-uclibc-gcc
$(STAGING_DIR
)/lib
/libc.a \
100 uclibc-source
: $(DL_DIR
)/$(UCLIBC_SOURCE
)
102 uclibc-configured-source
: uclibc-source
105 -$(MAKE
) -C
$(UCLIBC_DIR
) clean
106 rm -f
$(UCLIBC_DIR
)/.config
114 #############################################################
116 # uClibc for the target just needs its header files
117 # and whatnot installed.
119 #############################################################
121 $(TARGET_DIR
)/usr
/lib
/libc.a
: $(STAGING_DIR
)/lib
/libc.a
122 $(MAKE
) -C
$(UCLIBC_DIR
) $(TARGET_CONFIGURE_OPTS
) \
123 PREFIX
=$(TARGET_DIR
) install_dev
124 (cd
$(TARGET_DIR
)/usr
/lib
; \
125 ln
-fs
/lib
/libc.so
.0 libc.so
; \
126 ln
-fs
/lib
/libdl.so
.0 libdl.so
; \
127 ln
-fs
/lib
/libcrypt.so
.0 libcrypt.so
; \
128 ln
-fs
/lib
/libresolv.so
.0 libresolv.so
; \
129 ln
-fs
/lib
/libutil.so
.0 libutil.so
; \
130 ln
-fs
/lib
/libm.so
.0 libm.so
; \
131 ln
-fs
/lib
/libpthread.so
.0 libpthread.so
; \
132 ln
-fs
/lib
/libnsl.so
.0 libnsl.so
; \
133 ln
-fs
/lib
/libthread_db.so
.1 libthread_db.so
; \
136 ifeq ($(GCC_2_95_TOOLCHAIN
),true
)
137 uclibc_target
: gcc2_95 uclibc
$(TARGET_DIR
)/usr
/lib
/libc.a
139 uclibc_target
: gcc3_3 uclibc
$(TARGET_DIR
)/usr
/lib
/libc.a
143 rm -f
$(TARGET_DIR
)/include
145 uclibc_target-dirclean
:
146 rm -f
$(TARGET_DIR
)/include