pkgsrc/lang/swi-prolog-lite/Makefile.common

50 lines
1.5 KiB
Text
Raw Normal View History

2019-07-10 12:32:05 +02:00
# $NetBSD: Makefile.common,v 1.18 2019/07/10 10:32:05 nia Exp $
#
# used by lang/swi-prolog/Makefile
# used by lang/swi-prolog-packages/Makefile
# used by lang/swi-prolog-jpl/Makefile
SWIPLVERS= 8.0.2
swi-prolog*: Update lang/swi-prolog* to 7.6.4 pkgsrc changes: - Add patches/patch-src_os_pl-files.c to avoid overlapping `src' and `dst' in srtcpy(3). It is an undefined behaviour and it leads to build issue in swi-prolog-packages on platforms that uses SSP. - readline dependency is no longer needed for swi-prolog-lite. The readline functionality is now provided as a package via swi-prolog-packages. - Inject CFLAGS via COFLAGS and pass -fPIC via CMFLAGS so that swi-prolog-jpl will link - Add patches/patch-src_pl-rsort.c to use FreeBSD qsort_r(3) instead of using nested functions. This is probably more portable and has less problems (e.g. does not need for PaX MPROTECT). Changes: 7.6.x ----- Major release. Multi-argument indexing, better multi-threaded performance, threaded global GC (atoms and clauses), mode-directed tabling, restored same expand and directive semantics for initial load and reloading files, cleaner initializatin and command line handling. 7.4.x ----- Major release. More robust and better scalable support for multi-core hardware, tabling, engines. Many enhancements to the RDF, HTTP and SSL libraries. This is the first release licensed under the Simplified BSD (BSD-2) license. 7.2.x ----- Major release, providing native key-value support by means of dicts, native strings using "hello world" syntax, web-accessible Prolog engines (Pengines) and a high level SQL library called CQL. Please note that this is just a summary of the most important changes, for more information please give a look to: <http://www.swi-prolog.org/ChangeLog?branch=stable>
2018-12-10 15:59:50 +01:00
DISTNAME= swipl-${SWIPLVERS}
CATEGORIES= lang
2019-07-10 12:32:05 +02:00
MASTER_SITES= https://www.swi-prolog.org/download/stable/src/
MASTER_SITES+= https://www.swi-prolog.org/download/devel/src/
2019-07-10 12:32:05 +02:00
HOMEPAGE= https://www.swi-prolog.org/
LICENSE= gnu-lgpl-v2.1
DIST_SUBDIR= swi-prolog
DISTINFO_FILE= ${.CURDIR}/../../lang/swi-prolog-lite/distinfo
PATCHDIR= ${.CURDIR}/../../lang/swi-prolog-lite/patches
swi-prolog*: Update lang/swi-prolog* to 7.6.4 pkgsrc changes: - Add patches/patch-src_os_pl-files.c to avoid overlapping `src' and `dst' in srtcpy(3). It is an undefined behaviour and it leads to build issue in swi-prolog-packages on platforms that uses SSP. - readline dependency is no longer needed for swi-prolog-lite. The readline functionality is now provided as a package via swi-prolog-packages. - Inject CFLAGS via COFLAGS and pass -fPIC via CMFLAGS so that swi-prolog-jpl will link - Add patches/patch-src_pl-rsort.c to use FreeBSD qsort_r(3) instead of using nested functions. This is probably more portable and has less problems (e.g. does not need for PaX MPROTECT). Changes: 7.6.x ----- Major release. Multi-argument indexing, better multi-threaded performance, threaded global GC (atoms and clauses), mode-directed tabling, restored same expand and directive semantics for initial load and reloading files, cleaner initializatin and command line handling. 7.4.x ----- Major release. More robust and better scalable support for multi-core hardware, tabling, engines. Many enhancements to the RDF, HTTP and SSL libraries. This is the first release licensed under the Simplified BSD (BSD-2) license. 7.2.x ----- Major release, providing native key-value support by means of dicts, native strings using "hello world" syntax, web-accessible Prolog engines (Pengines) and a high level SQL library called CQL. Please note that this is just a summary of the most important changes, for more information please give a look to: <http://www.swi-prolog.org/ChangeLog?branch=stable>
2018-12-10 15:59:50 +01:00
swi-prolog*: Update to 8.0.1 pkgsrc changes: - Rename swi-prolog to swipl to follow upstream nomenclature - Add all main packages (except X11) to swi-prolog-lite. After CMake migration in order to generate the documentation and being able to use it (e.g. via help/2) it is needed to add basic, archive, ssl and term packages. All X11 packages are provided by swi-prolog-packages. - Adjust pkgsrc Makefile-s logic to upstream CMake migration: o Uncoditionally disable not wanted packages in Makefile.common (to avoid possible PLIST mismatches; please note that this will probably disable tipc package on Linux!). All other installed packages are enabled/disabled via swi-prolog-{lite,packages,jpl} Makefile. o Add libarchive, ossp-uuid and openssl build dependency to swi-prolog-packages. Despite these are provided by swi-prolog-lite they are needed as part of the build of swi-prolog-packages too. o Remove no more needed logic to check and eventually start X server to build documentation. Should address PR pkg/42047. - Remove an unconditional CHECK_WRKREF_SKIP, this was needed on FreeBSD but unfortunately it is not clear why. If this is still needed please let me know in order to try to investigate further and address that. - Bump API requirements to 8.0.1 in buildlink3.mk to be on the safe side now that shared libraries are provided on all platforms. Changes: 8.0.1 ----- Indexing on multiple arguments together, indexing inside compounds, Mode-directed tabling, saved states using ZIP files, many deployment enhancements. Moved build environment to CMake and removed most of the build tool dependencies. Builds documentation along with the binary. Please note that this is just a short summary. Unfortunately the complete changelog is very long, full changelog can be found at: <http://www.swi-prolog.org/ChangeLog?branch=stable&from=7.6.4&to=8.0.1>
2019-02-25 16:20:44 +01:00
USE_CMAKE= yes
CMAKE_ARGS+= -DCMAKE_BUILD_TYPE=Release
CMAKE_ARGS+= -DSWIPL_ARCH=${MACHINE_GNU_PLATFORM}
# XXX: Explicitly disable all not wanted packages to avoid possible build
# XXX: failures. For a complete list please see:
# XXX: ${WRKSRC}/cmake/PackageSelection.cmake
CMAKE_ARGS+= -DSWIPL_PACKAGES_ODBC=OFF
CMAKE_ARGS+= -DSWIPL_PACKAGES_BDB=OFF
CMAKE_ARGS+= -DSWIPL_PACKAGES_PCRE=OFF
CMAKE_ARGS+= -DSWIPL_PACKAGES_YAML=OFF
CMAKE_ARGS+= -DSWIPL_PACKAGES_TIPC=OFF
CMAKE_ARGS+= -DSWIPL_PACKAGES_QT=OFF
USE_LANGUAGES= c c++
# XXX: That's kludgy, can it be avoided?
MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/build/src
# XXX: Can this be addressed differently without appending to the LDFLAGS?
# XXX: (i.e. it should just work(TM))
LDFLAGS+= ${COMPILER_RPATH_FLAG}${PREFIX}/lib/swipl/lib/${MACHINE_GNU_PLATFORM}
CONFIGURE_DIRS= build
CMAKE_ARG_PATH= ..
PRINT_PLIST_AWK+= { sub("${MACHINE_GNU_PLATFORM}", "$${MACHINE_GNU_PLATFORM}") }
pre-configure:
cd ${WRKSRC} && ${MKDIR} build