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
.26
13 UCLIBC_SOURCE
:=uClibc-0.9
.26.
tar.gz
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 gzip
-dc
$(DL_DIR
)/$(UCLIBC_SOURCE
) |
tar -C
$(TOOL_BUILD_DIR
) -xvf
-
38 touch
$(UCLIBC_DIR
)/.unpacked
40 $(UCLIBC_DIR
)/.configured
: $(UCLIBC_DIR
)/.unpacked
41 $(MAKE
) -C
$(UCLIBC_DIR
) defconfig
;
42 cp
$(SOURCE_DIR
)/uClibc.config
$(UCLIBC_DIR
)/.config
43 cp
$(SOURCE_DIR
)/locales.txt
$(UCLIBC_DIR
)/extra
/locale
44 cp
$(SOURCE_DIR
)/codesets.txt
$(UCLIBC_DIR
)/extra
/locale
45 $(MAKE
) -C
$(UCLIBC_DIR
) PREFIX
=$(STAGING_DIR
) headers
;
46 (cd
$(UCLIBC_DIR
)/extra
/locale
; \
49 $(MAKE
) -C
$(UCLIBC_DIR
) PREFIX
=$(STAGING_DIR
) install_dev
;
50 rm -rf
$(STAGING_DIR
)/include
51 ln
-s
$(STAGING_DIR
)/usr
/include $(STAGING_DIR
)/include
52 touch
$(UCLIBC_DIR
)/.configured
54 $(UCLIBC_DIR
)/lib
/libc.a
: $(UCLIBC_DIR
)/.configured
$(LIBFLOAT_TARGET
)
55 $(SED
) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(UCLIBC_DIR
)/Rules.mak
56 $(MAKE
) -C
$(UCLIBC_DIR
) oldconfig
57 $(MAKE
) -C
$(UCLIBC_DIR
) headers
58 -$(MAKE
) -C
$(UCLIBC_DIR
) pregen
59 (cd
$(UCLIBC_DIR
)/extra
/locale
; \
62 $(MAKE
) -C
$(UCLIBC_DIR
)
64 $(STAGING_DIR
)/lib
/libc.a
: $(UCLIBC_DIR
)/lib
/libc.a
65 $(MAKE
) -C
$(UCLIBC_DIR
) PREFIX
=$(STAGING_DIR
) install_dev install_runtime
66 $(MAKE
) -C
$(UCLIBC_DIR
) PREFIX
=$(STAGING_DIR
) utils install_utils
67 # Clean up the host compiled utils...
68 $(MAKE
) -C
$(UCLIBC_DIR
)/utils
clean
69 (cd
$(STAGING_DIR
)/lib
; \
70 ln
-fs libc.so
.0 libc.so
; \
71 ln
-fs libdl.so
.0 libdl.so
; \
72 ln
-fs libcrypt.so
.0 libcrypt.so
; \
73 ln
-fs libresolv.so
.0 libresolv.so
; \
74 ln
-fs libutil.so
.0 libutil.so
; \
75 ln
-fs libm.so
.0 libm.so
; \
76 ln
-fs libpthread.so
.0 libpthread.so
; \
77 ln
-fs libnsl.so
.0 libnsl.so
; \
78 ln
-fs libthread_db.so
.1 libthread_db.so
; \
81 ifneq ($(TARGET_DIR
),)
82 $(TARGET_DIR
)/lib
/libc.so
.0: $(STAGING_DIR
)/lib
/libc.a
83 $(MAKE
) -C
$(UCLIBC_DIR
) PREFIX
=$(TARGET_DIR
) install_runtime
85 $(TARGET_DIR
)/usr
/bin
/ldd
: $(TARGET_DIR
)/lib
/libc.so
.0
86 $(MAKE
) -C
$(UCLIBC_DIR
) $(TARGET_CONFIGURE_OPTS
) \
87 PREFIX
=$(TARGET_DIR
) utils install_utils
89 UCLIBC_TARGETS
=$(TARGET_DIR
)/lib
/libc.so
.0 $(TARGET_DIR
)/usr
/bin
/ldd
92 uclibc-configured
: $(UCLIBC_DIR
)/.configured
94 uclibc
: $(STAGING_DIR
)/bin
/$(ARCH
)-linux-gcc
$(STAGING_DIR
)/lib
/libc.a \
97 uclibc-source
: $(DL_DIR
)/$(UCLIBC_SOURCE
)
99 uclibc-configured-source
: uclibc-source
102 -$(MAKE
) -C
$(UCLIBC_DIR
) clean
103 rm -f
$(UCLIBC_DIR
)/.config
111 #############################################################
113 # uClibc for the target just needs its header files
114 # and whatnot installed.
116 #############################################################
118 $(TARGET_DIR
)/usr
/lib
/libc.a
: $(STAGING_DIR
)/lib
/libc.a
119 $(MAKE
) -C
$(UCLIBC_DIR
) $(TARGET_CONFIGURE_OPTS
) \
120 PREFIX
=$(TARGET_DIR
) install_dev
121 (cd
$(TARGET_DIR
)/usr
/lib
; \
122 ln
-fs
/lib
/libc.so
.0 libc.so
; \
123 ln
-fs
/lib
/libdl.so
.0 libdl.so
; \
124 ln
-fs
/lib
/libcrypt.so
.0 libcrypt.so
; \
125 ln
-fs
/lib
/libresolv.so
.0 libresolv.so
; \
126 ln
-fs
/lib
/libutil.so
.0 libutil.so
; \
127 ln
-fs
/lib
/libm.so
.0 libm.so
; \
128 ln
-fs
/lib
/libpthread.so
.0 libpthread.so
; \
129 ln
-fs
/lib
/libnsl.so
.0 libnsl.so
; \
130 ln
-fs
/lib
/libthread_db.so
.1 libthread_db.so
; \
133 ifeq ($(GCC_2_95_TOOLCHAIN
),true
)
134 uclibc_target
: gcc2_95 uclibc
$(TARGET_DIR
)/usr
/lib
/libc.a
136 uclibc_target
: gcc3_3 uclibc
$(TARGET_DIR
)/usr
/lib
/libc.a
140 rm -f
$(TARGET_DIR
)/include
142 uclibc_target-dirclean
:
143 rm -f
$(TARGET_DIR
)/include