2011年4月13日水曜日

TinySchemeをMac OS Xにインストールするときのメモ

GimpのScript-FuはSchemeで書かれたプログラムだ。
このプログラムはTinySchemeで解釈される。
TinyScheme 1.40を単独でMac OS Xに入れるために、makefileとscheme.cを書き換えた。

ついでに、/usr/local/binにtinyschemeという名前の実行型ファイルと、/usr/local/share/tinyschemeにinit.scmをインストールするようにしてみた。

patchファイルにすると、以下のような感じになった。



diff -u -d tinyscheme-1.40/makefile tinyscheme-1.40.kokubo/makefile
--- tinyscheme-1.40/makefile 2011-01-16 16:51:17.000000000 +0900
+++ tinyscheme-1.40.kokubo/makefile 2011-04-13 15:05:37.000000000 +0900
@@ -1,5 +1,12 @@
# Makefile for TinyScheme
# Time-stamp: <2002-06-24 14:13:27 gildea>
+# Time-stamp: <2011-04-13 14:52:30 akokubo>
+
+BINPREFIX = tiny
+BINDEST = /usr/local/bin
+LIBDEST = /usr/local/share/tinyscheme
+INITFILE = init.scm
+BANNER = TinyScheme 1.40

# Windows/2000
#CC = cl -nologo
@@ -30,11 +37,11 @@
AR= ar crs

# Linux
-LD = gcc
-LDFLAGS = -shared
-DEBUG=-g -Wno-char-subscripts -O
-SYS_LIBS= -ldl
-PLATFORM_FEATURES= -DSUN_DL=1
+#LD = gcc
+#LDFLAGS = -shared
+#DEBUG=-g -Wno-char-subscripts -O
+#SYS_LIBS= -ldl
+#PLATFORM_FEATURES= -DSUN_DL=1

# Cygwin
#PLATFORM_FEATURES = -DUSE_STRLWR=0
@@ -50,15 +57,29 @@
#LIBPREFIX = lib
#OUT = -o $@

-FEATURES = $(PLATFORM_FEATURES) -DUSE_DL=1 -DUSE_MATH=0 -DUSE_ASCII_NAMES=0
+# Mac OS X
+LD = gcc
+LDFLAGS = -shared
+DEBUG = -g -Wno-char-subscripts -O
+SYS_LIBS = -ldl
+PLATFORM_FEATURES = -DUSE_STRLWR=1 -DInitFile="\"$(LIBDEST)/$(INITFILE)"\" -Dbanner="\"$(BANNER)"\" -DOSX
+
+FEATURES = $(PLATFORM_FEATURES) -DUSE_DL=1 -DUSE_MATH=1 -DUSE_ASCII_NAMES=0

OBJS = scheme.$(Osuf) dynload.$(Osuf)

LIBTARGET = $(LIBPREFIX)tinyscheme.$(SOsuf)
STATICLIBTARGET = $(LIBPREFIX)tinyscheme.$(LIBsuf)

+
all: $(LIBTARGET) $(STATICLIBTARGET) scheme$(EXE_EXT)

+install: scheme$(EXE_EXT)
+ if [ ! -d $(BINDEST) ]; then mkdir -p $(BINDEST); fi
+ if [ ! -d $(LIBDEST) ]; then mkdir -p $(LIBDEST); fi
+ install -s scheme$(EXE_EXT) $(BINDEST)/$(BINPREFIX)scheme$(EXE_EXT)
+ cp $(INITFILE) $(LIBDEST)
+
%.$(Osuf): %.c
$(CC) -I. -c $(DEBUG) $(FEATURES) $(DL_FLAGS) $<

diff -u -d tinyscheme-1.40/scheme.c tinyscheme-1.40.kokubo/scheme.c
--- tinyscheme-1.40/scheme.c 2011-01-17 11:02:36.000000000 +0900
+++ tinyscheme-1.40.kokubo/scheme.c 2011-04-13 12:55:43.000000000 +0900
@@ -62,7 +62,9 @@
* Basic memory allocation units
*/

+#ifndef banner
#define banner "TinyScheme 1.39"
+#endif

#include <string.h>
#include <stdlib.h>

0 件のコメント: