view CbC/GCC/homebrew.md @ 96:d3c9934a0b4b

backup 2021-10-14
author autobackup
date Thu, 14 Oct 2021 00:10:04 +0900
parents b6c284fd5ae4
children
line wrap: on
line source

# CbC GCC の homebrew の作り方

(https://github.com/ie-developers/homebrew-ie) を自分のgithubにcloneします。

それを hoge ユーザでやるとします。

cbcgcc.rb をみると作り方が書いてあります。

```
  def install
    mktemp do
      system "#{buildpath}/configure", "--prefix=#{prefix}", "--disable-nls" ,  "--disable-bootstrap","--enable-checking=tree,rtl,assert,types","CFLAGS=-g3 -O0", "--enable-languages=c,lto", "--no-create", "--no-recursion", "--disable-multilib"
      system "sh config.status"
      system "make -j 4"
      system "make", "install"
    end
  end
```

ここのconfigure makeを適当に直します。

```
   brew install ie-developers/ie/cbclang --debug
```

で手元で debug できます。

build できたら binary package を作ります。

```
   brew install --build-bottle cbcgcc
   brew bottle cbcgcc
```

とすると sha (hash) が表示されます。これを cbcgcc.rb に書き込みます。

```
  bottle do
    rebuild 1
    root_url "http://www.cr.ie.u-ryukyu.ac.jp/brew" # Optional root to calculate bottle URLs
    sha256 "cd7ea217a174e440cfd7bf6e1367ceca7daae8f6ca9805056dd117e6cbc3ce97" => :mojave
  end
```

この時に build 番号を増やすこと。

``` 
   cbcgcc--10.0.1.mojave.bottle.tar.gz
```

ができてるので、これをfireflyの
```
/var/www/html/brew/cbcgcc-10.0.1.mojave.bottle.1.tar.gz 
```
にコピーします。この時に rebuild 番号を合わせること。動くなら、すでにある物を消しても良いです。

これをやると、~/Libary/Cache/Homebrew に巨大なdirectoryができるので消すのを忘れないように。

ちゃんと動いたら、ie-developper にpullreq します。



## Catalina

- `/usr/include`が消えているので`--with-sysroot`でsdkを指定するといい
- Catalinaの場合は`libstd`を作るとコンパイルエラーが発生する

``` ruby
      if MacOS.version >= 10.15
        args << "--disable-libstdcxx "
        system "cd #{buildpath};#{buildpath}/contrib/download_prerequisites"
        sdk_path = `xcrun --sdk macosx --show-sdk-path`
        #sdk_path = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
        args << "--with-sysroot=#{sdk_path} "
      end
```

- catalinaのバージョン以降の場合はsdkのパスの指定と、`libsdtd`の作成をスキップする