趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • MicroPythonをビルドしてみた

    投稿日 2015年 3月 19日 コメントはありません

    MicroPythonをUbuntu上でビルドしてみました。

    まあ、特に難しいところはなくビルドできちゃいました。

    1.ソースを持ってきます

    なんのことはなく、gitコマンドで持ってきます。

    ~$ mkdir micropython
    ~$ cd micropython/
    ~/micropython$ git clone https://github.com/micropython/micropython
    Cloning into 'micropython'...
    remote: Counting objects: 26526, done.
    remote: Compressing objects: 100% (337/337), done.
    remote: Total 26526 (delta 163), reused 0 (delta 0), pack-reused 26185
    Receiving objects: 100% (26526/26526), 17.01 MiB | 1.30 MiB/s, done.
    Resolving deltas: 100% (18856/18856), done.
    Checking connectivity...

    2.ビルドします

    unixディレクトリに移動して、makeするだけです。

    ~/micropython$ cd micropython/
    ~/micropython/micropython$ cd unix
    ~/micropython/micropython/unix$ make
        :
        :
    modffi.c:32:17: fatal error: ffi.h: そのようなファイルやディレクトリはありません
    #include <ffi.h>
    ^
    compilation terminated.
    make: *** [build/modffi.o] エラー 1
    ~/micropython/micropython/unix$

    一部ヘッダがないと怒られてしまいました。調べてみると、libff-devパッケージに含まれるヘッダファイルのようです。

    パッケージを追加して続けます。

    ~/micropython/micropython/unix$ sudo apt-get install libffi-dev
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています 
    状態情報を読み取っています... 完了
    以下のパッケージが新たにインストールされます:
     libffi-dev
    アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 9 個。
    99.8 kB のアーカイブを取得する必要があります。
    この操作後に追加で 323 kB のディスク容量が消費されます。
    取得:1 http://jp.archive.ubuntu.com/ubuntu/ trusty/main libffi-dev amd64 3.1~rc1+r3.0.13-12 [99.8 kB]
    99.8 kB を 0秒 で取得しました (199 kB/s)
    以前に未選択のパッケージ libffi-dev:amd64 を選択しています。
    (データベースを読み込んでいます ... 現在 386967 個のファイルとディレクトリがインストールされています。)
    Preparing to unpack .../libffi-dev_3.1~rc1+r3.0.13-12_amd64.deb ...
    Unpacking libffi-dev:amd64 (3.1~rc1+r3.0.13-12) ...
    Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
    Processing triggers for doc-base (0.10.5) ...
    Processing 1 added doc-base file...
    Registering documents with scrollkeeper...
    Processing triggers for install-info (5.2.0.dfsg.1-2) ...
    libffi-dev:amd64 (3.1~rc1+r3.0.13-12) を設定しています ...
    ~/micropython/micropython/unix$

    気を取り直してmakeするとあっさり完了しました。

    3.試しに動かしてみる

    ドキュメント通りに動かしてみます。

    ~/micropython/micropython/unix$ ./micropython
    Micro Python v1.3.10-215-g005a7f4 on 2015-03-17; linux version
    >>> list(5 * x + y for x in range(10) for y in [4, 2, 1])
    [4, 2, 1, 9, 7, 6, 14, 12, 11, 19, 17, 16, 24, 22, 21, 29, 27, 26, 34, 32, 31, 39, 37, 36, 44, 42, 41, 49, 47, 46]
    >>> quit()
    Traceback (most recent call last):
     File "<stdin>", line 1, in <module>
    NameError: name 'quit' is not defined
    >>>

    quit()では終了できず、Ctrl-Dで終了させます。

    4.テストにかけてみる

    これもドキュメント通りに。

    ~/micropython/micropython/unix$ make test
    Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
    cd ../tests && MICROPY_MICROPYTHON=../unix/micropython ./run-tests
    pass basics/0prelim.py
    pass basics/andor.py
    pass basics/array1.py
      :
    pass unix/ffi_callback.py
    pass unix/ffi_float.py
    395 tests performed (15494 individual testcases)
    395 tests passed
    ~/micropython/micropython/unix$

    あっさり動きました。


    コメントをどうぞ(日本語のみ/Only in Japanese)

    日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)