guile.mk 2.3 KB

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