2.5. SpursEninge SDK を Cygwin で make する

SpursEngine 上で動くプログラムは Cygwin のコマンド make を使って、コンパイルとリンクをします。

ディレクトリ /cygdrive/c/TOSHIBA/SE1000/tutorial/sample/make を実行すると、サブ・ディレクトリへ cd して、すべてのソースをコンパイル、リンクします。

以下の解説は、項1.3. 「Cygwin (シグウィン) をインストールする」項2.2. 「SpursEngine SDK をインストールする」項2.3. 「SpursEninge SDK 用に Cygwin (シグウィン) の環境を設定する」 が完了していることを前提にしています。

  1. デスクトップにある、 Cygwin アイコンをダブルクリックします。

  2. ディレクトリ /cygdrive/c/TOSHIBA/SE1000/tutorial/sample/ へコマンド cd で移動します。

    $ cd /cygdrive/c/TOSHIBA/SE1000/tutorial/sample
  3. コマンド 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
    
  4. コマンド 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'
    
    $