CbC GCC の homebrew の作り方

CbC GCC の homebrew の作り方

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

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

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

1
2
3
4
5
6
7
8
  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を適当に直します。

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

で手元で debug できます。

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

1
2
   brew install --build-bottle cbcgcc
   brew bottle cbcgcc

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

1
2
3
4
5
  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 番号を増やすこと。

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

ができてるので、これをfireflyの

1
/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を作るとコンパイルエラーが発生する
1
2
3
4
5
6
7
      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の作成をスキップする
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy