aboutsummaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
authorstefan <stefan@FreeBSD.org>2006-06-09 01:00:49 +0800
committerstefan <stefan@FreeBSD.org>2006-06-09 01:00:49 +0800
commitad6039d492ecea045fab8bb2a2b27518b1b1db69 (patch)
tree566bfba5f4d621bec44f0112355d5f478bc8fee2 /lang
parentd8fedf5ea3566de070b464a68f807879b9647765 (diff)
downloadfreebsd-ports-graphics-ad6039d492ecea045fab8bb2a2b27518b1b1db69.tar.gz
freebsd-ports-graphics-ad6039d492ecea045fab8bb2a2b27518b1b1db69.tar.zst
freebsd-ports-graphics-ad6039d492ecea045fab8bb2a2b27518b1b1db69.zip
- Fix web browser plugin.
- Fix/improve FFI support. - Pet portlint(1). PR: 94058 Submitted by: Takeshi MUTOH <mutoh@openedu.org> Approved by: maintainer arved (mentor)
Diffstat (limited to 'lang')
-rw-r--r--lang/squeak-dev/Makefile83
-rw-r--r--lang/squeak-dev/distinfo3
-rw-r--r--lang/squeak-dev/files/patch-platforms::unix::npsqueak::Makefile11
-rw-r--r--lang/squeak-dev/files/patch-platforms::unix::npsqueak::npsqueakregister.in13
-rw-r--r--lang/squeak-dev/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in11
-rw-r--r--lang/squeak-dev/files/patch-platforms::unix::plugins::SqueakFFIPrims::ffi-config10
-rw-r--r--lang/squeak-dev/pkg-plist40
-rw-r--r--lang/squeak/Makefile83
-rw-r--r--lang/squeak/distinfo3
-rw-r--r--lang/squeak/files/patch-platforms::unix::npsqueak::Makefile11
-rw-r--r--lang/squeak/files/patch-platforms::unix::npsqueak::npsqueakregister.in13
-rw-r--r--lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in11
-rw-r--r--lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::ffi-config10
-rw-r--r--lang/squeak/pkg-plist40
14 files changed, 254 insertions, 88 deletions
diff --git a/lang/squeak-dev/Makefile b/lang/squeak-dev/Makefile
index 68fcab2977d..0e20007ca41 100644
--- a/lang/squeak-dev/Makefile
+++ b/lang/squeak-dev/Makefile
@@ -5,42 +5,46 @@
# $FreeBSD$
#
-##################################################
PORTNAME= squeak
PORTVERSION= 3.6
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang
-VMVERSION= 3.6-3
-IMAGEVERSION= 3.6
-PATCHNUMBER= 5429
-
##################################################
MASTER_SITES= ftp://st.cs.uiuc.edu/Smalltalk/Squeak/3.6/ \
ftp://st.cs.uiuc.edu/Smalltalk/Squeak/3.6/unix-linux/ \
ftp://ftp.cs.uni-magdeburg.de/pub/Smalltalk/Smalltalk/Squeak/3.6/ \
ftp://ftp.cs.uni-magdeburg.de/pub/Smalltalk/Smalltalk/Squeak/3.6/unix-linux/ \
http://www-sor.inria.fr/~piumarta/squeak/unix/release/ \
-
+ http://www.squeakland.org/installers/
DISTFILES= Squeak-${VMVERSION}.src.tar.gz \
Squeak${IMAGEVERSION}-${PATCHNUMBER}-basic.zip \
Squeak${IMAGEVERSION}-${PATCHNUMBER}-full.zip \
+ SqueakPlugin.zip \
SqueakV3.sources.gz
-
-DIST_SUBDIR= squeak
EXTRACT_ONLY= Squeak-${VMVERSION}.src.tar.gz
##################################################
MAINTAINER= chris@chrisburkert.de
-COMMENT= Full Smalltalk 80 with portability to UNIX, Mac, and Windows.
+COMMENT= Full Smalltalk 80 with portability to UNIX, Mac, and Windows
+
+# Don't set USE_ZIP as this breaks EXTRACT_CMD.
+BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip
##################################################
-ONLY_FOR_ARCHS= i386
+VMVERSION= 3.6-3
+IMAGEVERSION= 3.6
+PATCHNUMBER= 5429
+
+##################################################
+DIST_SUBDIR= squeak
+ONLY_FOR_ARCHS= i386
MAN1= inisqueak.1 squeak.1
USE_GMAKE= yes
HAS_CONFIGURE= yes
-# Don't set USE_ZIP as this breaks EXTRACT_CMD.
-BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip
+# Plugin image must be writable, because of it copy to user's ~/.npsqueak/ and
+# be updated.
+SHAREMODE= 644
# shared Libaries are to be installed in:
LDCONFIG_DIRS= ${PREFIX}/share/squeak/${VMVERSION}
@@ -58,34 +62,46 @@ BUILD_WRKSRC= ${CONFIGURE_WRKSRC}
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=
##################################################
# Knobs
.if defined(WITH_RFB) && (${WITH_RFB}=="no")
-CONFIGURE_ARGS+= --without-rfb
+CONFIGURE_ARGS+= --without-rfb
.endif
.if defined(WITH_NPSQUEAK) && (${WITH_NPSQUEAK}=="no")
-CONFIGURE_ARGS+= --without-npsqueak
-PLIST_NPSQUEAK= "@comment feature not wanted - "
+CONFIGURE_ARGS+= --without-npsqueak
+PLIST_NPSQUEAK= "@comment feature not wanted - "
.else
+WITH_NPSQUEAK= yes
PLIST_NPSQUEAK=
.endif
.if defined(WITH_X) && (${WITH_X}=="no")
-CONFIGURE_ARGS+= --without-x
+CONFIGURE_ARGS+= --without-x
PLIST_X= "@comment feature not wanted - "
.else
-USE_XLIB= yes
-CONFIGURE_ARGS+= --with-x
+USE_XLIB= yes
+CONFIGURE_ARGS+= --with-x
PLIST_X=
.endif
.if defined(WITH_MPG_MMX) && (${WITH_MPG_MMX}=="yes")
-CONFIGURE_ARGS+= --enable-mpg-mmx
+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)
@@ -96,11 +112,12 @@ MAKE_ARGS+= CC="${CC}"
MAKE_ARGS+= CCFLAGS="${CFLAGS}"
.endif
-PLIST_SUB= IMAGEVERSION=${IMAGEVERSION}\
+PLIST_SUB= IMAGEVERSION=${IMAGEVERSION}\
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>
@@ -119,6 +136,8 @@ pre-everything::
@${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>"
@@ -128,6 +147,16 @@ pre-everything::
@${ECHO_MSG} " "
##################################################
+post-patch:
+ ${REINPLACE_CMD} \
+ -e "s,%%LOCALBASE%%,${LOCALBASE},g" \
+ -e "s,%%X11BASE%%,${X11BASE},g" \
+ ${WRKSRC}/platforms/unix/npsqueak/npsqueakregister.in \
+ ${WRKSRC}/platforms/unix/npsqueak/Makefile
+# 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 && \
@@ -144,12 +173,16 @@ post-configure:
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/)
.endfor
+.if defined(WITH_NPSQUEAK) && (${WITH_NPSQUEAK}=="yes")
+ (cd ${DISTDIR}/${DIST_SUBDIR} && ${UNZIP_CMD} -u SqueakPlugin.zip -d ${WRKDIR})
+ (cd ${WRKDIR} && ${INSTALL_DATA} SqueakPlugin.image ${PREFIX}/share/squeak/npsqueak.image)
+.endif
${SED} -e 's|VERSION=3.5-5180|VERSION=${IMAGEVERSION}-${PATCHNUMBER}|' \
-e 's|IMAGE=Squeak3.5-5180|IMAGE=Squeak${IMAGEVERSION}-${PATCHNUMBER}|' \
-e 's|CHANGES=Squeak3.5-5180|CHANGES=Squeak${IMAGEVERSION}-${PATCHNUMBER}|' \
diff --git a/lang/squeak-dev/distinfo b/lang/squeak-dev/distinfo
index a81460172ea..4945f081bdb 100644
--- a/lang/squeak-dev/distinfo
+++ b/lang/squeak-dev/distinfo
@@ -7,6 +7,9 @@ SIZE (squeak/Squeak3.6-5429-basic.zip) = 5667283
MD5 (squeak/Squeak3.6-5429-full.zip) = 9a35fa39f2338d26a721564472d4d933
SHA256 (squeak/Squeak3.6-5429-full.zip) = 63a4e8458b2f58b69e351c1c4161db1a1deed860d9bde40cbb414257cbab4ea2
SIZE (squeak/Squeak3.6-5429-full.zip) = 7837139
+MD5 (squeak/SqueakPlugin.zip) = 8a14a482fc0e601fc9c1e702ac52b760
+SHA256 (squeak/SqueakPlugin.zip) = 9442d8f95166db4874800caa21b88551906d9ad66cb9391151d0d24e5022b488
+SIZE (squeak/SqueakPlugin.zip) = 5732659
MD5 (squeak/SqueakV3.sources.gz) = 7dc6b3840e6bc1e5f81e3717fb46d2c3
SHA256 (squeak/SqueakV3.sources.gz) = 6d8262b61d5608de36eff5cb930ea8aa588b7402c0a963680b07ff664ba74d02
SIZE (squeak/SqueakV3.sources.gz) = 3476504
diff --git a/lang/squeak-dev/files/patch-platforms::unix::npsqueak::Makefile b/lang/squeak-dev/files/patch-platforms::unix::npsqueak::Makefile
new file mode 100644
index 00000000000..790c4001574
--- /dev/null
+++ b/lang/squeak-dev/files/patch-platforms::unix::npsqueak::Makefile
@@ -0,0 +1,11 @@
+--- platforms/unix/npsqueak/Makefile.org Tue Jan 31 10:36:12 2006
++++ platforms/unix/npsqueak/Makefile Tue Jan 31 10:37:14 2006
+@@ -20,7 +20,7 @@
+ ############ compile and link ###########################
+
+ npsqueak.so : npsqueak.o npunix.o
+- $(LD) $(LDFLAGS) npsqueak.o npunix.o -o npsqueak.so
++ $(LD) $(LDFLAGS) npsqueak.o npunix.o -o npsqueak.so -L%%X11BASE%%/lib -lXt -lX11
+
+ npsqueak.o: npsqueak.c ../config.h
+ $(CC) -c $(CFLAGS) -DVM_LIBDIR=\"$(VM_LIBDIR)\" $<
diff --git a/lang/squeak-dev/files/patch-platforms::unix::npsqueak::npsqueakregister.in b/lang/squeak-dev/files/patch-platforms::unix::npsqueak::npsqueakregister.in
new file mode 100644
index 00000000000..f2ecffdce47
--- /dev/null
+++ b/lang/squeak-dev/files/patch-platforms::unix::npsqueak::npsqueakregister.in
@@ -0,0 +1,13 @@
+--- platforms/unix/npsqueak/npsqueakregister.in.orig Mon Jan 30 19:47:54 2006
++++ platforms/unix/npsqueak/npsqueakregister.in Mon Jan 30 19:48:13 2006
+@@ -8,8 +8,8 @@
+ # Parameters: -u unregister
+
+ NPSQUEAK_SO=@NPSQUEAK_SO@
+-BROWSERS="netscape mozilla opera"
+-BROWSER_DIRS="/usr/local/lib /usr/lib"
++BROWSERS="netscape mozilla firefox opera seamonkey"
++BROWSER_DIRS="%%X11BASE%%/lib %%X11BASE%%/share %%LOCALBASE%%/lib /usr/lib"
+
+ ACTION=register
+
diff --git a/lang/squeak-dev/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in b/lang/squeak-dev/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in
new file mode 100644
index 00000000000..3c0fd9e7894
--- /dev/null
+++ b/lang/squeak-dev/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in
@@ -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 --git a/lang/squeak-dev/files/patch-platforms::unix::plugins::SqueakFFIPrims::ffi-config b/lang/squeak-dev/files/patch-platforms::unix::plugins::SqueakFFIPrims::ffi-config
new file mode 100644
index 00000000000..80ded9fb17c
--- /dev/null
+++ b/lang/squeak-dev/files/patch-platforms::unix::plugins::SqueakFFIPrims::ffi-config
@@ -0,0 +1,10 @@
+--- platforms/unix/plugins/SqueakFFIPrims/ffi-config.org Wed Apr 26 20:27:53 2006
++++ platforms/unix/plugins/SqueakFFIPrims/ffi-config Wed Apr 26 20:29:00 2006
+@@ -39,6 +39,7 @@
+
+ case ${abi} in
+ linux) abi=sysv;;
++ freebsd*) abi=sysv;;
+ darwin*) abi=darwin;;
+ *) abi=libffi; lib="-lffi";;
+ esac
diff --git a/lang/squeak-dev/pkg-plist b/lang/squeak-dev/pkg-plist
index a6eaaa3b0e8..cf50aaf441c 100644
--- a/lang/squeak-dev/pkg-plist
+++ b/lang/squeak-dev/pkg-plist
@@ -6,23 +6,25 @@ bin/squeak
%%DOCSDIR%%/README.Contributing.gz
%%DOCSDIR%%/README.Keyboard.gz
%%DOCSDIR%%/README.Sound.gz
-%%PLIST_X%%share/squeak/%%VMVERSION%%/B3DAcceleratorPlugin
-share/squeak/%%VMVERSION%%/UnixOSProcessPlugin
-%%PLIST_X%%share/squeak/%%VMVERSION%%/XDisplayControlPlugin
-%%PLIST_NPSQUEAK%%share/squeak/%%VMVERSION%%/npsqueak.so
-%%PLIST_NPSQUEAK%%share/squeak/%%VMVERSION%%/npsqueakrun
-share/squeak/%%VMVERSION%%/squeak
-%%PLIST_X%%share/squeak/%%VMVERSION%%/vm-display-X11
-share/squeak/%%VMVERSION%%/vm-display-null
-share/squeak/%%VMVERSION%%/vm-sound-OSS
-share/squeak/%%VMVERSION%%/vm-sound-null
-share/squeak/ReadMe.txt
-share/squeak/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-basic.changes.gz
-share/squeak/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-basic.image.gz
-share/squeak/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-full.changes.gz
-share/squeak/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-full.image.gz
-share/squeak/SqueakV3.sources
-%%PLIST_NPSQUEAK%%share/squeak/npsqueakregister
-@dirrm share/squeak/%%VMVERSION%%
-@dirrm share/squeak
+%%PLIST_X%%%%DATADIR%%/%%VMVERSION%%/B3DAcceleratorPlugin
+%%DATADIR%%/%%VMVERSION%%/UnixOSProcessPlugin
+%%PLIST_X%%%%DATADIR%%/%%VMVERSION%%/XDisplayControlPlugin
+%%PLIST_FFI%%%%DATADIR%%/%%VMVERSION%%/SqueakFFIPrims
+%%PLIST_NPSQUEAK%%%%DATADIR%%/npsqueak.image
+%%PLIST_NPSQUEAK%%%%DATADIR%%/%%VMVERSION%%/npsqueak.so
+%%PLIST_NPSQUEAK%%%%DATADIR%%/%%VMVERSION%%/npsqueakrun
+%%DATADIR%%/%%VMVERSION%%/squeak
+%%PLIST_X%%/%%DATADIR%%/%%VMVERSION%%/vm-display-X11
+%%DATADIR%%/%%VMVERSION%%/vm-display-null
+%%DATADIR%%/%%VMVERSION%%/vm-sound-OSS
+%%DATADIR%%/%%VMVERSION%%/vm-sound-null
+%%DATADIR%%/ReadMe.txt
+%%DATADIR%%/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-basic.changes.gz
+%%DATADIR%%/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-basic.image.gz
+%%DATADIR%%/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-full.changes.gz
+%%DATADIR%%/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-full.image.gz
+%%DATADIR%%/SqueakV3.sources
+%%PLIST_NPSQUEAK%%%%DATADIR%%/npsqueakregister
+@dirrm %%DATADIR%%/%%VMVERSION%%
+@dirrm %%DATADIR%%
@dirrm %%DOCSDIR%%
diff --git a/lang/squeak/Makefile b/lang/squeak/Makefile
index 68fcab2977d..0e20007ca41 100644
--- a/lang/squeak/Makefile
+++ b/lang/squeak/Makefile
@@ -5,42 +5,46 @@
# $FreeBSD$
#
-##################################################
PORTNAME= squeak
PORTVERSION= 3.6
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang
-VMVERSION= 3.6-3
-IMAGEVERSION= 3.6
-PATCHNUMBER= 5429
-
##################################################
MASTER_SITES= ftp://st.cs.uiuc.edu/Smalltalk/Squeak/3.6/ \
ftp://st.cs.uiuc.edu/Smalltalk/Squeak/3.6/unix-linux/ \
ftp://ftp.cs.uni-magdeburg.de/pub/Smalltalk/Smalltalk/Squeak/3.6/ \
ftp://ftp.cs.uni-magdeburg.de/pub/Smalltalk/Smalltalk/Squeak/3.6/unix-linux/ \
http://www-sor.inria.fr/~piumarta/squeak/unix/release/ \
-
+ http://www.squeakland.org/installers/
DISTFILES= Squeak-${VMVERSION}.src.tar.gz \
Squeak${IMAGEVERSION}-${PATCHNUMBER}-basic.zip \
Squeak${IMAGEVERSION}-${PATCHNUMBER}-full.zip \
+ SqueakPlugin.zip \
SqueakV3.sources.gz
-
-DIST_SUBDIR= squeak
EXTRACT_ONLY= Squeak-${VMVERSION}.src.tar.gz
##################################################
MAINTAINER= chris@chrisburkert.de
-COMMENT= Full Smalltalk 80 with portability to UNIX, Mac, and Windows.
+COMMENT= Full Smalltalk 80 with portability to UNIX, Mac, and Windows
+
+# Don't set USE_ZIP as this breaks EXTRACT_CMD.
+BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip
##################################################
-ONLY_FOR_ARCHS= i386
+VMVERSION= 3.6-3
+IMAGEVERSION= 3.6
+PATCHNUMBER= 5429
+
+##################################################
+DIST_SUBDIR= squeak
+ONLY_FOR_ARCHS= i386
MAN1= inisqueak.1 squeak.1
USE_GMAKE= yes
HAS_CONFIGURE= yes
-# Don't set USE_ZIP as this breaks EXTRACT_CMD.
-BUILD_DEPENDS= unzip:${PORTSDIR}/archivers/unzip
+# Plugin image must be writable, because of it copy to user's ~/.npsqueak/ and
+# be updated.
+SHAREMODE= 644
# shared Libaries are to be installed in:
LDCONFIG_DIRS= ${PREFIX}/share/squeak/${VMVERSION}
@@ -58,34 +62,46 @@ BUILD_WRKSRC= ${CONFIGURE_WRKSRC}
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=
##################################################
# Knobs
.if defined(WITH_RFB) && (${WITH_RFB}=="no")
-CONFIGURE_ARGS+= --without-rfb
+CONFIGURE_ARGS+= --without-rfb
.endif
.if defined(WITH_NPSQUEAK) && (${WITH_NPSQUEAK}=="no")
-CONFIGURE_ARGS+= --without-npsqueak
-PLIST_NPSQUEAK= "@comment feature not wanted - "
+CONFIGURE_ARGS+= --without-npsqueak
+PLIST_NPSQUEAK= "@comment feature not wanted - "
.else
+WITH_NPSQUEAK= yes
PLIST_NPSQUEAK=
.endif
.if defined(WITH_X) && (${WITH_X}=="no")
-CONFIGURE_ARGS+= --without-x
+CONFIGURE_ARGS+= --without-x
PLIST_X= "@comment feature not wanted - "
.else
-USE_XLIB= yes
-CONFIGURE_ARGS+= --with-x
+USE_XLIB= yes
+CONFIGURE_ARGS+= --with-x
PLIST_X=
.endif
.if defined(WITH_MPG_MMX) && (${WITH_MPG_MMX}=="yes")
-CONFIGURE_ARGS+= --enable-mpg-mmx
+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)
@@ -96,11 +112,12 @@ MAKE_ARGS+= CC="${CC}"
MAKE_ARGS+= CCFLAGS="${CFLAGS}"
.endif
-PLIST_SUB= IMAGEVERSION=${IMAGEVERSION}\
+PLIST_SUB= IMAGEVERSION=${IMAGEVERSION}\
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>
@@ -119,6 +136,8 @@ pre-everything::
@${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>"
@@ -128,6 +147,16 @@ pre-everything::
@${ECHO_MSG} " "
##################################################
+post-patch:
+ ${REINPLACE_CMD} \
+ -e "s,%%LOCALBASE%%,${LOCALBASE},g" \
+ -e "s,%%X11BASE%%,${X11BASE},g" \
+ ${WRKSRC}/platforms/unix/npsqueak/npsqueakregister.in \
+ ${WRKSRC}/platforms/unix/npsqueak/Makefile
+# 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 && \
@@ -144,12 +173,16 @@ post-configure:
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/)
.endfor
+.if defined(WITH_NPSQUEAK) && (${WITH_NPSQUEAK}=="yes")
+ (cd ${DISTDIR}/${DIST_SUBDIR} && ${UNZIP_CMD} -u SqueakPlugin.zip -d ${WRKDIR})
+ (cd ${WRKDIR} && ${INSTALL_DATA} SqueakPlugin.image ${PREFIX}/share/squeak/npsqueak.image)
+.endif
${SED} -e 's|VERSION=3.5-5180|VERSION=${IMAGEVERSION}-${PATCHNUMBER}|' \
-e 's|IMAGE=Squeak3.5-5180|IMAGE=Squeak${IMAGEVERSION}-${PATCHNUMBER}|' \
-e 's|CHANGES=Squeak3.5-5180|CHANGES=Squeak${IMAGEVERSION}-${PATCHNUMBER}|' \
diff --git a/lang/squeak/distinfo b/lang/squeak/distinfo
index a81460172ea..4945f081bdb 100644
--- a/lang/squeak/distinfo
+++ b/lang/squeak/distinfo
@@ -7,6 +7,9 @@ SIZE (squeak/Squeak3.6-5429-basic.zip) = 5667283
MD5 (squeak/Squeak3.6-5429-full.zip) = 9a35fa39f2338d26a721564472d4d933
SHA256 (squeak/Squeak3.6-5429-full.zip) = 63a4e8458b2f58b69e351c1c4161db1a1deed860d9bde40cbb414257cbab4ea2
SIZE (squeak/Squeak3.6-5429-full.zip) = 7837139
+MD5 (squeak/SqueakPlugin.zip) = 8a14a482fc0e601fc9c1e702ac52b760
+SHA256 (squeak/SqueakPlugin.zip) = 9442d8f95166db4874800caa21b88551906d9ad66cb9391151d0d24e5022b488
+SIZE (squeak/SqueakPlugin.zip) = 5732659
MD5 (squeak/SqueakV3.sources.gz) = 7dc6b3840e6bc1e5f81e3717fb46d2c3
SHA256 (squeak/SqueakV3.sources.gz) = 6d8262b61d5608de36eff5cb930ea8aa588b7402c0a963680b07ff664ba74d02
SIZE (squeak/SqueakV3.sources.gz) = 3476504
diff --git a/lang/squeak/files/patch-platforms::unix::npsqueak::Makefile b/lang/squeak/files/patch-platforms::unix::npsqueak::Makefile
new file mode 100644
index 00000000000..790c4001574
--- /dev/null
+++ b/lang/squeak/files/patch-platforms::unix::npsqueak::Makefile
@@ -0,0 +1,11 @@
+--- platforms/unix/npsqueak/Makefile.org Tue Jan 31 10:36:12 2006
++++ platforms/unix/npsqueak/Makefile Tue Jan 31 10:37:14 2006
+@@ -20,7 +20,7 @@
+ ############ compile and link ###########################
+
+ npsqueak.so : npsqueak.o npunix.o
+- $(LD) $(LDFLAGS) npsqueak.o npunix.o -o npsqueak.so
++ $(LD) $(LDFLAGS) npsqueak.o npunix.o -o npsqueak.so -L%%X11BASE%%/lib -lXt -lX11
+
+ npsqueak.o: npsqueak.c ../config.h
+ $(CC) -c $(CFLAGS) -DVM_LIBDIR=\"$(VM_LIBDIR)\" $<
diff --git a/lang/squeak/files/patch-platforms::unix::npsqueak::npsqueakregister.in b/lang/squeak/files/patch-platforms::unix::npsqueak::npsqueakregister.in
new file mode 100644
index 00000000000..f2ecffdce47
--- /dev/null
+++ b/lang/squeak/files/patch-platforms::unix::npsqueak::npsqueakregister.in
@@ -0,0 +1,13 @@
+--- platforms/unix/npsqueak/npsqueakregister.in.orig Mon Jan 30 19:47:54 2006
++++ platforms/unix/npsqueak/npsqueakregister.in Mon Jan 30 19:48:13 2006
+@@ -8,8 +8,8 @@
+ # Parameters: -u unregister
+
+ NPSQUEAK_SO=@NPSQUEAK_SO@
+-BROWSERS="netscape mozilla opera"
+-BROWSER_DIRS="/usr/local/lib /usr/lib"
++BROWSERS="netscape mozilla firefox opera seamonkey"
++BROWSER_DIRS="%%X11BASE%%/lib %%X11BASE%%/share %%LOCALBASE%%/lib /usr/lib"
+
+ ACTION=register
+
diff --git a/lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in b/lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in
new file mode 100644
index 00000000000..3c0fd9e7894
--- /dev/null
+++ b/lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::Makefile.in
@@ -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 --git a/lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::ffi-config b/lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::ffi-config
new file mode 100644
index 00000000000..80ded9fb17c
--- /dev/null
+++ b/lang/squeak/files/patch-platforms::unix::plugins::SqueakFFIPrims::ffi-config
@@ -0,0 +1,10 @@
+--- platforms/unix/plugins/SqueakFFIPrims/ffi-config.org Wed Apr 26 20:27:53 2006
++++ platforms/unix/plugins/SqueakFFIPrims/ffi-config Wed Apr 26 20:29:00 2006
+@@ -39,6 +39,7 @@
+
+ case ${abi} in
+ linux) abi=sysv;;
++ freebsd*) abi=sysv;;
+ darwin*) abi=darwin;;
+ *) abi=libffi; lib="-lffi";;
+ esac
diff --git a/lang/squeak/pkg-plist b/lang/squeak/pkg-plist
index a6eaaa3b0e8..cf50aaf441c 100644
--- a/lang/squeak/pkg-plist
+++ b/lang/squeak/pkg-plist
@@ -6,23 +6,25 @@ bin/squeak
%%DOCSDIR%%/README.Contributing.gz
%%DOCSDIR%%/README.Keyboard.gz
%%DOCSDIR%%/README.Sound.gz
-%%PLIST_X%%share/squeak/%%VMVERSION%%/B3DAcceleratorPlugin
-share/squeak/%%VMVERSION%%/UnixOSProcessPlugin
-%%PLIST_X%%share/squeak/%%VMVERSION%%/XDisplayControlPlugin
-%%PLIST_NPSQUEAK%%share/squeak/%%VMVERSION%%/npsqueak.so
-%%PLIST_NPSQUEAK%%share/squeak/%%VMVERSION%%/npsqueakrun
-share/squeak/%%VMVERSION%%/squeak
-%%PLIST_X%%share/squeak/%%VMVERSION%%/vm-display-X11
-share/squeak/%%VMVERSION%%/vm-display-null
-share/squeak/%%VMVERSION%%/vm-sound-OSS
-share/squeak/%%VMVERSION%%/vm-sound-null
-share/squeak/ReadMe.txt
-share/squeak/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-basic.changes.gz
-share/squeak/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-basic.image.gz
-share/squeak/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-full.changes.gz
-share/squeak/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-full.image.gz
-share/squeak/SqueakV3.sources
-%%PLIST_NPSQUEAK%%share/squeak/npsqueakregister
-@dirrm share/squeak/%%VMVERSION%%
-@dirrm share/squeak
+%%PLIST_X%%%%DATADIR%%/%%VMVERSION%%/B3DAcceleratorPlugin
+%%DATADIR%%/%%VMVERSION%%/UnixOSProcessPlugin
+%%PLIST_X%%%%DATADIR%%/%%VMVERSION%%/XDisplayControlPlugin
+%%PLIST_FFI%%%%DATADIR%%/%%VMVERSION%%/SqueakFFIPrims
+%%PLIST_NPSQUEAK%%%%DATADIR%%/npsqueak.image
+%%PLIST_NPSQUEAK%%%%DATADIR%%/%%VMVERSION%%/npsqueak.so
+%%PLIST_NPSQUEAK%%%%DATADIR%%/%%VMVERSION%%/npsqueakrun
+%%DATADIR%%/%%VMVERSION%%/squeak
+%%PLIST_X%%/%%DATADIR%%/%%VMVERSION%%/vm-display-X11
+%%DATADIR%%/%%VMVERSION%%/vm-display-null
+%%DATADIR%%/%%VMVERSION%%/vm-sound-OSS
+%%DATADIR%%/%%VMVERSION%%/vm-sound-null
+%%DATADIR%%/ReadMe.txt
+%%DATADIR%%/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-basic.changes.gz
+%%DATADIR%%/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-basic.image.gz
+%%DATADIR%%/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-full.changes.gz
+%%DATADIR%%/Squeak%%IMAGEVERSION%%-%%PATCHNUMBER%%-full.image.gz
+%%DATADIR%%/SqueakV3.sources
+%%PLIST_NPSQUEAK%%%%DATADIR%%/npsqueakregister
+@dirrm %%DATADIR%%/%%VMVERSION%%
+@dirrm %%DATADIR%%
@dirrm %%DOCSDIR%%