################################################################################
#
# guile
#
################################################################################

GUILE_VERSION = 2.0.14
GUILE_SOURCE = guile-$(GUILE_VERSION).tar.xz
GUILE_SITE = $(BR2_GNU_MIRROR)/guile
GUILE_INSTALL_STAGING = YES
# For 0002-calculate-csqrt_manually.patch and
# 0004-Makefile.am-fix-build-without-makeinfo.patch
GUILE_AUTORECONF = YES
GUILE_LICENSE = LGPL-3.0+
GUILE_LICENSE_FILES = LICENSE COPYING COPYING.LESSER

# libtool dependency is needed because guile uses libltdl
GUILE_DEPENDENCIES = host-guile libunistring libffi gmp bdwgc host-pkgconf libtool
HOST_GUILE_DEPENDENCIES = host-libunistring host-libffi host-gmp host-bdwgc host-flex host-pkgconf host-gettext

# The HAVE_GC* CFLAGS specify that we will use internal callbacks
# instead of the ones provided by
# bdwgc. Eg. HAVE_GC_SET_FINALIZER_NOTIFIER specifies that we won't
# use bdwgc's GC_finalizer_notifier callback.  Trying to use these
# specific bdwgc's callbacks breaks guile's building.
GUILE_CFLAGS = \
	-DHAVE_GC_SET_FINALIZER_NOTIFIER \
	-DHAVE_GC_GET_HEAP_USAGE_SAFE \
	-DHAVE_GC_GET_FREE_SPACE_DIVISOR \
	-DHAVE_GC_SET_FINALIZE_ON_DEMAND

ifeq ($(BR2_STATIC_LIBS),y)
GUILE_CFLAGS += -DGC_NO_DLOPEN
endif

# Triggers assembler error with -Os
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM)$(BR2_OPTIMIZE_S),yy)
GUILE_CFLAGS += -O2
endif

# It can use readline, but on the condition that it was build against
# ncurses. If both aren't present disable readline support since the
# host readline/ncurses support can poison the build.
ifeq ($(BR2_PACKAGE_NCURSES)$(BR2_PACKAGE_READLINE),yy)
GUILE_CONF_OPTS += --with-libreadline-prefix=$(STAGING_DIR)/usr
GUILE_DEPENDENCIES += readline
else
GUILE_CONF_OPTS += --without-libreadline-prefix
endif

GUILE_CONF_ENV += GUILE_FOR_BUILD=$(HOST_DIR)/bin/guile \
	CFLAGS="$(TARGET_CFLAGS) $(GUILE_CFLAGS)"

GUILE_CONF_OPTS += \
	--with-libltdl-prefix=$(STAGING_DIR)/usr/lib \
	--with-libgmp-prefix=$(STAGING_DIR)/usr/lib \
	--with-libunistring-prefix=$(STAGING_DIR)/usr/lib

$(eval $(autotools-package))
$(eval $(host-autotools-package))
