# New ports collection makefile for: squeak # Date created: 12 October 2001 # Whom: roland.jesse@gmx.net # # $FreeBSD$ # PORTNAME= squeak PORTVERSION= 3.7 PORTREVISION= 1 CATEGORIES= lang ################################################## MASTER_SITES= http://www.squeakvm.org/unix/release/ \ http://ftp.squeak.org/${PORTVERSION}/ \ http://ftp.squeak.org/${PORTVERSION}/unix-linux/ \ ftp://st.cs.uiuc.edu/Smalltalk/Squeak/${PORTVERSION}/ \ ftp://st.cs.uiuc.edu/Smalltalk/Squeak/${PORTVERSION}/unix-linux/ \ ftp://ftp.cs.uni-magdeburg.de/pub/Smalltalk/Smalltalk/Squeak/${PORTVERSION}/ \ ftp://ftp.cs.uni-magdeburg.de/pub/Smalltalk/Smalltalk/Squeak/${PORTVERSION}/unix-linux/ \ http://www.squeakland.org/installers/ \ http://www.squeakland.jp/plugin/installers/ \ http://squeak.610t.org/patches/ DISTFILES= Squeak-${VMVERSION}.src.tar.gz \ Squeak${IMAGEVERSION}-${PATCHNUMBER}-basic.zip \ Squeak${IMAGEVERSION}-${PATCHNUMBER}-full.zip \ SqueakPlugin.zip \ SqueakV3.sources.gz \ ${XIM_PATCH} \ ${JAPANESE_PLUGIN_IMAGE} EXTRACT_ONLY= Squeak-${VMVERSION}.src.tar.gz ################################################## MAINTAINER= mutoh@openedu.org 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 LIB_DEPENDS= audio:${PORTSDIR}/audio/nas ################################################## VMVERSION= 3.7-7 IMAGEVERSION= 3.7 PATCHNUMBER= 5989 ################################################## OPTIONS+= MPG_MMX "MMX support (MPG plugin)" off OPTIONS+= NPSQUEAK "browser plugin support" on OPTIONS+= RFB "remote frame buffer support" on OPTIONS+= FFI "libffi support" off OPTIONS+= X "X Windows support" on OPTIONS+= XIM "XIM support (Implies X)" off .include ################################################## XIM_PATCH= SqueakImmX11Plugin3a.tar.gz PLUGIN_IMAGE= SqueakPlugin.zip JAPANESE_PLUGIN_IMAGE= SqueakPlugin2005J.zip ################################################## DIST_SUBDIR= squeak ONLY_FOR_ARCHS= i386 MAN1= inisqueak.1 squeak.1 USE_GMAKE= yes GNU_CONFIGURE= yes # 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} FILES_TO_GZIP= Squeak${IMAGEVERSION}-${PATCHNUMBER}-basic.image \ Squeak${IMAGEVERSION}-${PATCHNUMBER}-basic.changes \ Squeak${IMAGEVERSION}-${PATCHNUMBER}-full.image \ Squeak${IMAGEVERSION}-${PATCHNUMBER}-full.changes ################################################## # Configure and Build WRKSRC= ${WRKDIR}/Squeak-${VMVERSION} CONFIGURE_WRKSRC= ${WRKSRC}/build BUILD_WRKSRC= ${CONFIGURE_WRKSRC} INSTALL_WRKSRC= ${CONFIGURE_WRKSRC} CONFIGURE_SCRIPT= ../platforms/unix/config/configure CONFIGURE_ARGS+= --libdir=${PREFIX}/share \ --without-quartz \ LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib" \ CPPFLAGS="-I${LOCALBASE}/include -I${X11BASE}/include" # don't pass "-s" to install to avoid trying to strip a shell script CONFIGURE_ENV= ################################################## # Knobs .if defined(WITHOUT_RFB) CONFIGURE_ARGS+= --without-rfb .endif .if defined(WITHOUT_NPSQUEAK) CONFIGURE_ARGS+= --without-npsqueak PLIST_NPSQUEAK= "@comment feature not wanted - " .else WITH_NPSQUEAK= yes PLIST_NPSQUEAK= FILES_TO_GZIP+= SqueakPlugin.image RUN_DEPENDS+= bash:${PORTSDIR}/shells/bash .endif .if defined(WITHOUT_X) CONFIGURE_ARGS+= --without-x PLIST_X= "@comment feature not wanted - " .else USE_XLIB= yes USE_GL= yes CONFIGURE_ARGS+= --with-x PLIST_X= .endif .if defined(WITH_MPG_MMX) CONFIGURE_ARGS+= --enable-mpg-mmx .endif .if defined(WITH_FFI) LIB_DEPENDS+= ffi.2:${PORTSDIR}/devel/libffi PLIST_FFI= EXT_PLUGINS+= SqueakFFIPrims .else CONFIGURE_ARGS+= --without-ffi PLIST_FFI= "@comment feature not wanted - " .endif .if defined(WITH_XIM) PLIST_XIM= WITH_X= yes USE_ICONV= yes PLUGIN_IMAGE= ${JAPANESE_PLUGIN_IMAGE} EXT_PLUGINS+= ImmX11Plugin .else PLIST_XIM= "@comment feature not wanted - " .endif .ifdef (CC) MAKE_ARGS+= CC="${CC}" .endif .ifdef (CFLAGS) MAKE_ARGS+= CCFLAGS="${CFLAGS}" .endif SUB_FILES= pkg-message SUB_LIST= VMVERSION=${VMVERSION} PLIST_SUB= IMAGEVERSION=${IMAGEVERSION}\ PATCHNUMBER=${PATCHNUMBER}\ VMVERSION=${VMVERSION}\ PLIST_NPSQUEAK=${PLIST_NPSQUEAK}\ PLIST_X=${PLIST_X} \ PLIST_FFI=${PLIST_FFI} \ PLIST_XIM=${PLIST_XIM} ################################################## post-patch: @${REINPLACE_CMD} \ -e "s,%%LOCALBASE%%,${LOCALBASE},g" \ -e "s,%%X11BASE%%,${X11BASE},g" \ ${WRKSRC}/platforms/unix/npsqueak/npsqueakregister.in \ ${WRKSRC}/platforms/unix/npsqueak/npsqueakrun.in \ ${WRKSRC}/platforms/unix/npsqueak/Makefile @${REINPLACE_CMD} -e "s,echo aout,echo elf," ${WRKSRC}/platforms/unix/config/configure .if defined(WITH_XIM) @cd ${WRKSRC} && \ ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/${XIM_PATCH} ${EXTRACT_AFTER_ARGS} # Skip first patch for plugins.ext because patch place has changed. @cd ${WRKSRC} && \ ${PATCH} -S + -p0 < ImmX11.patch .endif # Fix external plugins @${ECHO_MSG} "EXTERNAL_PLUGINS = B3DAcceleratorPlugin Squeak3D XDisplayControlPlugin ${EXT_PLUGINS}" > ${WRKSRC}/platforms/unix/src/plugins.ext ################################################## pre-configure: @${MKDIR} ${CONFIGURE_WRKSRC} ################################################## post-configure: @${REINPLACE_CMD} -E \ -e s'|^(prefix).*$$|\1=${PREFIX}|' \ -e s'|^(docdir).*$$|\1=${DOCSDIR}|' \ ${CONFIGURE_WRKSRC}/Makefile ################################################## 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_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/) .if defined(WITH_NPSQUEAK) (cd ${DISTDIR}/${DIST_SUBDIR} && ${UNZIP_CMD} -u ${PLUGIN_IMAGE} -d ${WRKDIR}) .endif .for file in ${FILES_TO_GZIP} (cd ${WRKDIR} && ${GZIP_CMD} ${file} && ${INSTALL_DATA} ${file}.gz ${PREFIX}/share/squeak/) .endfor ${INSTALL_SCRIPT} ${WRKSRC}/build/inisqueak ${PREFIX}/bin/inisqueak ${CHMOD} 755 ${PREFIX}/bin/inisqueak @${CAT} ${PKGMESSAGE} .include