guile.mk 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. ################################################################################
  2. #
  3. # guile
  4. #
  5. ################################################################################
  6. GUILE_VERSION = 3.0.4
  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
  12. GUILE_AUTORECONF = YES
  13. GUILE_LICENSE = LGPL-3.0+
  14. GUILE_LICENSE_FILES = LICENSE COPYING COPYING.LESSER
  15. # libtool dependency is needed because guile uses libltdl
  16. GUILE_DEPENDENCIES = host-guile libunistring libffi gmp bdwgc host-pkgconf libtool
  17. HOST_GUILE_DEPENDENCIES = host-libunistring host-libffi host-gmp host-bdwgc host-flex host-pkgconf host-gettext
  18. # The HAVE_GC* CFLAGS specify that we will use internal callbacks
  19. # instead of the ones provided by
  20. # bdwgc. Eg. HAVE_GC_SET_FINALIZER_NOTIFIER specifies that we won't
  21. # use bdwgc's GC_finalizer_notifier callback. Trying to use these
  22. # specific bdwgc's callbacks breaks guile's building.
  23. GUILE_CFLAGS = \
  24. -DHAVE_GC_SET_FINALIZER_NOTIFIER \
  25. -DHAVE_GC_GET_HEAP_USAGE_SAFE \
  26. -DHAVE_GC_GET_FREE_SPACE_DIVISOR \
  27. -DHAVE_GC_SET_FINALIZE_ON_DEMAND
  28. ifeq ($(BR2_STATIC_LIBS),y)
  29. GUILE_CFLAGS += -DGC_NO_DLOPEN
  30. endif
  31. # Triggers assembler error with -Os
  32. ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM)$(BR2_OPTIMIZE_S),yy)
  33. GUILE_CFLAGS += -O2
  34. endif
  35. # jit triggers build failures with gcc < 5
  36. ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_5),)
  37. GUILE_CONF_OPTS += --disable-jit
  38. endif
  39. ifeq ($(BR2_HOST_GCC_AT_LEAST_5),)
  40. HOST_GUILE_CONF_OPTS += --disable-jit
  41. endif
  42. # It can use readline, but on the condition that it was build against
  43. # ncurses. If both aren't present disable readline support since the
  44. # host readline/ncurses support can poison the build.
  45. ifeq ($(BR2_PACKAGE_NCURSES)$(BR2_PACKAGE_READLINE),yy)
  46. GUILE_CONF_OPTS += --with-libreadline-prefix=$(STAGING_DIR)/usr
  47. GUILE_DEPENDENCIES += readline
  48. else
  49. GUILE_CONF_OPTS += --without-libreadline-prefix
  50. endif
  51. GUILE_CONF_ENV += GUILE_FOR_BUILD=$(HOST_DIR)/bin/guile \
  52. CFLAGS="$(TARGET_CFLAGS) $(GUILE_CFLAGS)"
  53. GUILE_CONF_OPTS += \
  54. --with-libltdl-prefix=$(STAGING_DIR)/usr/lib \
  55. --with-libgmp-prefix=$(STAGING_DIR)/usr/lib \
  56. --with-libunistring-prefix=$(STAGING_DIR)/usr/lib
  57. $(eval $(autotools-package))
  58. $(eval $(host-autotools-package))