# macOSでのビルド - [このサイト](https://solarianprogrammer.com/2019/10/12/compiling-gcc-macos/)の通りにやればだいたいできる - catalina(high sierraくらい?)からgmpなどのライブラリを個別でビルドしなければGCCのビルドができなかった - gcc9からGCCのリポジトリに自動でこのあたりのライブラリをインストールする`contrib/download_prerequisites`が追加されていて便利になっていた ```sh $contrib/download_prerequisites (GCCのトップディレクトリで行わないといけない) ``` - `/usr/include/`が抜けた問題があるので、`sys_root`を自前で用意する必要がある - 一部のincludeファイルにmacOSのパッチを与える必要があるらしい(必要ないかも) ```sh $cd sys_root $ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/Library . $ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System . $mkdir usr && cd usr $ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/bin . $ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib . $ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/libexec . $ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/share . $cp -r /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include include $vim include/Availability.h ``` - あとはConfigureを実行する - `--with-sysroot`を指定しておかないと、`/usr/include`が無いエラーが発生する - `--with-sysroot`は絶対パスで与えないといけない ```sh ../CbC_gcc/configure --prefix=$PWD --disable-nls --disable-bootstrap --enable-checking=tree,rtl,assert,types CFLAGS="-g3 -O0" --enable-languages=c,lto --no-create --no-recursion --disable-multilib --with-sysroot=/Users/anatofuz/workspace/cr/CbC/latest_gcc/sys_root ``` - ここで何故かMafikefileでなく`config.status`なシェルスクリプトが生成される - このシェルスクリプトを実行するとMakefileが生成される - あとは `make -j`すれば良い(`-j`だと一部がうまく動かないので、`make`の方が良いかもしれない)