xref: /OK3568_Linux_fs/buildroot/package/guile/guile.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# guile
4#
5################################################################################
6
7GUILE_VERSION = 3.0.4
8GUILE_SOURCE = guile-$(GUILE_VERSION).tar.xz
9GUILE_SITE = $(BR2_GNU_MIRROR)/guile
10GUILE_INSTALL_STAGING = YES
11# For 0002-calculate-csqrt_manually.patch and
12# 0003-Makefile.am-fix-build-without-makeinfo.patch
13GUILE_AUTORECONF = YES
14GUILE_LICENSE = LGPL-3.0+
15GUILE_LICENSE_FILES = LICENSE COPYING COPYING.LESSER
16GUILE_CPE_ID_VENDOR = gnu
17
18# libtool dependency is needed because guile uses libltdl
19GUILE_DEPENDENCIES = host-guile libunistring libffi gmp bdwgc host-pkgconf libtool
20HOST_GUILE_DEPENDENCIES = host-libunistring host-libffi host-gmp host-bdwgc host-flex host-pkgconf host-gettext
21
22# The HAVE_GC* CFLAGS specify that we will use internal callbacks
23# instead of the ones provided by
24# bdwgc. Eg. HAVE_GC_SET_FINALIZER_NOTIFIER specifies that we won't
25# use bdwgc's GC_finalizer_notifier callback.  Trying to use these
26# specific bdwgc's callbacks breaks guile's building.
27GUILE_CFLAGS = \
28	-DHAVE_GC_SET_FINALIZER_NOTIFIER \
29	-DHAVE_GC_GET_HEAP_USAGE_SAFE \
30	-DHAVE_GC_GET_FREE_SPACE_DIVISOR \
31	-DHAVE_GC_SET_FINALIZE_ON_DEMAND
32
33ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
34GUILE_CONF_ENV += LIBS=-latomic
35endif
36
37ifeq ($(BR2_STATIC_LIBS),y)
38GUILE_CFLAGS += -DGC_NO_DLOPEN
39endif
40
41# Triggers assembler error with -Os
42ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM)$(BR2_OPTIMIZE_S),yy)
43GUILE_CFLAGS += -O2
44endif
45
46# jit triggers build failures with gcc < 5
47ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5),)
48GUILE_CONF_OPTS += --disable-jit
49endif
50ifeq ($(BR2_HOST_GCC_AT_LEAST_5),)
51HOST_GUILE_CONF_OPTS += --disable-jit
52endif
53
54# It can use readline, but on the condition that it was build against
55# ncurses. If both aren't present disable readline support since the
56# host readline/ncurses support can poison the build.
57ifeq ($(BR2_PACKAGE_NCURSES)$(BR2_PACKAGE_READLINE),yy)
58GUILE_CONF_OPTS += --with-libreadline-prefix=$(STAGING_DIR)/usr
59GUILE_DEPENDENCIES += readline
60else
61GUILE_CONF_OPTS += --without-libreadline-prefix
62endif
63
64GUILE_CONF_ENV += GUILE_FOR_BUILD=$(HOST_DIR)/bin/guile \
65	CFLAGS="$(TARGET_CFLAGS) $(GUILE_CFLAGS)"
66
67GUILE_CONF_OPTS += \
68	--with-libltdl-prefix=$(STAGING_DIR)/usr/lib \
69	--with-libgmp-prefix=$(STAGING_DIR)/usr/lib \
70	--with-libunistring-prefix=$(STAGING_DIR)/usr/lib
71
72$(eval $(autotools-package))
73$(eval $(host-autotools-package))
74