Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Jun 2006 00:52:39 -0300
From:      "Alejandro Pulver" <alepulver@FreeBSD.org>
To:        "FreeBSD gnats submit" <FreeBSD-gnats-submit@FreeBSD.org>
Subject:   ports/99439: [UPDATE] lang/ecl: fix building on !i386
Message-ID:  <1151207559.35750@phobos.mars.bsd>
Resent-Message-ID: <200606250400.k5P40Yee019322@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         99439
>Category:       ports
>Synopsis:       [UPDATE] lang/ecl: fix building on !i386
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 25 04:00:34 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Alejandro Pulver
>Release:        FreeBSD 6.1-RELEASE-p1 i386
>Organization:
>Environment:


System: FreeBSD 6.1-RELEASE-p1 #3: Mon Jun 19 14:49:35 ART 2006
    root@phobos.mars.bsd:/usr/obj/usr/src/sys/ATHLON-PHOBOS



>Description:


- Add OPTIONS.
- Avoid installing the GNU license.
- Fix building on !i386.


>How-To-Repeat:





>Fix:


--- ecl.diff begins here ---
Index: ecl/Makefile
===================================================================
RCS file: /home/pcvs/ports/lang/ecl/Makefile,v
retrieving revision 1.13
diff -u -r1.13 Makefile
--- ecl/Makefile	10 May 2006 14:46:39 -0000	1.13
+++ ecl/Makefile	25 Jun 2006 03:49:45 -0000
@@ -17,23 +17,73 @@
 
 LIB_DEPENDS=	gmp.7:${PORTSDIR}/math/libgmp4
 
-INSTALLS_SHLIB=	yes
-LDCONFIG_DIRS=	%%PREFIX%%/lib/ecl
+USE_GMAKE=	yes
+USE_PERL5_BUILD=yes
+GNU_CONFIGURE=	yes
+CONFIGURE_ARGS=	--with-system-gmp --with-cmuformat=yes --enable-boehm=included
+CONFIGURE_ENV=	CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}"
+CPPFLAGS=	-I${LOCALBASE}/include
+LDFLAGS=	-L${LOCALBASE}/lib
 
-# It should build and run on 64-bit architectures,
-# but it is completely untested.
-ONLY_FOR_ARCHS=	i386
+OPTIONS=	ASDF "Enable ASDF building facility" on \
+		CLOS_STREAMS "Enable user defined stream objects" on \
+		CLX "Enable X11 interface" off \
+		SOCKETS "Enable socket interface" on \
+		THREADS "Enable threading support" off
 
 MAN1=		ecl.1
 INFO=		ecl ecldev
 
-USE_GMAKE=	YES
-USE_PERL5_BUILD=yes
-GNU_CONFIGURE=	YES
-CONFIGURE_ARGS=	--with-asdf --with-tcp --with-system-gmp --enable-boehm=included
+INSTALLS_SHLIB=	yes
+LDCONFIG_DIRS=	%%PREFIX%%/lib/ecl
+
+.include <bsd.port.pre.mk>
+
+.if !defined(WITHOUT_ASDF)
+CONFIGURE_ARGS+=--with-asdf=yes
+PLIST_SUB+=	ASDF=""
+.else
+CONFIGURE_ARGS+=--with-asdf=no
+PLIST_SUB+=	ASDF="@comment "
+.endif
+
+.if !defined(WITHOUT_CLOS_STREAMS)
+CONFIGURE_ARGS+=--with-clos-streams=yes
+PLIST_SUB+=	CLOS_STREAMS=""
+.else
+CONFIGURE_ARGS+=--with-clos-streams=no
+PLIST_SUB+=	CLOS_STREAMS="@comment "
+.endif
+
+.if defined(WITH_CLX)
+USE_XLIB=	yes
+CONFIGURE_ARGS+=--with-clx=yes
+INFO+=		clx
+PLIST_SUB+=	CLX=""
+.else
+CONFIGURE_ARGS+=--with-clx=no
+PLIST_SUB+=	CLX="@comment "
+.endif
+
+.if !defined(WITHOUT_SOCKETS)
+CONFIGURE_ARGS+=--with-tcp=yes
+PLIST_SUB+=	SOCKETS=""
+.else
+CONFIGURE_ARGS+=--with-tcp=no
+PLIST_SUB+=	SOCKETS="@comment "
+.endif
+
+.if defined(WITH_THREADS)
+CONFIGURE_ARGS+=--enable-threads=yes
+LDFLAGS+=	${PTHREAD_LIBS}
+.else
+CONFIGURE_ARGS+=--enable-threads=no
+.endif
 
-# We need to tell ECL where to find the GMP includes
-# and libraries.
-CONFIGURE_ENV=	LDFLAGS=-L${PREFIX}/lib CFLAGS=-I${PREFIX}/include
+.if defined(WITH_THREADS)
+post-patch:
+	@${REINPLACE_CMD} -e 's|_NP[[:>:]]||' \
+		${WRKSRC}/src/c/package.d ${WRKSRC}/src/c/threads.d
+.endif
 
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
Index: ecl/pkg-plist
===================================================================
RCS file: /home/pcvs/ports/lang/ecl/pkg-plist,v
retrieving revision 1.3
diff -u -r1.3 pkg-plist
--- ecl/pkg-plist	20 Sep 2005 12:10:17 -0000	1.3
+++ ecl/pkg-plist	25 Jun 2006 03:49:45 -0000
@@ -1,34 +1,32 @@
+bin/ecl
+bin/ecl-config
+lib/ecl/BUILD-STAMP
+%%ASDF%%lib/ecl/asdf.fas
+%%CLX%%lib/ecl/clx.fas
+%%CLOS_STREAMS%%lib/ecl/cmp.fas
+lib/ecl/dpp
+lib/ecl/ecl_min
 lib/ecl/h/config.h
-lib/ecl/h/ecl.h
-lib/ecl/h/ecl-cmp.h
-lib/ecl/h/object.h
+lib/ecl/h/configpre.h
 lib/ecl/h/cs.h
-lib/ecl/h/stacks.h
-lib/ecl/h/external.h
+lib/ecl/h/ecl-cmp.h
+lib/ecl/h/ecl.h
 lib/ecl/h/eval.h
-lib/ecl/h/number.h
-lib/ecl/h/page.h
-lib/ecl/h/unify.h
-lib/ecl/h/lwp.h
-lib/ecl/h/configpre.h
+lib/ecl/h/external.h
 lib/ecl/h/gc.h
 lib/ecl/h/gc_config_macros.h
 lib/ecl/h/gc_local_alloc.h
 lib/ecl/h/gc_pthread_redirects.h
 lib/ecl/h/gc_typed.h
 lib/ecl/h/leak_detector.h
-lib/ecl/BUILD-STAMP
-lib/ecl/ecl_min
-lib/ecl/libecl.so
-lib/ecl/sockets.fas
-lib/ecl/asdf.fas
-lib/ecl/cmp.fas
-lib/ecl/dpp
+lib/ecl/h/lwp.h
+lib/ecl/h/number.h
+lib/ecl/h/object.h
+lib/ecl/h/page.h
+lib/ecl/h/stacks.h
+lib/ecl/h/unify.h
 lib/ecl/help.doc
-bin/ecl
-bin/ecl-config
-share/doc/ecl/Copyright
-share/doc/ecl/LGPL
+lib/ecl/libecl.so
+%%SOCKETS%%lib/ecl/sockets.fas
 @dirrm lib/ecl/h
 @dirrm lib/ecl
-@dirrm share/doc/ecl
Index: ecl/files/patch-src__doc__Makefile.in
===================================================================
RCS file: ecl/files/patch-src__doc__Makefile.in
diff -N ecl/files/patch-src__doc__Makefile.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ecl/files/patch-src__doc__Makefile.in	25 Jun 2006 03:49:45 -0000
@@ -0,0 +1,23 @@
+--- ./src/doc/Makefile.in.orig	Fri Aug 12 13:26:42 2005
++++ ./src/doc/Makefile.in	Sat Jun 24 22:59:42 2006
+@@ -51,10 +51,6 @@
+ 	    $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) $$k; \
+ 	  fi; \
+ 	done
+-	$(mkinstalldirs) $(DESTDIR)$(docdir)
+-	for i in Copyright LGPL; do \
+-	  $(INSTALL_DATA) $(top_srcdir)/../$$i $(DESTDIR)$(docdir); \
+-	done
+ 	$(mkinstalldirs) $(DESTDIR)$(mandir)/man$(manext)
+ 	$(INSTALL_DATA) ecl.man $(DESTDIR)$(mandir)/man$(manext)/ecl.$(manext)
+ flatinstall: all $(HTML_FILES)
+@@ -72,9 +68,6 @@
+ 	  $(mkinstalldirs) $(DESTDIR)$(docdir)/ecldev; \
+ 	  for i in ecldev/*; do $(INSTALL_DATA) $$i $(DESTDIR)$(docdir)/ecldev/; done; \
+ 	fi
+-	for i in Copyright LGPL; do \
+-	  $(INSTALL_DATA) $(top_srcdir)/../$$i $(DESTDIR)$(docdir); \
+-	done
+ 	for i in *.html; do $(INSTALL_DATA) $$i $(DESTDIR)$(docdir)/; done
+ 
+ uninstall:
Index: ecl/files/patch-src__gc__include__private__gcconfig.h
===================================================================
RCS file: ecl/files/patch-src__gc__include__private__gcconfig.h
diff -N ecl/files/patch-src__gc__include__private__gcconfig.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ecl/files/patch-src__gc__include__private__gcconfig.h	25 Jun 2006 03:49:45 -0000
@@ -0,0 +1,95 @@
+--- ./src/gc/include/private/gcconfig.h.orig	Fri Aug 12 13:26:42 2005
++++ ./src/gc/include/private/gcconfig.h	Sat Jun 24 22:58:57 2006
+@@ -318,10 +318,6 @@
+ #   define OPENBSD
+ #   define mach_type_known
+ # endif
+-# if defined(FREEBSD) && (defined(i386) || defined(__i386__))
+-#   define I386
+-#   define mach_type_known
+-# endif
+ # if defined(__NetBSD__) && (defined(i386) || defined(__i386__))
+ #   define I386
+ #   define mach_type_known
+@@ -330,10 +326,24 @@
+ #    define X86_64
+ #    define mach_type_known
+ # endif
+-# if defined(FREEBSD) && defined(__sparc__)
+-#    define SPARC
+-#    define mach_type_known
+-#endif
++# if defined(FREEBSD)
++#   ifdef __i386__
++#     define I386
++#     define mach_type_known
++#   endif
++#   ifdef __amd64__
++#     define X86_64
++#     define mach_type_known
++#   endif
++#   ifdef __sparc64__
++#     define SPARC
++#     define mach_type_known
++#   endif
++#   ifdef __ia64__
++#     define IA64
++#     define mach_type_known
++#   endif
++# endif
+ # if defined(bsdi) && (defined(i386) || defined(__i386__))
+ #    define I386
+ #    define BSDI
+@@ -979,6 +989,9 @@
+ #	ifdef __ELF__
+ #	    define DYNAMIC_LOADING
+ #	endif
++#	ifndef GC_FREEBSD_THREADS
++#	    define MPROTECT_VDB
++#	endif
+ 	extern char etext[];
+ 	extern char edata[];
+ 	extern char end[];
+@@ -1215,15 +1228,15 @@
+ #   endif
+ #   ifdef FREEBSD
+ #	define OS_TYPE "FREEBSD"
+-#	ifndef GC_FREEBSD_THREADS
+-#	    define MPROTECT_VDB
+-#	endif
+ #	define SIG_SUSPEND SIGUSR1
+ #	define SIG_THR_RESTART SIGUSR2
+ #	define FREEBSD_STACKBOTTOM
+ #	ifdef __ELF__
+ #	    define DYNAMIC_LOADING
+ #	endif
++#	ifndef GC_FREEBSD_THREADS
++#	    define MPROTECT_VDB
++#	endif
+ 	extern char etext[];
+ 	extern char * GC_FreeBSDGetDataStart();
+ #	define DATASTART GC_FreeBSDGetDataStart(0x1000, &etext)
+@@ -1926,6 +1939,23 @@
+ #	    define PREFETCH(x) __builtin_prefetch((x), 0, 0)
+ #	    define PREFETCH_FOR_WRITE(x) __builtin_prefetch((x), 1)
+ #	endif
++#   endif
++#   ifdef FREEBSD
++#	define OS_TYPE "FREEBSD"
++#	define SIG_SUSPEND SIGUSR1
++#	define SIG_THR_RESTART SIGUSR2
++#	define FREEBSD_STACKBOTTOM
++#	ifdef __ELF__
++#	    define DYNAMIC_LOADING
++#	endif
++	extern char etext[];
++	extern char edata[];
++	extern char end[];
++#	define NEED_FIND_LIMIT
++#	define DATASTART ((ptr_t)(&etext))
++#	define DATAEND (GC_find_limit (DATASTART, TRUE))
++#	define DATASTART2 ((ptr_t)(&edata))
++#	define DATAEND2 ((ptr_t)(&end))
+ #   endif
+ #   ifdef NETBSD
+ #	define OS_TYPE "NETBSD"
--- ecl.diff ends here ---



>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1151207559.35750>