見出し画像

[作業メモ] Pure Data アンビソニック用ライブラリをコンパイルする

Pdユーザとして、Ricky Graham氏の開発したgrambiライブラリを愛用している。最近使用マシンをIntel MacからApple Siliconに変えたので、インストールの手順をメモしておく。

作業環境:
MacBook Pro Nov. 2023 M3
Pd 0.54.1

おことわり

筆者はC言語やUNIXの非専門家なので、冗長な箇所や誤解に基づく記述がある可能性があります。ご承知おきください。

GitHubからソースコードをダウンロード

grambilibのページへゆく。

今回はURLをコピーしてターミナルから落とす方法を取った。

ターミナルで下のように入力。https://以下はコピーしたURL。

% git clone --recursive https://github.com/rickygraham/grambilib.git

Macintosh HD/ユーザ/[ユーザー名]のフォルダにgrambilibがインストールされる。

適宜保存したい場所に移動させる。
(後記:ターミナルのcdコマンドで直接保存したい場所にダウンロードする方が賢い。)
今回は[ユーザー名]/書類/Pd/externalsにした。

grambilibの中身

.pd_darwinという拡張子のファイルが、それぞれのオブジェクトの(Mac用の)本体だ。

ただ、このままPdでhelpパッチ(grambi-help.pd)を開いても、grambiのオブジェクトは認識されなかった。
Cで書かれたソースコードをApple Silicon用(?)にコンパイルし直し、新しい.pd_darwinファイルを作成する必要があるらしい。

MakefileとMakefile.pdlibbuilderを用意

PdオブジェクトやライブラリをコンパイルするためにはMakefile、そしてMakefile.pdlibbuilderというファイルが必要になる。

今回はエクスターナルライブラリのサンプルholloworldから、必要なプログラムを流用した。
(後記:Makefile.pdlibbuilderは本家Gitから最新版をDLしたほうが良いだろう。)

.zip形式ではpd-lib-builderをダウンロードできないので使ってはいけない、gitを推奨する、とREADMEにある。
grambilibをダウンロードしたときと同様に、ターミナルのgitコマンドでhelloworldをダウンロード。

% git clone --recursive https://github.com/pure-data/helloworld.git

ダウンロードしたhelloworldからMakefileとpd-lib-builderをコピーし、grambilibのv1.1フォルダにペーストした。

ダウンロードしたhelloworldのフォルダ
grambilibのv1.1フォルダにMakefileとpd-lib-builderをペースト

Makefileを書き換える

grambilib/v1.1にペーストしたMakefileをXcodeで開き、下記のように書き換える。

# library name
lib.name = grambilib~

# input source file (class name == source file basename)
class.sources = grambidec~.c grambiman~.c grambipan~.c

# all extra files to be included in binary distribution of the library
datafiles = grambilib-help.pd README.md

# include Makefile.pdlibbuilder from submodule directory 'pd-lib-builder'
include pd-lib-builder/Makefile.pdlibbuilder

ソースコードの名前を変える

それぞれのオブジェクトのソースコードであるgrambidec.c、grambiman.c、grambipan.cの名前を「~(チルダ)」付きに改めた。
grambidec~.c grambiman~.c grambipan~.c

コンパイル実行

ターミナルでcdコマンドを用いて、コンパイルするコードのあるgrambilib/v1.1へ移動する。以下は私の場合。

% cd /Users/xxxx/Documents/Pd/externals/grambilib/v1.1

続けて「make」と入力。コンパイルが始まる。

% make

Warning!

複数の警告が出た。ソースコードに好ましくない記述があるらしいが、深刻なものではないだろう。長いので一部のみ抜粋↓

grambidec~.c:43:16: warning: unused variable 'APin2' [-Wunused-variable] t_sample  *APin2 =    (t_sample *)(w[3]); ^

完了!

警告は出たが、コンパイルそのものは完了した。

Pdオブジェクトを開く

grambilibのヘルプパッチを開く。オブジェクトは無事?生成されているようだ。

grambiライブラリのヘルプファイル

これから

Makefile.pdlibbuilderを使った外部オブジェクトは多数あるので、古くて使えないと思っていたエクスターナルオブジェクトの多くを、この方法でコンパイスすることができた。投げ出していた自作オブジェクトもいずれまた挑戦せねば…

参考


いいなと思ったら応援しよう!