Ugh, I didn't realise there were \r and \n's in the patch. In case my client chomped it, I've attached it.
Signed-off-by: David Cooper <d...@kupesoft.com> On Wed, Mar 11, 2009 at 8:00 PM, Dave Cooper <d...@kupesoft.com> wrote: > Hi All, > > I've packaged up a very small implementation of scheme called > TinyScheme as well as an extension module called TSX (TinyScheme > Extensions). I'll try to package up a bit more up in the days to come > like a regex module and the ability to use scheme embedded in text > files with <? ?> tags or the like. I hope someone else finds this > useful. > > Thanks, > Dave > > --- > > Signed-off-by: David Cooper <d...@kupesoft.com> > > Index: packages/lang/tinyscheme/patches/01-dynload-path.patch > =================================================================== > --- packages/lang/tinyscheme/patches/01-dynload-path.patch (revision 0) > +++ packages/lang/tinyscheme/patches/01-dynload-path.patch (revision 0) > @@ -0,0 +1,19 @@ > +diff -ruN tinyscheme1.39.orig/dynload.c tinyscheme1.39/dynload.c > +--- tinyscheme1.39.orig/dynload.c 2004-06-07 09:56:52.000000000 -0400 > ++++ tinyscheme1.39/dynload.c 2009-03-11 18:27:59.000000000 -0400 > +@@ -122,8 +122,13 @@ > + return(retval); > > + } > > + > > +-static void make_filename(const char *name, char *filename) { > > +- strcpy(filename,name); > > ++static void make_filename(const char *name, char *filename) { > ++#ifdef ExtDir > ++ strcpy(filename,ExtDir); > ++ strcat(filename,name); > ++#else > > ++ strcpy(filename,name); > ++#endif > > + strcat(filename,SUFFIX); > > + } > > + > > Index: packages/lang/tinyscheme/Makefile > =================================================================== > --- packages/lang/tinyscheme/Makefile (revision 0) > +++ packages/lang/tinyscheme/Makefile (revision 0) > @@ -0,0 +1,68 @@ > +# > +# Copyright (C) 2009 David Cooper <d...@kupesoft.com> > +# Copyright (C) 2009 OpenWrt.org > +# > +# This is free software, licensed under the GNU General Public License v2. > +# See /LICENSE for more information. > +# > + > +include $(TOPDIR)/rules.mk > + > +PKG_NAME:=tinyscheme > +PKG_VERSION:=1.39 > +PKG_RELEASE:=1 > + > +PKG_SOURCE:=$(PKG_NAME)$(PKG_VERSION).zip > +PKG_SOURCE_URL:=...@sf/tinyscheme > +PKG_MD5SUM:=55523524236ba546fdaf5f6b96a49a2b > + > +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)$(PKG_VERSION) > + > +include $(INCLUDE_DIR)/package.mk > + > +define Package/tinyscheme > + SUBMENU:=TinyScheme > + SECTION:=lang > + CATEGORY:=Languages > + TITLE:=A minimal implementation of scheme > + URL:=http://tinyscheme.sourceforge.net/ > +endef > + > +define Package/tinyscheme/description > + TinyScheme is a lightweight Scheme interpreter that implements > + as large a subset of R5RS as was possible without getting very > + large and complicated. It is meant to be used as an embedded > + scripting interpreter for other programs. As such, it does not > + offer IDEs or extensive toolkits although it does sport a small > + top-level loop, included conditionally. As an embedded interpreter, > + it allows multiple interpreter states to coexist in the same > + program, without any interference between them. Programmatically, > + foreign functions in C can be added and values can be defined in > + the Scheme environment. Being a quite small program, it is easy > + to comprehend, get to grips with, and use. > +endef > + > +define Build/Compile > + $(MAKE) -C $(PKG_BUILD_DIR) \ > + CC="$(TARGET_CC) $(TARGET_CFLAGS)" \ > + FEATURES="-DUSE_DL=1 -DUSE_PLIST=1 \ > + -DInitFile=\"\\\"/usr/share/tinyscheme/init.scm\\\"\" > \ > + -DExtDir=\"\\\"/usr/lib/tinyscheme/\\\"\"" \ > + SYS_LIBS="-ldl -lm" \ > + scheme > +endef > + > +define Build/InstallDev > + mkdir -p $(1)/usr/include/tinyscheme > + $(CP) $(PKG_BUILD_DIR)/*.h $(1)/usr/include/tinyscheme > +endef > + > +define Package/tinyscheme/install > + $(INSTALL_DIR) $(1)/usr/bin > + $(INSTALL_BIN) $(PKG_BUILD_DIR)/scheme $(1)/usr/bin > + $(INSTALL_DIR) $(1)/usr/share/tinyscheme > + $(INSTALL_DATA) $(PKG_BUILD_DIR)/init.scm $(1)/usr/share/tinyscheme > +endef > + > +$(eval $(call BuildPackage,tinyscheme)) > + > Index: packages/lang/tinyscheme-tsx/patches/01-cross-compile.patch > =================================================================== > --- packages/lang/tinyscheme-tsx/patches/01-cross-compile.patch (revision 0) > +++ packages/lang/tinyscheme-tsx/patches/01-cross-compile.patch (revision 0) > @@ -0,0 +1,24 @@ > +diff -ruN tsx-1.1.orig/Makefile tsx-1.1/Makefile > +--- tsx-1.1.orig/Makefile 2002-04-09 04:37:57.000000000 -0400 > ++++ tsx-1.1/Makefile 2009-03-11 17:54:11.000000000 -0400 > +@@ -3,14 +3,15 @@ > + SCHEME_H_DIR=.. > + CC=gcc > + CFLAGS=-DUSE_DL=1 -I $(SCHEME_H_DIR) > ++FPIC=-fPIC > + > + tsx.so : tsx.c tsx.h Makefile > +- $(CC) -shared -Wall -fPIC $(CFLAGS) -o tsx.so $(DEBUG) tsx.c > +- strip tsx.so > +- ls -l tsx.so > ++ $(CC) -shared -Wall $(FPIC) $(CFLAGS) -o tsx.so $(DEBUG) tsx.c > ++# strip tsx.so > ++# ls -l tsx.so > + > + .PHONY : clean > + clean: > + rm -f *.o > + rm -f tsx.so > +- rm -f *~ > +\ No newline at end of file > ++ rm -f *~ > Index: packages/lang/tinyscheme-tsx/Makefile > =================================================================== > --- packages/lang/tinyscheme-tsx/Makefile (revision 0) > +++ packages/lang/tinyscheme-tsx/Makefile (revision 0) > @@ -0,0 +1,51 @@ > +# > +# Copyright (C) 2009 David Cooper <d...@kupesoft.com> > +# Copyright (C) 2009 OpenWrt.org > +# > +# This is free software, licensed under the GNU General Public License v2. > +# See /LICENSE for more information. > +# > + > +include $(TOPDIR)/rules.mk > + > +PKG_NAME:=tinyscheme-tsx > +PKG_VERSION:=1.1 > +PKG_RELEASE:=1 > + > +PKG_SOURCE:=tsx-$(PKG_VERSION).tgz > +PKG_SOURCE_URL:=http://heras-gilsanz.com/manuel/ > +PKG_MD5SUM:=34bb54737e8603ed981bd186121b1606 > + > +PKG_BUILD_DIR:=$(BUILD_DIR)/tsx-$(PKG_VERSION) > + > +include $(INCLUDE_DIR)/package.mk > + > +define Package/tinyscheme-tsx > + SUBMENU:=TinyScheme > + SECTION:=lang > + CATEGORY:=Languages > + TITLE:=Tinyscheme extensions (files, sockets, time, misc) > + URL:=http://heras-gilsanz.com/manuel/tsx.html > + DEPENDS:=+tinyscheme > +endef > + > +define Package/tinyscheme-tsx/description > + The Tinyscheme extensions (TSX) are a set of extensions for > + the TinyScheme implementation of the Scheme programming > + language. TSX provides support for operations with > + filesystem, sockets, date/time, and some miscellaneous ones. > +endef > + > +define Build/Compile > + $(MAKE) -C $(PKG_BUILD_DIR) \ > + CC="$(TARGET_CC)" FPIC="$(FPIC)" CFLAGS="$(TARGET_CFLAGS) \ > + -DUSE_DL=1 -I $(STAGING_DIR)/usr/include/tinyscheme" > +endef > + > +define Package/tinyscheme-tsx/install > + $(INSTALL_DIR) $(1)/usr/lib/tinyscheme > + $(INSTALL_DATA) $(PKG_BUILD_DIR)/tsx.so $(1)/usr/lib/tinyscheme > +endef > + > +$(eval $(call BuildPackage,tinyscheme-tsx)) > + >
Index: packages/lang/tinyscheme/patches/01-dynload-path.patch =================================================================== --- packages/lang/tinyscheme/patches/01-dynload-path.patch (revision 0) +++ packages/lang/tinyscheme/patches/01-dynload-path.patch (revision 0) @@ -0,0 +1,19 @@ +diff -ruN tinyscheme1.39.orig/dynload.c tinyscheme1.39/dynload.c +--- tinyscheme1.39.orig/dynload.c 2004-06-07 09:56:52.000000000 -0400 ++++ tinyscheme1.39/dynload.c 2009-03-11 18:27:59.000000000 -0400 +@@ -122,8 +122,13 @@ + return(retval); + } + +-static void make_filename(const char *name, char *filename) { +- strcpy(filename,name); ++static void make_filename(const char *name, char *filename) { ++#ifdef ExtDir ++ strcpy(filename,ExtDir); ++ strcat(filename,name); ++#else ++ strcpy(filename,name); ++#endif + strcat(filename,SUFFIX); + } + Index: packages/lang/tinyscheme/Makefile =================================================================== --- packages/lang/tinyscheme/Makefile (revision 0) +++ packages/lang/tinyscheme/Makefile (revision 0) @@ -0,0 +1,68 @@ +# +# Copyright (C) 2009 David Cooper <d...@kupesoft.com> +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=tinyscheme +PKG_VERSION:=1.39 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)$(PKG_VERSION).zip +PKG_SOURCE_URL:=...@sf/tinyscheme +PKG_MD5SUM:=55523524236ba546fdaf5f6b96a49a2b + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +define Package/tinyscheme + SUBMENU:=TinyScheme + SECTION:=lang + CATEGORY:=Languages + TITLE:=A minimal implementation of scheme + URL:=http://tinyscheme.sourceforge.net/ +endef + +define Package/tinyscheme/description + TinyScheme is a lightweight Scheme interpreter that implements + as large a subset of R5RS as was possible without getting very + large and complicated. It is meant to be used as an embedded + scripting interpreter for other programs. As such, it does not + offer IDEs or extensive toolkits although it does sport a small + top-level loop, included conditionally. As an embedded interpreter, + it allows multiple interpreter states to coexist in the same + program, without any interference between them. Programmatically, + foreign functions in C can be added and values can be defined in + the Scheme environment. Being a quite small program, it is easy + to comprehend, get to grips with, and use. +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR) \ + CC="$(TARGET_CC) $(TARGET_CFLAGS)" \ + FEATURES="-DUSE_DL=1 -DUSE_PLIST=1 \ + -DInitFile=\"\\\"/usr/share/tinyscheme/init.scm\\\"\" \ + -DExtDir=\"\\\"/usr/lib/tinyscheme/\\\"\"" \ + SYS_LIBS="-ldl -lm" \ + scheme +endef + +define Build/InstallDev + mkdir -p $(1)/usr/include/tinyscheme + $(CP) $(PKG_BUILD_DIR)/*.h $(1)/usr/include/tinyscheme +endef + +define Package/tinyscheme/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/scheme $(1)/usr/bin + $(INSTALL_DIR) $(1)/usr/share/tinyscheme + $(INSTALL_DATA) $(PKG_BUILD_DIR)/init.scm $(1)/usr/share/tinyscheme +endef + +$(eval $(call BuildPackage,tinyscheme)) + Index: packages/lang/tinyscheme-tsx/patches/01-cross-compile.patch =================================================================== --- packages/lang/tinyscheme-tsx/patches/01-cross-compile.patch (revision 0) +++ packages/lang/tinyscheme-tsx/patches/01-cross-compile.patch (revision 0) @@ -0,0 +1,24 @@ +diff -ruN tsx-1.1.orig/Makefile tsx-1.1/Makefile +--- tsx-1.1.orig/Makefile 2002-04-09 04:37:57.000000000 -0400 ++++ tsx-1.1/Makefile 2009-03-11 17:54:11.000000000 -0400 +@@ -3,14 +3,15 @@ + SCHEME_H_DIR=.. + CC=gcc + CFLAGS=-DUSE_DL=1 -I $(SCHEME_H_DIR) ++FPIC=-fPIC + + tsx.so : tsx.c tsx.h Makefile +- $(CC) -shared -Wall -fPIC $(CFLAGS) -o tsx.so $(DEBUG) tsx.c +- strip tsx.so +- ls -l tsx.so ++ $(CC) -shared -Wall $(FPIC) $(CFLAGS) -o tsx.so $(DEBUG) tsx.c ++# strip tsx.so ++# ls -l tsx.so + + .PHONY : clean + clean: + rm -f *.o + rm -f tsx.so +- rm -f *~ +\ No newline at end of file ++ rm -f *~ Index: packages/lang/tinyscheme-tsx/Makefile =================================================================== --- packages/lang/tinyscheme-tsx/Makefile (revision 0) +++ packages/lang/tinyscheme-tsx/Makefile (revision 0) @@ -0,0 +1,51 @@ +# +# Copyright (C) 2009 David Cooper <d...@kupesoft.com> +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=tinyscheme-tsx +PKG_VERSION:=1.1 +PKG_RELEASE:=1 + +PKG_SOURCE:=tsx-$(PKG_VERSION).tgz +PKG_SOURCE_URL:=http://heras-gilsanz.com/manuel/ +PKG_MD5SUM:=34bb54737e8603ed981bd186121b1606 + +PKG_BUILD_DIR:=$(BUILD_DIR)/tsx-$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +define Package/tinyscheme-tsx + SUBMENU:=TinyScheme + SECTION:=lang + CATEGORY:=Languages + TITLE:=Tinyscheme extensions (files, sockets, time, misc) + URL:=http://heras-gilsanz.com/manuel/tsx.html + DEPENDS:=+tinyscheme +endef + +define Package/tinyscheme-tsx/description + The Tinyscheme extensions (TSX) are a set of extensions for + the TinyScheme implementation of the Scheme programming + language. TSX provides support for operations with + filesystem, sockets, date/time, and some miscellaneous ones. +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR) \ + CC="$(TARGET_CC)" FPIC="$(FPIC)" CFLAGS="$(TARGET_CFLAGS) \ + -DUSE_DL=1 -I $(STAGING_DIR)/usr/include/tinyscheme" +endef + +define Package/tinyscheme-tsx/install + $(INSTALL_DIR) $(1)/usr/lib/tinyscheme + $(INSTALL_DATA) $(PKG_BUILD_DIR)/tsx.so $(1)/usr/lib/tinyscheme +endef + +$(eval $(call BuildPackage,tinyscheme-tsx)) +
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel