contents
  1. [Fonc] @ Leopard
  2. [Fonc] その他の動かない状況のまとめ
    1. FreeBSD 6.3R / 7.0R
    2. Fedora 8
      1. x86_64
      2. i686
    3. 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 にやり方を書いたので、見てみて下さい!

Last modified: 2008-04-21
Post-it: New Post-it (help)

Text color: [_][_][_][_]

Background: [_][_][_][_][_][_]

Draw Line:

x: y: