contents
- [Fonc] @ Leopard
- [Fonc] その他の動かない状況のまとめ
- FreeBSD 6.3R / 7.0R
- Fedora 8
- x86_64
- i686
- Mac OS X 10.3.9
Foncが動いたよ(;-;)
- 2008年03月08日(土)
[Fonc] @ Leopard
これまで、FreeBSD 7.0Rとか、Mac OS X 10.3.9とか、Fedora 8とかで嫌われ続けて、未だに使えていないFoncだけども、LeopardではError compiling Pepsi on Leopard with Xcode 3 GCCの様な感じで使えるということで、やってみる。
コンパイル手順は以下のような感じ。 今のtrunkは壊れているので、Rev376を使うのが吉。
$ svn co http://piumarta.com/svn2/idst/trunk/ idst $ cd idst $ svn update -r 376 $ make $ cd object/gc6.7 $ ./if_mach POWERPC DARWIN as -arch ppc -o mach_dep.o ./powerpc_darwin_mach_dep.s $ cd ../../ $ make
Fonc で遊ぶのcalcを動かす。
$ cd function/examples/peg $ ../../jolt-burg/main boot.k peg.k -o calc.peg.k examples/calc.peg ; loading: boot.k ; loading: quasiquote.k ; loading: syntax.k ; loading: number.k ; loading: debug.k ; loading: object.k ; loading: yy.k ; loading: yy-compile.k 13 rules parser written on calc.peg.k $ ../../jolt-burg/main boot.k examples/calc.k ; loading: boot.k ; loading: quasiquote.k ; loading: syntax.k ; loading: number.k ; loading: debug.k ; loading: object.k ; loading: calc.peg.k ; loading: yy.k > 3 + 3 * 9 30
動いた(;-;)
Fonc で遊ぶ2のCairoの例も、MacPortsで、cairo入れて、以下のpatch使えばbuildはできた。
$ pwd /Users/mutoh/tmp/idst/function/canvas $ diff -u Makefile.org Makefile --- Makefile.org 2008-03-08 12:45:43.000000000 +0900 +++ Makefile 2008-03-08 12:48:50.000000000 +0900 @@ -7,9 +7,9 @@ XOBJS = WinWindow.o XLIBS = cairo/*.dll else -XFLAGS = -J/usr/local/include/cairo +XFLAGS = -J/opt/local/include/cairo XOBJS = X11Window.o -XLIBS = -L/usr/local/lib -L/usr/X11R6/lib -lX11 -lXext -lreadline -lcairo +XLIBS = -L/opt/local/lib -L/usr/X11R6/lib -lX11 -lXext -lreadline -lcairo endif COBJS = CharacterMap.o Colour.o \
$ make world $ ./world
こっちも、動いた(;-;)
[Fonc] その他の動かない状況のまとめ
以下、死屍累々なんだけども、別に好きで積んだわけではないので、念のため。
FreeBSD 6.3R / 7.0R
コンパイルはどちらも完了するけども、実行するとSegmentation faultする。
Fedora 8
x86_64
コンパイルの極めて初期で止まる。 configureでtargetが分かってない様子。
$ make /bin/sh -ec 'for dir in object function; do ( cd $dir; make ); done' make[1]: ディレクトリ `/home/mutoh/work/idst/object' に入ります ./boot/configure boot/Makefile id/Makefile idc/Makefile idc/idc st80/Makefile && touch .config-stamp Target 'x86_64-unknown-linux-gnu' is not recognised. Please look at the 'configure' script and figure out the compiler and linker flags appropriate for your platform. Then add a line for your platform to the 'case' statement (along with any new functions that it might need, in the spirit of what's already there). When everything seems to be working, please send a copy of your modified 'configure' file to the original author at: 'firstName@lastName.com'. (Suitable values for 'firstName' and 'lastName' can be found by looking at the beginning of the 'configure' file.) Thank-you! (snip)
i686
なぜだか、gcで、libgc.aが作られない。
$ make (snip) cc -Iinclude -g -Wall -Wreturn-type -Werror -D_GNU_SOURCE=1 -Wno-unused-value -w -DNDEBUG -DSYSARCH=\"i386\" -DSYSOS=\"linux\" -O -L../gc6.7 -lgc src/idc1.c -ldl -lm -o idc1 libid.o gc.a -lm cc: gc.a: そのようなファイルやディレクトリはありません make[2]: *** [idc1] エラー 1 (snip)
Mac OS X 10.3.9
ctype.hのマクロと、tag.hの_Iマクロが名前がだぶっててダメ。
$ make (snip) gmake[2]: Entering directory `/Users/mutoh/work/idst/function/objects' ./idc -g -k -c _object.st -o _object.o ./idc -g -k -c Objects.st -o Objects.o ./idc -g -k -c Object.st -o Object.o In file included from Object.o.c:500: tag.h:1:1: "_I" redefined In file included from Object.o.c:9: /usr/include/ctype.h:104:1: this is the location of the previous definition (snip)
まあ、名前をぶつからないように変えると、それなりに進む。
でも、別の所(idst/function/jolt-burg )でも(もっとたくさん)ダブる。
今更ですが、すが、ェ、Ahttp://vpri.org/fonc_wiki/index.php/Mac_OS_X_v10.3 にやり方を書いたので、見てみて下さい!