xref: /OK3568_Linux_fs/buildroot/package/musl/musl.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# musl
4#
5################################################################################
6
7MUSL_VERSION = 1.2.2
8MUSL_SITE = http://www.musl-libc.org/releases
9MUSL_LICENSE = MIT
10MUSL_LICENSE_FILES = COPYRIGHT
11MUSL_CPE_ID_VENDOR = musl-libc
12
13# Before musl is configured, we must have the first stage
14# cross-compiler and the kernel headers
15MUSL_DEPENDENCIES = host-gcc-initial linux-headers
16
17# musl does not provide an implementation for sys/queue.h or sys/cdefs.h.
18# So, add the musl-compat-headers package that will install those files,
19# into the staging directory:
20#   sys/queue.h:  header from NetBSD
21#   sys/cdefs.h:  minimalist header bundled in Buildroot
22MUSL_DEPENDENCIES += musl-compat-headers
23
24# musl is part of the toolchain so disable the toolchain dependency
25MUSL_ADD_TOOLCHAIN_DEPENDENCY = NO
26
27MUSL_INSTALL_STAGING = YES
28
29# Thumb build is broken, build in ARM mode, since all architectures
30# that support Thumb1 also support ARM.
31ifeq ($(BR2_ARM_INSTRUCTIONS_THUMB),y)
32MUSL_EXTRA_CFLAGS += -marm
33endif
34
35define MUSL_CONFIGURE_CMDS
36	(cd $(@D); \
37		$(TARGET_CONFIGURE_OPTS) \
38		CFLAGS="$(filter-out -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64,$(TARGET_CFLAGS)) $(MUSL_EXTRA_CFLAGS)" \
39		CPPFLAGS="$(filter-out -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64,$(TARGET_CPPFLAGS))" \
40		./configure \
41			--target=$(GNU_TARGET_NAME) \
42			--host=$(GNU_TARGET_NAME) \
43			--prefix=/usr \
44			--libdir=/lib \
45			--disable-gcc-wrapper \
46			--enable-static \
47			$(if $(BR2_STATIC_LIBS),--disable-shared,--enable-shared))
48endef
49
50define MUSL_BUILD_CMDS
51	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
52endef
53
54define MUSL_INSTALL_STAGING_CMDS
55	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
56		DESTDIR=$(STAGING_DIR) install-libs install-tools install-headers
57endef
58
59define MUSL_INSTALL_TARGET_CMDS
60	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
61		DESTDIR=$(TARGET_DIR) install-libs
62	$(RM) $(addprefix $(TARGET_DIR)/lib/,crt1.o crtn.o crti.o rcrt1.o Scrt1.o)
63endef
64
65$(eval $(generic-package))
66