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