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

GUILE_VERSION = 3.0.4
GUILE_SOURCE = guile-$(GUILE_VERSION).tar.xz
GUILE_SITE = $(BR2_GNU_MIRROR)/guile
GUILE_INSTALL_STAGING = YES
# For 0002-calculate-csqrt_manually.patch and
# 0003-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

# jit triggers build failures with gcc < 5
ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5),)
GUILE_CONF_OPTS += --disable-jit
endif
ifeq ($(BR2_HOST_GCC_AT_LEAST_5),)
HOST_GUILE_CONF_OPTS += --disable-jit
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))
