
SpursEngine 上で動くプログラムは Cygwin のコマンド make を使って、コンパイルとリンクをします。
ディレクトリ /cygdrive/c/TOSHIBA/SE1000/tutorial/sample/ で make を実行すると、サブ・ディレクトリへ cd して、すべてのソースをコンパイル、リンクします。
以下の解説は、項1.3. 「Cygwin (シグウィン) をインストールする」、 項2.2. 「SpursEngine SDK をインストールする」、項2.3. 「SpursEninge SDK 用に Cygwin (シグウィン) の環境を設定する」 が完了していることを前提にしています。
デスクトップにある、 Cygwin アイコンをダブルクリックします。

ディレクトリ /cygdrive/c/TOSHIBA/SE1000/tutorial/sample/ へコマンド cd で移動します。
$ cd /cygdrive/c/TOSHIBA/SE1000/tutorial/sample
コマンド ls 確認します。
$ ls -l total 24 -rwx------+ 1 SYSTEM SYSTEM 735 Jan 13 11:55 Makefile drwx------+ 6 SYSTEM SYSTEM 0 Feb 18 14:01 candi drwx------+ 6 SYSTEM SYSTEM 0 Feb 18 14:01 optimize drwx------+ 5 SYSTEM SYSTEM 0 Feb 18 14:01 overlay drwx------+ 2 SYSTEM SYSTEM 0 Feb 18 14:01 release drwx------+ 8 SYSTEM SYSTEM 4096 Feb 18 14:01 spha_spsa drwx------+ 7 SYSTEM SYSTEM 4096 Feb 18 14:01 spursstream -rwx------+ 1 SYSTEM SYSTEM 9229 Jan 13 11:55 tutorial.sln
コマンド make を実行します。
以下のように正常終了すれば完了です。
$ make
for dir in optimize overlay spha_spsa spursstream; do \
make -C $dir all; \
done
make[1]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/optimize'
for dir in gaussian_filter/spe; do \
make -C $dir all; \
done
make[2]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/optimize/gaussian_filter/spe'
spu-g++ -I. -IC:/cygwin/opt/tsb/spurs/spe/include -I../../common -I../../common/spe -g -fno-exceptions -fno-rtti -Os gaussian_filter.cpp -c
spu-g++ -LC:/cygwin/opt/tsb/spurs/spe/lib -fno-exceptions -fno-rtti gaussian_filter.o -lspsa -o spe.elf
make[2]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/optimize/gaussian_filter/spe'
make[1]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/optimize'
make[1]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/overlay'
for dir in spe; do \
make -C $dir all; \
done
make[2]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/overlay/spe'
spu-g++ -I. -IC:/cygwin/opt/tsb/spurs/spe/include spurs_main.cpp -c
spu-g++ -I. -IC:/cygwin/opt/tsb/spurs/spe/include module0.cpp -c
spu-g++ -I. -IC:/cygwin/opt/tsb/spurs/spe/include module1.cpp -c
spu-g++ -LC:/cygwin/opt/tsb/spurs/spe/lib -Wl,-T,ld.script spurs_main.o module0.o module1.o -lspsa -o spe.elf
make[2]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/overlay/spe'
make[1]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/overlay'
make[1]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spha_spsa'
for dir in dma_transfer/spe gaussian_filter/spe hello_world/spe; do \
make -C $dir all; \
done
make[2]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spha_spsa/dma_transfer/spe'
spu-g++ -Wall -O3 -fno-rtti -fno-exceptions -IC:/cygwin/opt/tsb/spurs/spe/include -I../../common -I../../common/spe dma_transfer.cpp -c
spu-gcc -LC:/cygwin/opt/tsb/spurs/spe/lib -I../../common -I../../common/spe dma_transfer.o -lspursstreamspe -lspsa -o dma_transfer.elf
done.
make[2]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spha_spsa/dma_transfer/spe'
make[2]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spha_spsa/gaussian_filter/spe'
spu-g++ -Wall -O3 -fno-rtti -fno-exceptions -IC:/cygwin/opt/tsb/spurs/spe/include -I../../common -I../../common/spe gaussian_filter.cpp -c
spu-gcc -LC:/cygwin/opt/tsb/spurs/spe/lib -I../../common -I../../common/spe gaussian_filter.o -lspursstreamspe -lspsa -o gaussian_filter.elf
done.
make[2]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spha_spsa/gaussian_filter/spe'
make[2]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spha_spsa/hello_world/spe'
spu-g++ -Wall -O3 -fno-rtti -fno-exceptions -IC:/cygwin/opt/tsb/spurs/spe/include -I../../common -I../../common/spe hello_world.cpp -c
spu-gcc -LC:/cygwin/opt/tsb/spurs/spe/lib -I../../common -I../../common/spe hello_world.o -lspursstreamspe -lspsa -o hello_world.elf
done.
make[2]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spha_spsa/hello_world/spe'
make[1]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spha_spsa'
make[1]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spursstream'
for dir in sepia_tone_filter/spe sepia_tone_filter_multi/spe; do \
make -C $dir all; \
done
make[2]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spursstream/sepia_tone_filter/spe'
spu-g++ -Wall -O3 -fno-rtti -fno-exceptions -IC:/cygwin/opt/tsb/spurs/spe/include -I../../common -I../../common/spe sepia_tone_filter.cpp -c
spu-gcc -LC:/cygwin/opt/tsb/spurs/spe/lib -I../../common -I../../common/spe sepia_tone_filter.o -lspursstreamspe -lspsa -o sepia_tone_filter.elf
done.
make[2]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spursstream/sepia_tone_filter/spe'
make[2]: Entering directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spursstream/sepia_tone_filter_multi/spe'
spu-g++ -Wall -O3 -fno-rtti -fno-exceptions -IC:/cygwin/opt/tsb/spurs/spe/include -I../../common -I../../common/spe sepia_tone_filter_multi.cpp -c
spu-gcc -LC:/cygwin/opt/tsb/spurs/spe/lib -I../../common -I../../common/spe sepia_tone_filter_multi.o -lspursstreamspe -lspsa -o sepia_tone_filter_multi.elf
done.
make[2]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spursstream/sepia_tone_filter_multi/spe'
make[1]: Leaving directory `/cygdrive/c/TOSHIBA/SE1000/tutorial/sample/spursstream'
$