<< XRT redererその2 戻る Standard Procedural Databasesのmakefile >>

STANDARD PROCEDURAL DATABASES

STANDARD PROCEDURAL DATABASES 
http://tog.acm.org/resources/SPD/
これの実行ファイルを作成するのに試してみました。

以下、Windowsでの作業です。

MinGWをインストールする。
最新バージョンはインストール時にmakeも含まれているようで楽かも。
環境パスも設定します。

さてさて、コンパイルの作業をします。
gccのオプションは以下を参考にしました。
http://www.geocities.jp/woodwood77777/gcc.htm
makefile.dosを以下、書き換え
CC =gcc

CFLAGS =-O2

以下を実行します。
mingw32-make -f makefile.dos


libinf.cの32行目あたりで
"initializer element is not constant" と出て止まったら
変更前 FILE *gOutfile = stdout;
変更後 FILE *gOutfile;

以下を実行します。
mingw32-make -f makefile.dos

mingw/lib/libmingw32.a(main.o):main.c.text+0x104): undefined
reference to `WinMain@16'
エラーメッセージ

このあたり、エラーがでますが、くりかえしてみる。
mingw32-make -f makefile.dos

ちょっとうろ覚え、
CFLAGS =-mx
と変更して
mingw32-make -f makefile.dos
をくりかえしてみる。

以上、コンパイルのみ実行してリンクは後で行う。

以下のようなバッチファイルを作ってしまう。
作成したオブジェクトファイルをリンクさせる。
gcc -o balls.exe balls.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm

以下はバッチファイル

gcc -o balls.exe balls.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o gears.exe gears.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o mount.exe mount.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o rings.exe rings.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o teapot.exe teapot.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o tetra.exe tetra.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o tree.exe tree.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o readdxf.exe readdxf.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o readnff.exe readnff.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o readobj.exe readobj.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o sample.exe sample.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o lattice.exe lattice.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o shells.exe shells.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o jacks.exe jacks.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o sombrero.exe sombrero.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm
gcc -o nurbtst.exe nurbtst.c drv_null.o libini.o libinf.o libpr1.o libpr2.o libpr3.o libply.o libdmp.o libvec.o libtx.o -lm


できあがった実行ファイルがいくつかあります。
balls.exe
gears.exe
jacks.exe
lattice.exe
mount.exe
nurbtst.exe
rings.exe
sample.exe
shells.exe
sombrero.exe
teapot.exe
tetra.exe
tree.exe

balls.exe >balls.nff
でnffを出力します。

後は、XRT rendererでレンダリングしました。
balls.nff
balls.jpg

lattice.nff
lattice.jpg

jacks.nff、これってケッソン先生のところで見たAOしてるブツのオリジナルになるのでしょうか。
jacks.jpg

いろいろと試してみたくなりました。
ありがとうございます。
  • -
  • -

<< XRT redererその2 戻る Standard Procedural Databasesのmakefile >>