diff --git a/lang/jimtcl/Makefile b/lang/jimtcl/Makefile new file mode 100644 index 00000000000..7a39a53524e --- /dev/null +++ b/lang/jimtcl/Makefile @@ -0,0 +1,44 @@ +# $OpenBSD: Makefile,v 1.1.1.1 2011/09/16 20:07:35 jasper Exp $ + +SHARED_ONLY= Yes + +COMMENT= small footprint implementation of Tcl + +DISTNAME= jimtcl-0.72 +SHARED_LIBS= jim 0.0 +CATEGORIES= lang devel + +HOMEPAGE= http://jim.berlios.de/ + +# BSD +PERMIT_PACKAGE_CDROM= Yes +PERMIT_PACKAGE_FTP= Yes +PERMIT_DISTFILES_CDROM= Yes +PERMIT_DISTFILES_FTP= Yes + +# Upstream has no real releases, so it's a git checkout as of Sep 15 2011. +MASTER_SITES= http://distfiles.nl/ + +WANTLIB= c m + +MODULES= lang/tcl + +RUN_DEPENDS= ${MODTCL_RUN_DEPENDS} +BUILD_DEPENDS= ${MODTCL_BUILD_DEPENDS} \ + textproc/asciidoc +REGRESS_DEPENDS= devel/gmake + +MAKE_ENV+= SONAME_MAJOR=${LIBjim_VERSION:R} \ + SONAME_MINOR=${LIBjim_VERSION:E} + +CONFIGURE_STYLE= simple +CONFIGURE_ARGS+= ${CONFIGURE_SHARED} \ + --with-ext="nvp" \ + --full # ipv6, math, utf8, binary, oo, tree + +# Only regress requires gmake, so cheat a bit here instead of forcing it +# as a build dependency. +do-regress: + cd ${WRKSRC} && ${SET_ENV} ${MAKE_ENV} ${LOCALBASE}/bin/gmake test + +.include diff --git a/lang/jimtcl/distinfo b/lang/jimtcl/distinfo new file mode 100644 index 00000000000..1838f402bfc --- /dev/null +++ b/lang/jimtcl/distinfo @@ -0,0 +1,5 @@ +MD5 (jimtcl-0.72.tar.gz) = YRqSw7tLJ5i9iW1ETR5L7g== +RMD160 (jimtcl-0.72.tar.gz) = FkrXGIuqLBTAp+mkmBc+wIMPGmc= +SHA1 (jimtcl-0.72.tar.gz) = zme573nLNYARIEsrOSk7gnk6HRs= +SHA256 (jimtcl-0.72.tar.gz) = 9Reu2rthItSHen/i59lkDMbx+/WYciickygxPCtX6tA= +SIZE (jimtcl-0.72.tar.gz) = 844591 diff --git a/lang/jimtcl/patches/patch-Makefile_in b/lang/jimtcl/patches/patch-Makefile_in new file mode 100644 index 00000000000..442db4b63f6 --- /dev/null +++ b/lang/jimtcl/patches/patch-Makefile_in @@ -0,0 +1,47 @@ +$OpenBSD: patch-Makefile_in,v 1.1.1.1 2011/09/16 20:07:35 jasper Exp $ + +- Install docs into the right directory. +- Add shared library versioning to libjim. + +--- Makefile.in.orig Thu Sep 15 17:33:15 2011 ++++ Makefile.in Fri Sep 16 17:41:20 2011 +@@ -29,6 +29,8 @@ VPATH := @srcdir@ + @if JIM_STATICLIB + LIBJIM := libjim.a + @else ++SONAME_MAJOR?=0 ++SONAME_MINOR?=0 + LIBJIM := libjim.so + SH_LIBJIM := $(LIBJIM) + CC += $(SH_CFLAGS) +@@ -63,15 +65,14 @@ $(JIMSH): $(LIBJIM) jimsh.o initjimsh.o + + @if JIM_INSTALL + install: all docs @TCL_EXTS@ install-exec +- mkdir -p $(DESTDIR)$(prefix)/lib/jim +- cp $(LIBJIM) $(DESTDIR)$(prefix)/lib +- cp @srcdir@/README.extensions @C_EXT_SHOBJS@ @TCL_EXTS@ $(DESTDIR)$(prefix)/lib/jim ++ mkdir -p $(DESTDIR)$(prefix)/share/doc/jim ++ cp $(LIBJIM).$(SONAME_MAJOR).$(SONAME_MINOR) $(DESTDIR)$(prefix)/lib ++ cp @srcdir@/README.extensions @C_EXT_SHOBJS@ @TCL_EXTS@ $(DESTDIR)$(prefix)/share/doc/jim/ + mkdir -p $(DESTDIR)$(prefix)/include + cp @srcdir@/jim.h @srcdir@/jim-eventloop.h @srcdir@/jim-nvp.h @srcdir@/jim-signal.h \ + @srcdir@/jim-subcmd.h @srcdir@/jim-win32compat.h $(DESTDIR)$(prefix)/include + cp jim-config.h $(DESTDIR)$(prefix)/include +- mkdir -p $(DESTDIR)$(prefix)/doc/jim +- cp Tcl.html $(DESTDIR)$(prefix)/doc/jim ++ cp Tcl.html $(DESTDIR)$(prefix)/share/doc/jim + + install-exec: all + mkdir -p $(DESTDIR)$(prefix)/bin +@@ -109,7 +110,9 @@ $(LIBJIM): $(OBJS) + $(RANLIB) $@ + @else + $(LIBJIM): $(OBJS) +- $(CC) $(CFLAGS) $(LDFLAGS) $(SH_LDFLAGS) -o $@ $(OBJS) $(LDLIBS) ++ $(CC) -shared -Wl,-soname -Wl,$@.$(SONAME_MAJOR) $(OBJS) $(SH_LDFLAGS) $(CFLAGS) $(LDLIBS) -o $@.$(SONAME_MAJOR).$(SONAME_MINOR) ++ ln -s $@.$(SONAME_MAJOR).$(SONAME_MINOR) $@.$(SONAME_MAJOR) ++ ln -s $@.$(SONAME_MAJOR).$(SONAME_MINOR) $@ + @endif + + # Note that $> $^ is for compatibility with both GNU make and BSD make diff --git a/lang/jimtcl/pkg/DESCR b/lang/jimtcl/pkg/DESCR new file mode 100644 index 00000000000..ad8c98b0dbd --- /dev/null +++ b/lang/jimtcl/pkg/DESCR @@ -0,0 +1,9 @@ +Jim is a small footprint implementation of the Tcl programming language +written from scratch. Currently Jim Tcl is very feature complete with an +extensive test suite. There are some Tcl commands and features which are +not implemented (and likely never will be), including namespaces, traces +and Tk. However Jim Tcl offers a number of both Tcl8.5 and Tcl8.6 +features ({*}, dict, lassign, tailcall and optional UTF-8 support) and +some unique features. These unique features include [lambda] with +garbage collection, a general GC/references system, arrays as syntax +sugar for [dict]tionaries, object-based I/O and more. diff --git a/lang/jimtcl/pkg/PLIST b/lang/jimtcl/pkg/PLIST new file mode 100644 index 00000000000..3e2256babef --- /dev/null +++ b/lang/jimtcl/pkg/PLIST @@ -0,0 +1,13 @@ +@comment $OpenBSD: PLIST,v 1.1.1.1 2011/09/16 20:07:35 jasper Exp $ +@bin bin/jimsh +include/jim-config.h +include/jim-eventloop.h +include/jim-nvp.h +include/jim-signal.h +include/jim-subcmd.h +include/jim-win32compat.h +include/jim.h +@lib lib/libjim.so.${LIBjim_VERSION} +share/doc/jim/ +share/doc/jim/README.extensions +share/doc/jim/Tcl.html