While trying to get everything to work with clang, I've stumbled on
gprolog.

Here is an update to 1.4.4. It doesn't make it work with clang either,
but at least it's newer (I peeked: FreeBSD does compile gprolog with gcc)

The most important improvement in the port is doing OpenBSD detection
in  configure, which allows CFLAGS_MACHINE to contain -fno-pie -nopie,
thus leading to glpc working "out of the box" and killing a number
of Makefile patches.

Okay ?

Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/gprolog/Makefile,v
retrieving revision 1.16
diff -u -p -r1.16 Makefile
--- Makefile    8 Jan 2014 11:54:12 -0000       1.16
+++ Makefile    29 May 2017 13:39:39 -0000
@@ -4,8 +4,7 @@ ONLY_FOR_ARCHS=         amd64 i386
 
 COMMENT=               Prolog compiler
 
-DISTNAME=              gprolog-1.3.1
-REVISION=              0
+DISTNAME=              gprolog-1.4.4
 CATEGORIES=            lang
 
 HOMEPAGE=              http://www.gprolog.org/
@@ -19,7 +18,7 @@ WANTLIB=              c m
 
 MASTER_SITES=          ${MASTER_SITE_GNU:=gprolog/}
 
-AUTOCONF_VERSION=      2.61
+AUTOCONF_VERSION=      2.68
 CONFIGURE_STYLE=       autoconf dest no-autoheader
 
 
@@ -31,7 +30,7 @@ CONFIGURE_ARGS+= --with-install-dir='${P
        --with-examples-dir='${PREFIX}/share/examples/gprolog' \
        --with-html-dir='${PREFIX}/share/doc/gprolog/html' \
        --with-doc-dir='${PREFIX}/share/doc/gprolog' \
-       --with-c-flags="${CFLAGS} -fno-pie -nopie"
+       --with-c-flags="${CFLAGS}"
 
 WRKDIST=               ${WRKDIR}/${DISTNAME}/src
 
Index: distinfo
===================================================================
RCS file: /cvs/ports/lang/gprolog/distinfo,v
retrieving revision 1.5
diff -u -p -r1.5 distinfo
--- distinfo    8 Jan 2014 11:54:12 -0000       1.5
+++ distinfo    29 May 2017 13:39:39 -0000
@@ -1,2 +1,2 @@
-SHA256 (gprolog-1.3.1.tar.gz) = PDMVm50jRkegbniHDBSgUY1qKl+F25BjYHd/6z2YwxY=
-SIZE (gprolog-1.3.1.tar.gz) = 2949369
+SHA256 (gprolog-1.4.4.tar.gz) = GMDpZEszr9TdPN8p+UwJmtgg1l4MmdpUlbGuQ7TysY4=
+SIZE (gprolog-1.4.4.tar.gz) = 3538152
Index: patches/patch-EnginePl_machine_h
===================================================================
RCS file: /cvs/ports/lang/gprolog/patches/patch-EnginePl_machine_h,v
retrieving revision 1.1
diff -u -p -r1.1 patch-EnginePl_machine_h
--- patches/patch-EnginePl_machine_h    8 Jan 2014 11:54:12 -0000       1.1
+++ patches/patch-EnginePl_machine_h    29 May 2017 13:39:39 -0000
@@ -13,9 +13,10 @@ compilation failed
 *** Error 1 in /tmp_ports/gprolog-1.3.1/gprolog-1.3.1/src (Makefile:47 'all')
 ===
 
---- EnginePl/machine.h.orig    Wed Jan  8 04:11:21 2014
-+++ EnginePl/machine.h Wed Jan  8 04:12:30 2014
-@@ -110,7 +110,7 @@ void M_Check_Magic_Words(void); /* not compiled if not
+Index: EnginePl/machine.h
+--- EnginePl/machine.h.orig
++++ EnginePl/machine.h
+@@ -124,7 +124,7 @@ void M_Check_Magic_Words(void); /* not compiled if not
  #    define M_USED_REGS            {"$9", "$10", "$11", "$12", "$13", "$14", 
0}
  
  /* on M_ix86_darwin : %ebx is used by gcc for pic base */
Index: patches/patch-EnginePl_obj_chain_h
===================================================================
RCS file: /cvs/ports/lang/gprolog/patches/patch-EnginePl_obj_chain_h,v
retrieving revision 1.1
diff -u -p -r1.1 patch-EnginePl_obj_chain_h
--- patches/patch-EnginePl_obj_chain_h  27 Dec 2009 19:30:21 -0000      1.1
+++ patches/patch-EnginePl_obj_chain_h  29 May 2017 13:39:39 -0000
@@ -1,11 +1,13 @@
 $OpenBSD: patch-EnginePl_obj_chain_h,v 1.1 2009/12/27 19:30:21 jasper Exp $
---- EnginePl/obj_chain.h.orig  Wed May  9 03:20:35 2007
-+++ EnginePl/obj_chain.h       Wed May  9 03:21:54 2007
-@@ -84,6 +84,6 @@ static long obj_chain_start = (long) OBJ_CTOR;
+Index: EnginePl/obj_chain.h
+--- EnginePl/obj_chain.h.orig
++++ EnginePl/obj_chain.h
+@@ -95,7 +95,7 @@ static PlLong obj_chain_start = (PlLong) OBJ_CTOR;
  
  
  
--#if defined(_MSC_VER) || defined(M_ix86_darwin)
-+#if defined(_MSC_VER) || defined(M_ix86_darwin) || defined(__OpenBSD__)
+-#if (defined(_MSC_VER) || defined(M_darwin)) && 
!defined(OBJ_CHAIN_REVERSE_ORDER)
++#if (defined(_MSC_VER) || defined(M_darwin) || defined(__OpenBSD__)) && 
!defined(OBJ_CHAIN_REVERSE_ORDER)
  #define OBJ_CHAIN_REVERSE_ORDER
  #endif
+ 
Index: patches/patch-Fd2C_Makefile_in
===================================================================
RCS file: patches/patch-Fd2C_Makefile_in
diff -N patches/patch-Fd2C_Makefile_in
--- patches/patch-Fd2C_Makefile_in      30 Aug 2012 20:54:59 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-Fd2C_Makefile_in,v 1.2 2012/08/30 20:54:59 pascal Exp $
---- Fd2C/Makefile.in.orig      Fri Jan 23 12:15:03 2009
-+++ Fd2C/Makefile.in   Tue Aug 28 16:39:14 2012
-@@ -11,7 +11,7 @@ OBJS      = fd2c@OBJ_SUFFIX@ read_file@OBJ_SUFFIX@ par
- 
- 
- fd2c@EXE_SUFFIX@: $(OBJS)
--      $(GPLC) -o fd2c@EXE_SUFFIX@ --no-fd-lib --min-bips $(OBJS)
-+      $(GPLC) -L -nopie -o fd2c@EXE_SUFFIX@ --no-fd-lib --min-bips $(OBJS)
- 
- 
- 
Index: patches/patch-Ma2Asm_Makefile_in
===================================================================
RCS file: /cvs/ports/lang/gprolog/patches/patch-Ma2Asm_Makefile_in,v
retrieving revision 1.1
diff -u -p -r1.1 patch-Ma2Asm_Makefile_in
--- patches/patch-Ma2Asm_Makefile_in    27 Dec 2009 19:30:21 -0000      1.1
+++ patches/patch-Ma2Asm_Makefile_in    29 May 2017 13:39:39 -0000
@@ -1,6 +1,7 @@
 $OpenBSD: patch-Ma2Asm_Makefile_in,v 1.1 2009/12/27 19:30:21 jasper Exp $
---- Ma2Asm/Makefile.in.orig    Thu Jan  4 10:21:48 2007
-+++ Ma2Asm/Makefile.in Fri Jun 13 22:36:35 2008
+Index: Ma2Asm/Makefile.in
+--- Ma2Asm/Makefile.in.orig
++++ Ma2Asm/Makefile.in
 @@ -53,14 +53,14 @@ CHKMA_OBJS=chkma@OBJ_SUFFIX@ chkma_ma@OBJ_SUFFIX@ ../E
  
  chkma@OBJ_SUFFIX@: chkma.c
@@ -17,4 +18,4 @@ $OpenBSD: patch-Ma2Asm_Makefile_in,v 1.1
 +      export PL_PATH=$(PWD)/../ ;../TopComp/$(GPLC) -c chkma_ma@ASM_SUFFIX@
  
  chkma@EXE_SUFFIX@: $(CHKMA_OBJS)
-       $(CC) $(CFLAGS) @CC_EXE_NAME_OPT@chkma@EXE_SUFFIX@ $(CHKMA_OBJS)
+       $(GPLC) -o chkma@EXE_SUFFIX@ $(CHKMA_OBJS) --no-pl-lib
Index: patches/patch-Makefile_in
===================================================================
RCS file: /cvs/ports/lang/gprolog/patches/patch-Makefile_in,v
retrieving revision 1.1
diff -u -p -r1.1 patch-Makefile_in
--- patches/patch-Makefile_in   27 Dec 2009 19:30:21 -0000      1.1
+++ patches/patch-Makefile_in   29 May 2017 13:39:39 -0000
@@ -1,7 +1,8 @@
 $OpenBSD: patch-Makefile_in,v 1.1 2009/12/27 19:30:21 jasper Exp $
---- Makefile.in.orig   Thu Jan  4 05:21:49 2007
-+++ Makefile.in        Fri Jun 13 19:37:59 2008
-@@ -79,13 +79,13 @@ uninstall: uninstall-links uninstall-html uninstall-do
+Index: Makefile.in
+--- Makefile.in.orig
++++ Makefile.in
+@@ -82,13 +82,13 @@ uninstall: uninstall-links uninstall-html uninstall-do
  # --- Links --- #
  
  install-links: uninstall-links
Index: patches/patch-Pl2Wam_Makefile_in
===================================================================
RCS file: patches/patch-Pl2Wam_Makefile_in
diff -N patches/patch-Pl2Wam_Makefile_in
--- patches/patch-Pl2Wam_Makefile_in    30 Aug 2012 20:54:59 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-Pl2Wam_Makefile_in,v 1.2 2012/08/30 20:54:59 pascal Exp $
---- Pl2Wam/Makefile.in.orig    Fri Jan 23 12:15:03 2009
-+++ Pl2Wam/Makefile.in Tue Aug 28 16:39:01 2012
-@@ -19,7 +19,7 @@ WAMS      = $(PLS:.pl=.wam)
- 
- pl2wam@EXE_SUFFIX@: $(OBJS)
-       [ ! -f  pl2wam@EXE_SUFFIX@ ] || cp pl2wam@EXE_SUFFIX@ 
pl2wam0@EXE_SUFFIX@
--      $(GPLC) -o pl2wam@EXE_SUFFIX@ --no-fd-lib --min-bips $(OBJS)
-+      $(GPLC) -L -nopie -o pl2wam@EXE_SUFFIX@ --no-fd-lib --min-bips $(OBJS)
- 
- 
- clean:
Index: patches/patch-Pl2Wam_check_boot
===================================================================
RCS file: /cvs/ports/lang/gprolog/patches/patch-Pl2Wam_check_boot,v
retrieving revision 1.1
diff -u -p -r1.1 patch-Pl2Wam_check_boot
--- patches/patch-Pl2Wam_check_boot     27 Dec 2009 19:30:21 -0000      1.1
+++ patches/patch-Pl2Wam_check_boot     29 May 2017 13:39:39 -0000
@@ -1,11 +1,12 @@
 $OpenBSD: patch-Pl2Wam_check_boot,v 1.1 2009/12/27 19:30:21 jasper Exp $
---- Pl2Wam/check_boot.orig     Fri Jun 13 19:14:04 2008
-+++ Pl2Wam/check_boot  Fri Jun 13 19:13:43 2008
+Index: Pl2Wam/check_boot
+--- Pl2Wam/check_boot.orig
++++ Pl2Wam/check_boot
 @@ -1,6 +1,6 @@
  #!/bin/sh
  do_diff() {
--    diff --ignore-space-change -I '^%' -I '^file_name(' $1 $2 || \
-+    gdiff --ignore-space-change -I '^%' -I '^file_name(' $1 $2 || \
+-    diff --ignore-space-change -I '^%' -I '^file_name[(]' $1 $2 || \
++    gdiff --ignore-space-change -I '^%' -I '^file_name[(]' $1 $2 || \
        ( echo "difference encountered: $1 <> $2"; exit 1 )
  }
  
Index: patches/patch-TopComp_Makefile_in
===================================================================
RCS file: patches/patch-TopComp_Makefile_in
diff -N patches/patch-TopComp_Makefile_in
--- patches/patch-TopComp_Makefile_in   30 Aug 2012 20:54:59 -0000      1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,12 +0,0 @@
-$OpenBSD: patch-TopComp_Makefile_in,v 1.2 2012/08/30 20:54:59 pascal Exp $
---- TopComp/Makefile.in.orig   Fri Jan 23 12:15:03 2009
-+++ TopComp/Makefile.in        Tue Aug 28 16:38:33 2012
-@@ -24,7 +24,7 @@ $(HEXGPLC)@EXE_SUFFIX@: hexfilter.c decode_hexa.c 
- all: $(ALL_EXECS)
- 
- $(TOP_LEVEL)@EXE_SUFFIX@: ../EnginePl/gp_config.h copying.c top_level.c
--      $(GPLC) $(TOP_LEVEL_FLAGS) -o $(TOP_LEVEL)@EXE_SUFFIX@ top_level.c
-+      $(GPLC) -L -nopie $(TOP_LEVEL_FLAGS) -o $(TOP_LEVEL)@EXE_SUFFIX@ 
top_level.c
- 
- 
- 
Index: patches/patch-configure_in
===================================================================
RCS file: patches/patch-configure_in
diff -N patches/patch-configure_in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-configure_in  29 May 2017 13:39:39 -0000
@@ -0,0 +1,13 @@
+$OpenBSD$
+
+Index: configure.in
+--- configure.in.orig
++++ configure.in
+@@ -474,6 +474,7 @@ dnl -fomit-frame-pointer does not work on MinGW (teste
+         powerpc*darwin*)   CFLAGS_MACHINE='-mpowerpc -no-cpp-precomp';;
+         x86_64*solaris*)   CFLAGS_MACHINE='-m64';;
+         x86_64*darwin*)    CFLAGS_MACHINE='-march=x86-64 -m64';;
++      *openbsd*)         CFLAGS_MACHINE='-fno-pie -nopie';;
+     esac
+ 
+     case "$host" in
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/lang/gprolog/pkg/PLIST,v
retrieving revision 1.3
diff -u -p -r1.3 PLIST
--- pkg/PLIST   27 Dec 2009 19:30:21 -0000      1.3
+++ pkg/PLIST   29 May 2017 13:39:39 -0000
@@ -10,6 +10,7 @@ libdata/gprolog/
 libdata/gprolog/COPYING
 libdata/gprolog/ChangeLog
 libdata/gprolog/NEWS
+libdata/gprolog/README
 libdata/gprolog/VERSION
 libdata/gprolog/bin/
 @bin libdata/gprolog/bin/fd2c
@@ -19,6 +20,7 @@ libdata/gprolog/bin/
 @bin libdata/gprolog/bin/ma2asm
 @bin libdata/gprolog/bin/pl2wam
 @bin libdata/gprolog/bin/wam2ma
+libdata/gprolog/gprolog.ico
 libdata/gprolog/include/
 libdata/gprolog/include/fd_to_c.h
 libdata/gprolog/include/gprolog.h
@@ -34,11 +36,9 @@ libdata/gprolog/lib/liblinedit.a
 libdata/gprolog/lib/top_level.o
 share/doc/gprolog/
 share/doc/gprolog/compil-scheme.eps
-share/doc/gprolog/compil-scheme.gif
 share/doc/gprolog/compil-scheme.pdf
 share/doc/gprolog/contents_motif.gif
 share/doc/gprolog/debug-box.eps
-share/doc/gprolog/debug-box.gif
 share/doc/gprolog/debug-box.pdf
 share/doc/gprolog/gprolog.chm
 share/doc/gprolog/gprolog.dvi
@@ -125,6 +125,8 @@ share/doc/gprolog/html/gprolog073.html
 share/doc/gprolog/html/index.html
 share/doc/gprolog/html/next_motif.gif
 share/doc/gprolog/html/previous_motif.gif
+share/doc/gprolog/logo.eps
+share/doc/gprolog/logo.pdf
 share/examples/gprolog/
 share/examples/gprolog/ExamplesC/
 share/examples/gprolog/ExamplesC/Makefile
@@ -154,6 +156,7 @@ share/examples/gprolog/ExamplesFD/eq10.p
 share/examples/gprolog/ExamplesFD/eq20.pl
 share/examples/gprolog/ExamplesFD/five.pl
 share/examples/gprolog/ExamplesFD/gardner.pl
+share/examples/gprolog/ExamplesFD/interval.pl
 share/examples/gprolog/ExamplesFD/langford.pl
 share/examples/gprolog/ExamplesFD/magic.pl
 share/examples/gprolog/ExamplesFD/magsq.pl

Reply via email to