diff options
Diffstat (limited to 'dev-lang/cxprolog')
-rw-r--r-- | dev-lang/cxprolog/Manifest | 7 | ||||
-rw-r--r-- | dev-lang/cxprolog/cxprolog-0.98.2.ebuild | 134 | ||||
-rw-r--r-- | dev-lang/cxprolog/files/build.xml | 49 | ||||
-rw-r--r-- | dev-lang/cxprolog/files/cx_dev_boot.pl | 9 | ||||
-rw-r--r-- | dev-lang/cxprolog/files/cxprolog-0.98.2-portage.patch | 109 | ||||
-rw-r--r-- | dev-lang/cxprolog/files/cxprolog-0.98.2-test-io.patch | 20 | ||||
-rw-r--r-- | dev-lang/cxprolog/metadata.xml | 8 |
7 files changed, 336 insertions, 0 deletions
diff --git a/dev-lang/cxprolog/Manifest b/dev-lang/cxprolog/Manifest new file mode 100644 index 000000000000..758936a9dba3 --- /dev/null +++ b/dev-lang/cxprolog/Manifest @@ -0,0 +1,7 @@ +AUX build.xml 1161 BLAKE2B 292e62ad0543b808cf888b6ec25cd41015bf95db17694124cff2aaefebe5024081f1b4e469e69907a870f4ab013cc274fad8218f3de3cbfb19f17d4a710b95d4 SHA512 1f75ae49b1d733f580bf95739aa927f464097905c69518f2efbc433c269256d04002e545d920d3cf9c97ea11fbfee86df6fb3276cbae784ed09a95f8a7f00264 +AUX cx_dev_boot.pl 141 BLAKE2B dea2a7baf1050f916ca5bc200bf7768c353ec6e59752031fbe7afb5f1cda89ab464c5db6ad3e70540d116fbd14c52e2dd3f1f6204fda36a45e108a81191669d4 SHA512 837599798afe67c76dcb585938ed46696f4f490b0e6184d6bff5238f067f78b7c77db081a3ba0019ac89b136a44749db8b73f38fce0d8519927d32145c4986c6 +AUX cxprolog-0.98.2-portage.patch 3806 BLAKE2B 6270cf9e19d6fd2f24a19a8d0e5af672c523530b1fece9146b49bda2b5ab97f79f69d55a15b56ace9dd5ecc15a693f1700700e9e902846113075441e587d5873 SHA512 f20ef4c01f27cc290efc5daf16a44a081072d0640282c9a995efacdb05548e547478201facd395b5067a22847bf51a25a9faf4c1bdec0510cf5c9031979d249a +AUX cxprolog-0.98.2-test-io.patch 580 BLAKE2B 5a4844e4f3469270ab33889f07b812aa5b457f6cf0dc49c2b05c6360a91ea9809c26743566ea66c41e7ae0fa1aa3a05945245d234267b8b39f52ae452034bf73 SHA512 4c39bf891c0d7291b1f1ff926367f5613fed61455dd35747eb0fcd5bcdd0eb93fb86ca82b58b194e5ea2dbcf62e7f0179c5a97186f42e83c707a6022f829704d +DIST cxprolog-0.98.2.src.tgz 548222 BLAKE2B e1e834384ff161efde961e7a319d9987cb368ed561fa613a4dd2ede353a099de9146de68dedab3d5e74bb5421c880f743b669eb43eb0b265112dbf938820b0ad SHA512 7e16ce238201da2520da3575311a8c56c9fc3926b290ef505e74ca208af9e6a070d4137ae21e708e1d6c9b83e44566ecd818d51a90f033c983c589b65bcbf2b1 +EBUILD cxprolog-0.98.2.ebuild 3077 BLAKE2B 562d47ec52d4cb23972638f765ffb67471ea3a76b9782a10d3400943876e5b26bfa7e0d3e0ba7893171e1d9fdc032c0f133582b96bdd65d726b59b28921ed6b5 SHA512 42c864b978ff26f54112c2a74e62ee82974a843f8f8bb76c97a7734de53b9532d360e8d0d7e2d3d3120d8f1006d75c08c4175534c21dd72262b7844d8edae9c3 +MISC metadata.xml 236 BLAKE2B 665f3de6dc90f46a18379b3416063a49b1a79ddd7ef89eaed9be78f9adc5b234e9693cd31d6cf2d3477fc7dc00055492bef7de78da6c901c4a6e55eb0e781325 SHA512 e776224736bd575412c7b5b799f649c6b2947a70e6a9aea580063d9da7d09a8144e5ebaf7ac3ef131d578486cf05dec814dce11b2aeb884cded3be3cab70fcec diff --git a/dev-lang/cxprolog/cxprolog-0.98.2.ebuild b/dev-lang/cxprolog/cxprolog-0.98.2.ebuild new file mode 100644 index 000000000000..d1b773c84e51 --- /dev/null +++ b/dev-lang/cxprolog/cxprolog-0.98.2.ebuild @@ -0,0 +1,134 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +WX_GTK_VER="3.0-gtk3" +VIRTUALX_REQUIRED="manual" + +inherit flag-o-matic java-pkg-opt-2 java-ant-2 toolchain-funcs virtualx wxwidgets + +DESCRIPTION="A WAM based Prolog system" +HOMEPAGE="http://ctp.di.fct.unl.pt/~amd/cxprolog" +SRC_URI="http://ctp.di.fct.unl.pt/~amd/cxprolog/cxunix/${P}.src.tgz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="examples java +readline test wxwidgets" +RESTRICT="!test? ( test )" + +RDEPEND="readline? ( sys-libs/readline:= ) + java? ( >=virtual/jdk-1.8:= ) + wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] )" + +DEPEND="${RDEPEND} + test? ( + java? ( ${VIRTUALX_DEPEND} ) + wxwidgets? ( ${VIRTUALX_DEPEND} ) + )" + +S="${WORKDIR}"/${P} + +src_prepare() { + eapply "${FILESDIR}"/${P}-portage.patch + eapply "${FILESDIR}"/${P}-test-io.patch + eapply_user + + sed -i -e "s|lib/cxprolog|$(get_libdir)/cxprolog|" "${S}"/src/FileSys.c || die + cp "${FILESDIR}"/build.xml "${S}"/build.xml || die + cp "${FILESDIR}"/cx_dev_boot.pl "${S}"/cx_dev_boot.pl || die + rm -f "${S}"/pl/test_file_io_1.txt + + use wxwidgets && setup-wxwidgets +} + +src_compile() { + local CX_EXT_DEFINES + local CX_EXT_CFLAGS + local CX_EXT_LDFLAGS + local CX_EXT_LIBS + + if use readline; then + CX_EXT_DEFINES="$CX_EXT_DEFINES -DUSE_READLINE" + CX_EXT_LIBS="$CX_EXT_LIBS -lreadline" + fi + + if use java; then + local java_arch + use x86 && java_arch=i386 + use amd64 && java_arch=amd64 + CX_JVM="${JAVA_HOME}/jre/lib/${java_arch}/server" + CX_EXT_DEFINES="$CX_EXT_DEFINES -DUSE_JAVA" + CX_EXT_CFLAGS="$CX_EXT_CFLAGS $(java-pkg_get-jni-cflags)" + CX_EXT_LDFLAGS="$CX_EXT_LDFLAGS -Wl,-rpath,${CX_JVM}" + CX_EXT_LIBS="$CX_EXT_LIBS -L${CX_JVM} -ljvm" + fi + + if use wxwidgets; then + CX_EXT_DEFINES="$CX_EXT_DEFINES -DUSE_WXWIDGETS" + CX_EXT_CFLAGS="$CX_EXT_CFLAGS $(${WX_CONFIG} --cflags)" + CX_EXT_LIBS="$CX_EXT_LIBS $(${WX_CONFIG} --libs)" + fi + + emake lib \ + PREFIX=/usr \ + TMP_DIR="${S}/tmp" \ + CC=$(tc-getCC) \ + CPP=$(tc-getCXX) \ + LD=$(tc-getLD) \ + CFLAGS="${CFLAGS}" \ + LDFLAGS="${LDFLAGS}" \ + EXT_DEFINES="${CX_EXT_DEFINES}" \ + EXT_CFLAGS="-Wall ${CX_EXT_CFLAGS}" \ + EXT_LDFLAGS="${CX_EXT_LDFLAGS}" \ + EXT_LIBS="${CX_EXT_LIBS}" + + if use java; then + JAVA_SRC_DIR="${S}/lib/cxprolog/java" + eant jar + fi +} + +cxprolog_src_test() { + cd "${S}"/pl + + LD_LIBRARY_PATH="${S}" \ + "${S}"/cxprolog_shared \ + --boot "${S}"/cx_dev_boot.pl \ + --script "${S}"/pl/test_all.pl \ + | tee "${S}"/cxprolog_test.log +} + +src_test() { + if use java || use wxwidgets; then + virtx cxprolog_src_test + else + cxprolog_src_test + fi + + grep -q "ALL THE TESTS PASSED" "${S}"/cxprolog_test.log \ + || die "cxprolog unit tests failed" +} + +src_install() { + newbin cxprolog_shared cxprolog + dolib.so libcxprolog.so + + insinto /usr/$(get_libdir)/cxprolog + doins lib/cxprolog/lib.pl + + insinto /usr/share/${PN}/pl + doins pl/*.{pl,txt} + + if use java; then + insinto /usr/$(get_libdir)/cxprolog/java + doins dist/prolog.jar + fi + + dodoc ChangeLog.txt MANUAL.txt README.txt + + if use examples; then + dodoc -r examples + fi +} diff --git a/dev-lang/cxprolog/files/build.xml b/dev-lang/cxprolog/files/build.xml new file mode 100644 index 000000000000..3d4d4fba16e1 --- /dev/null +++ b/dev-lang/cxprolog/files/build.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" ?><project default="jar" name="cxprolog"> + + <!-- some properties --> + <property name="src.dir" value="lib/cxprolog/java/prolog"/> + <property name="build.dir" value="build"/> + <property name="dist.dir" value="dist"/> + <property file="build.properties"/> + + <path id="compile.classpath"> + <pathelement path="${gentoo.classpath}"/> + </path> + + <!-- init --> + <target name="init"> + <tstamp/> + <mkdir dir="${dist.dir}"/> + <mkdir dir="${build.dir}"/> + </target> + + <!-- compile everything --> + <target depends="init" name="compile"> + <javac deprecation="off" + destdir="${build.dir}" + encoding="ISO-8859-1" + srcdir="${src.dir}" + source="1.8" + target="1.8"> + <classpath> + <path refid="compile.classpath"/> + </classpath> + </javac> + <copy todir="${build.dir}"> + <fileset dir="${src.dir}"> + <exclude name="**/*.java"/> + </fileset> + </copy> + </target> + + <!-- build the jar file --> + <target depends="compile" name="jar"> + <jar basedir="${build.dir}" jarfile="${dist.dir}/prolog.jar"/> + </target> + + <!-- clean up --> + <target name="clean"> + <delete dir="${build.dir}"/> + <delete dir="${dist.dir}"/> + </target> +</project> diff --git a/dev-lang/cxprolog/files/cx_dev_boot.pl b/dev-lang/cxprolog/files/cx_dev_boot.pl new file mode 100644 index 000000000000..2794cabe34b0 --- /dev/null +++ b/dev-lang/cxprolog/files/cx_dev_boot.pl @@ -0,0 +1,9 @@ +'$cxprolog_initialise' :- + version, + fs_cwd(CWD), + fs_set_prefix_dir(CWD), + '$env_context' := [main]. + + +'$cxprolog_top_level_goal' :- + true. diff --git a/dev-lang/cxprolog/files/cxprolog-0.98.2-portage.patch b/dev-lang/cxprolog/files/cxprolog-0.98.2-portage.patch new file mode 100644 index 000000000000..32e22a0eb620 --- /dev/null +++ b/dev-lang/cxprolog/files/cxprolog-0.98.2-portage.patch @@ -0,0 +1,109 @@ +--- cxprolog-0.98.2.orig/Makefile 2016-09-17 20:33:35.000000000 +0200 ++++ cxprolog-0.98.2/Makefile 2020-07-22 09:01:24.785919309 +0200 +@@ -20,9 +20,9 @@ + ###################################################################### + + ############################################################################## +-# To disable READLINE SUPPORT, uncomment the following line: ++# For READLINE SUPPORT, uncomment the following line: + # +-# READLINE := n ++# READLINE := y + # + # Nothing more is required. + # This functionality is active by default. +@@ -83,6 +83,7 @@ + EXT_OBJ_DIR := src/ext + EXT_CFLAGS := + EXT_DEFINES := ++EXT_LDFLAGS := + EXT_LIBS := + EXT_NAMES := + +@@ -91,6 +92,7 @@ + # EXT_OBJ_DIR := src/obj/ext + # EXT_CFLAGS := -I/usr/include + # EXT_DEFINES := -DUSE_X=2 -DCOMPASS=1 ++# EXT_LDFLAGS := -Wl,--as-needed + # EXT_LIBS := -L/usr/lib -lcrypt + # EXT_NAMES := ext/file1 ext/file2 + ############################################################################## +@@ -121,6 +123,7 @@ + CFLAGS := -Wall -Wextra -O1 + ONLYCFLAGS := # -Wmissing-prototypes + DEFINES := ++LDFLAGS := + LIBS := -lm + OBJ_DIR := src/obj + TMP_DIR := /var/tmp/$(APP) +@@ -157,16 +160,16 @@ + + ifeq ($(VERBOSE),y) + CFLAGS := -v $(CFLAGS) +- LIBS := -v $(LIBS) ++ LDFLAGS := -v $(LDFLAGS) + endif + + ZFLAGS := $(DEBUG) $(EXT_CFLAGS) + ZDEFINES := $(EXTRA) $(ZPREFIX) -DOS=$(OS) $(DEFINES) $(EXT_DEFINES) ++ZLDFLAGS := $(DEBUG) $(LDFLAGS) $(EXT_LDFLAGS) + ZLIBS := $(EXTRA) $(LIBS) $(EXT_LIBS) + ZPRE := + +-ifeq ($(READLINE),n) +-else ++ifeq ($(READLINE),y) + ifneq ($(OS),MINGW32) + ifeq ($(shell if test -e "/usr/local/opt/readline"; then echo "y" ; fi),y) + ZDEFINES += -DUSE_READLINE=4 -I/usr/local/opt/readline/include +@@ -294,7 +297,7 @@ + ############################################################################## + + $(APP): $(OBJS) +- $(CPP) -o $(TMP_DIR)/$(APP) $(OBJS) $(ZLIBS) ++ $(CPP) $(ZLDFLAGS) -o $(TMP_DIR)/$(APP) $(OBJS) $(ZLIBS) + ln -sf $(TMP_DIR)/$(APP) $(APP) + @$(ZPOST) + +@@ -319,32 +322,32 @@ + + ifeq ($(OS),MINGW32) + libcxprolog.a cxprolog.dll: $(OBJ_DIR) $(OBJS) +- $(CPP) -shared -o cxprolog.dll $(OBJS) -Wl,--out-implib,libcxprolog.a $(ZLIBS) ++ $(CPP) $(ZLDFLAGS) -shared -o cxprolog.dll $(OBJS) -Wl,--out-implib,libcxprolog.a $(ZLIBS) + + cxprolog_shared.exe: libcxprolog.a cxprolog.dll + ifeq ($(WXWIDGETS),y) +- $(CPP) -o cxprolog_shared.exe -lmingw32 -L./ -lcxprolog ++ $(CPP) $(ZLDFLAGS) -o cxprolog_shared.exe -lmingw32 -L./ -lcxprolog + else +- $(CPP) -o cxprolog_shared.exe -L./ -lcxprolog ++ $(CPP) $(ZLDFLAGS) -o cxprolog_shared.exe -L./ -lcxprolog + endif + + cxprolog_testlib.exe: libcxprolog.a cxprolog.dll +- gcc -DTESTLIB=1 -o src/TestLib.o -c src/TestLib.c +- $(CPP) -enable-auto-import -o cxprolog_testlib src/TestLib.o -L./ -lcxprolog ++ $(CC) $(ZFLAGS) -DTESTLIB=1 -o src/TestLib.o -c src/TestLib.c ++ $(CPP) $(ZLDFLAGS) -enable-auto-import -o cxprolog_testlib src/TestLib.o -L./ -lcxprolog + rm src/TestLib.o + + lib: libcxprolog.a cxprolog_shared.exe cxprolog_testlib.exe + + else # Assume Unix + libcxprolog.so: $(OBJ_DIR) $(OBJS) +- $(CPP) -shared -o libcxprolog.so $(OBJS) -lc $(ZLIBS) ++ $(CPP) $(ZLDFLAGS) -shared -Wl,-soname,libcxprolog.so -o libcxprolog.so $(filter-out src/obj/CxProlog.o,$(OBJS)) -lc $(ZLIBS) + + cxprolog_shared: libcxprolog.so +- $(CPP) $(ZDEFINES) -o cxprolog_shared -L./ -lcxprolog ++ $(CPP) $(ZLDFLAGS) -o cxprolog_shared src/obj/CxProlog.o -L./ -lcxprolog $(ZLIBS) + + cxprolog_testlib: libcxprolog.so +- gcc $(ZDEFINES) -DTESTLIB=1 -o src/TestLib.o -c src/TestLib.c +- $(CPP) $(ZDEFINES) -o cxprolog_testlib src/TestLib.o -L./ -lcxprolog ++ $(CC) $(ZFLAGS) $(ZDEFINES) -DTESTLIB=1 -o src/TestLib.o -c src/TestLib.c ++ $(CPP) $(ZLDFLAGS) -o cxprolog_testlib src/TestLib.o -L./ -lcxprolog $(ZLIBS) + rm src/TestLib.o + + lib: libcxprolog.so cxprolog_shared cxprolog_testlib diff --git a/dev-lang/cxprolog/files/cxprolog-0.98.2-test-io.patch b/dev-lang/cxprolog/files/cxprolog-0.98.2-test-io.patch new file mode 100644 index 000000000000..d9f7be7b0cf5 --- /dev/null +++ b/dev-lang/cxprolog/files/cxprolog-0.98.2-test-io.patch @@ -0,0 +1,20 @@ +--- cxprolog-0.98.2.orig/pl/test_io.pl 2016-01-23 22:07:48.000000000 +0100 ++++ cxprolog-0.98.2/pl/test_io.pl 2020-07-18 21:26:20.911026745 +0200 +@@ -17,7 +17,7 @@ + concat([X,'.\n'],T). + + test_file_io(L,Encoding) :- +- FileName = 'test_file_io_1.txt', ++ FileName = '/tmp/test_file_io_1.txt', + open(FileName,write,S1,[encoding(Encoding),bom(true)]), + name(T,L), + write(S1,T), +@@ -25,7 +25,7 @@ + open(FileName,read,S2), % relies on bom + read(S2,X), + close(S2), +- %fs_delete(FileName), ++ fs_delete(FileName), + concat([X,'.\n'],T). + + :- current_prolog_flag(encoding,Curr), diff --git a/dev-lang/cxprolog/metadata.xml b/dev-lang/cxprolog/metadata.xml new file mode 100644 index 000000000000..96eff3ea40c0 --- /dev/null +++ b/dev-lang/cxprolog/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>prolog@gentoo.org</email> + <name>Prolog</name> +</maintainer> +</pkgmetadata> |