Date: Sat, 04 Mar 2006 17:04:25 +0900 From: Takeshi MUTOH <mutoh@openedu.org> To: FreeBSD-gnats-submit@FreeBSD.org Cc: chris@chrisburkert.de, mutoh@openedu.org Subject: ports/94058: [Patch] lang/squeak add FFI plugin support Message-ID: <dd7j7a7i0m.wl%mutoh@openedu.org> Resent-Message-ID: <200603040810.k248A5LH099847@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 94058 >Category: ports >Synopsis: Add FFI support for lang/squeak >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Mar 04 08:10:04 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Takeshi MUTOH <mutoh@openedu.org> >Release: FreeBSD 6.0-STABLE i386 >Organization: 610t >Environment: FreeBSD mutoh.dyndns.org 6.0-STABLE FreeBSD 6.0-STABLE #6: Fri Jan 27 07:50:53 JST 2006 root@mutoh.dyndns.org:/usr/obj/usr/src/sys/SMP+NAT i386 >Description: Currently, lang/squeak FFI plugin (See http://minnow.cc.gatech.edu/squeak/1414) support works not well. If you has already install devel/libffi before installing lang/squeak, FFI support is automatically activated. But pkg-plist is not care this situation, so you can't deinstall cleanly. Furthermore, configure script can't link libffi automatically, FFI plugin can't work well. >How-To-Repeat: Install devel/libffi before installing lang/squeak. >Fix: Plese apply patch below. Some portlint errors are reduced. diff -ruN /usr/ports/lang/squeak/Makefile squeak/Makefile --- /usr/ports/lang/squeak/Makefile Mon Nov 29 10:25:32 2004 +++ squeak/Makefile Sat Mar 4 15:40:53 2006 @@ -37,7 +37,6 @@ ONLY_FOR_ARCHS= i386 MAN1= inisqueak.1 squeak.1 USE_GMAKE= yes -USE_REINPLACE= yes HAS_CONFIGURE= yes # Don't set USE_ZIP as this breaks EXTRACT_CMD. @@ -59,7 +58,8 @@ INSTALL_WRKSRC= ${CONFIGURE_WRKSRC} CONFIGURE_SCRIPT= ../platforms/unix/config/configure CONFIGURE_ARGS+= --libdir=${PREFIX}/share \ - --without-quartz + --without-quartz \ + LDFLAGS="-L${LOCALBASE}/lib" CPPFLAGS="-I${LOCALBASE}/include" # don't pass "-s" to install to avoid trying to strip a shell script CONFIGURE_ENV= @@ -89,6 +89,15 @@ CONFIGURE_ARGS+= --enable-mpg-mmx .endif +.if defined(WITH_FFI) && (${WITH_FFI}=="yes") +LIB_DEPENDS+= ffi.2:${PORTSDIR}/devel/libffi +PLIST_FFI= +EXT_PLUGINS+= SqueakFFIPrims +.else +CONFIGURE_ARGS+= --without-ffi +PLIST_FFI= "@comment feature not wanted - " +.endif + .ifdef (CC) MAKE_ARGS+= CC="${CC}" .endif @@ -101,7 +110,8 @@ PATCHNUMBER=${PATCHNUMBER}\ VMVERSION=${VMVERSION}\ PLIST_NPSQUEAK=${PLIST_NPSQUEAK}\ - PLIST_X=${PLIST_X} + PLIST_X=${PLIST_X}\ + PLIST_FFI=${PLIST_FFI} .include <bsd.port.pre.mk> @@ -120,6 +130,8 @@ @${ECHO_MSG} " ^^^ (default: enabled)" @${ECHO_MSG} " WITH_X= [yes|no] X Windows support" @${ECHO_MSG} " ^^^ (default: enabled)" + @${ECHO_MSG} " WITH_FFI= [yes|no] FFI support" + @${ECHO_MSG} " ^^ (default: disabled)" @${ECHO_MSG} " " @${ECHO_MSG} " additional make arguments" @${ECHO_MSG} " CC=<aString>" @@ -129,10 +141,13 @@ @${ECHO_MSG} " " ################################################## +post-patch: +# Fix external plugins + @${ECHO_MSG} "EXTERNAL_PLUGINS = B3DAcceleratorPlugin UnixOSProcessPlugin XDisplayControlPlugin ${EXT_PLUGINS}" > ${WRKSRC}/src/plugins.ext + +################################################## pre-configure: @${MKDIR} ${CONFIGURE_WRKSRC} - @cd ${WRKSRC}/platforms/unix/npsqueak && \ - ${REINPLACE_CMD} -e 's|include|include -I${X11BASE}/include|g' Makefile ################################################## post-configure: @@ -145,8 +160,8 @@ post-install: (cd ${DISTDIR}/${DIST_SUBDIR} && ${INSTALL_DATA} SqueakV3.sources.gz ${PREFIX}/share/squeak/) (cd ${PREFIX}/share/squeak && ${EXTRACT_CMD} -d SqueakV3.sources.gz) - (cd ${DISTDIR}/${DIST_SUBDIR} && unzip -u Squeak${IMAGEVERSION}-${PATCHNUMBER}-basic.zip -d ${WRKDIR}) - (cd ${DISTDIR}/${DIST_SUBDIR} && unzip -u Squeak${IMAGEVERSION}-${PATCHNUMBER}-full.zip -d ${WRKDIR}) + (cd ${DISTDIR}/${DIST_SUBDIR} && ${UNZIP_CMD} -u Squeak${IMAGEVERSION}-${PATCHNUMBER}-basic.zip -d ${WRKDIR}) + (cd ${DISTDIR}/${DIST_SUBDIR} && ${UNZIP_CMD} -u Squeak${IMAGEVERSION}-${PATCHNUMBER}-full.zip -d ${WRKDIR}) (cd ${WRKDIR} && ${INSTALL_DATA} ReadMe.txt ${PREFIX}/share/squeak/) .for file in ${FILES_TO_GZIP} (cd ${WRKDIR} && ${GZIP_CMD} ${file} && ${INSTALL_DATA} ${file}.gz ${PREFIX}/share/squeak/) diff -ruN /usr/ports/lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in --- /usr/ports/lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in Thu Jan 1 09:00:00 1970 +++ squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in Sat Mar 4 14:58:46 2006 @@ -0,0 +1,11 @@ +--- platforms/unix/plugins/SqueakFFIPrims/Makefile.in.orig Sun Mar 20 05:38:18 2005 ++++ platforms/unix/plugins/SqueakFFIPrims/Makefile.in Sun Feb 26 00:08:03 2006 +@@ -14,7 +14,7 @@ + XINCLUDES = [includes] + + $(TARGET) : $(OBJS) Makefile +- $(LINK) $(TARGET) $(OBJS) ++ $(LINK) $(TARGET) $(OBJS) -lffi + $(RANLIB) $(TARGET) + + [make_targets] diff -ruN /usr/ports/lang/squeak/pkg-plist squeak/pkg-plist --- /usr/ports/lang/squeak/pkg-plist Sun Jan 8 03:37:39 2006 +++ squeak/pkg-plist Sat Mar 4 14:58:00 2006 @@ -9,6 +9,7 @@ %%PLIST_X%%share/squeak/%%VMVERSION%%/B3DAcceleratorPlugin share/squeak/%%VMVERSION%%/UnixOSProcessPlugin %%PLIST_X%%share/squeak/%%VMVERSION%%/XDisplayControlPlugin +%%PLIST_FFI%%share/squeak/%%VMVERSION%%/SqueakFFIPrims %%PLIST_NPSQUEAK%%share/squeak/%%VMVERSION%%/npsqueak.so %%PLIST_NPSQUEAK%%share/squeak/%%VMVERSION%%/npsqueakrun share/squeak/%%VMVERSION%%/squeak -- Takeshi MUTOH <mutoh@openedu.org> >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?dd7j7a7i0m.wl%mutoh>