Last active
October 21, 2023 20:22
-
-
Save royratcliffe/27aca7cbdc40381eecfd2b9e893f7250 to your computer and use it in GitHub Desktop.
package-swipl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# swipl supports arch for which libc fenv.h provides all four macros: | |
# FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD | |
# See for example in glibc https://sourceware.org/git/glibc.git | |
# git grep -E '^[[:space:]]*#[[:space:]]*define[[:space:]]+FE_(TONEAREST|UPWARD|DOWNWARD|TOWARDZERO)' sysdeps/ | |
config BR2_PACKAGE_SWIPL_ARCH_SUPPORTS | |
bool | |
default y if BR2_aarch64 || BR2_aarch64_be | |
default y if BR2_arceb || BR2_arcle | |
default y if BR2_arm || BR2_armeb | |
default y if BR2_i386 | |
default y if BR2_m68k | |
# BR2_microblaze has only FE_TONEAREST | |
default y if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el | |
# BR2_nios2 has only FE_TONEAREST | |
default y if BR2_or1k | |
default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le | |
default y if BR2_riscv | |
default y if BR2_s390x | |
# BR2_sh has only FE_{TONEAREST,TOWARDZERO} | |
default y if BR2_sparc || BR2_sparc64 | |
default y if BR2_x86_64 | |
# BR2_xtensa supports only uclibc which does not have fenv.h | |
config BR2_PACKAGE_SWIPL | |
bool "SWI-Prolog" | |
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # __has_attribute() | |
depends on BR2_PACKAGE_SWIPL_ARCH_SUPPORTS | |
# swipl needs fenv.h which is not provided by uclibc | |
depends on !BR2_TOOLCHAIN_USES_UCLIBC | |
select BR2_PACKAGE_ZLIB | |
help | |
SWI-Prolog offers a comprehensive free Prolog | |
environment. Since its start in 1987, SWI-Prolog development | |
has been driven by the needs of real world | |
applications. SWI-Prolog is widely used in research and | |
education as well as commercial applications. | |
https://swi-prolog.org |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# From https://www.swi-prolog.org/download/stable | |
sha256 33b5de34712d58f14c1e019bd1613df9a474f5e5fd024155a0f6e67ebb01c307 swipl-9.0.2.tar.gz | |
# Locally calculated | |
sha256 770594d0f4463b71f1485f00e4bc5cf4b6f667d62ef6bc9bde2fee236541992a LICENSE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
################################################################################ | |
# | |
# swipl | |
# | |
################################################################################ | |
SWIPL_VERSION = 9.1.16 | |
SWIPL_SITE = https://www.swi-prolog.org/download/devel/src | |
SWIPL_LICENSE = BSD-2-Clause | |
SWIPL_LICENSE_FILES = LICENSE | |
SWIPL_DEPENDENCIES = host-swipl zlib | |
# A host-swipl is needed to compile the target prolog boot | |
# boot.prl file. | |
HOST_SWIPL_CONF_OPTS = \ | |
-DBUILD_PDF_DOCUMENTATION=OFF \ | |
-DINSTALL_DOCUMENTATION=OFF \ | |
-DSWIPL_PACKAGES=ON \ | |
-DUSE_GMP=ON \ | |
-DUSE_TCMALLOC=OFF | |
# swipl uses cmake macros try_run() and check_c_source_runs(), which | |
# are not suitable for cross compilation. We add results in cache to | |
# avoid running those tests. The SWIPL_NATIVE_FRIEND variable, is | |
# meant to point to build directory of a host native swipl, rather | |
# than the binary itself. The Cmake macro will append "src/swipl" to | |
# the path set to this variable. Therefore, we cannot use the host | |
# "swipl" binary installed in $(HOST_DIR)/usr/bin. | |
SWIPL_CONF_OPTS = \ | |
-DBUILD_PDF_DOCUMENTATION=OFF \ | |
-DINSTALL_DOCUMENTATION=OFF \ | |
-DHAVE_WEAK_ATTRIBUTE=1 \ | |
-DLLROUND_OK=1 \ | |
-DMODF_OK=1 \ | |
-DQSORT_R_GNU=1 \ | |
-DSWIPL_PACKAGES=OFF \ | |
-DSWIPL_PACKAGE_LIST="clib;pengines" \ | |
-DTHREADS_PTHREAD_ARG=0 \ | |
-DSWIPL_NATIVE_FRIEND=$(BUILD_DIR)/host-swipl-$(SWIPL_VERSION) \ | |
-DUSE_TCMALLOC=OFF | |
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y) | |
SWIPL_CONF_OPTS += -DCMAKE_EXE_LINKER_FLAGS=-latomic | |
endif | |
ifeq ($(BR2_PACKAGE_GMP),y) | |
SWIPL_CONF_OPTS += -DUSE_GMP=ON | |
SWIPL_DEPENDENCIES += gmp | |
else | |
SWIPL_CONF_OPTS += -DUSE_GMP=OFF | |
endif | |
ifeq ($(BR2_PACKAGE_NCURSES),y) | |
SWIPL_DEPENDENCIES += ncurses | |
endif | |
$(eval $(cmake-package)) | |
$(eval $(host-cmake-package)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment