2010/06/14

ながいながい仮想マシンの話(2)の巻

さて、llvmclangのビルドですが、やはりmake一発!!とは行かないようで、いくつか修正が必要でした。
  • obj/に生成されたMakefileの修正。
    テスト関係のビルドでエラーがでるのでつぶします。まぁ、llvm自体の開発じゃないからいいかなと。
    utils/unittest/Makefile
    PARALLEL_DIRS = #googletest UnitTestMain
    unittests/Makefile
    PARALLEL_DIRS = #ADT ExecutionEngine Support Transforms VMCore
  • llvm/tools/clangのビルドエラー対策
    llvm/tools/clang/include/clang/AST/ASTDiagnostic.h
    llvm/tools/clang/include/clang/BasicDiagnostic.h
    #include <stdint.h>を追加します。
  • Getting Started: Building and Running Clangに従って、llvm/tools/clang/lib/Frontend/InitHeaderSearch.cppにc++ヘッダーへのパスを入れます。
    void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple,
    const HeaderSearchOptions &HSOpts) {
    // FIXME: temporary hack: hard-coded paths.
    AddPath("/boot/develop/headers/cpp", System, true, false, false);

これでビルドが通るようになりました。しかし、時間がかかるなぁ。gcc4のビルドのほうが早かったような…(clangでセルフビルドしたら速くなるのかな??)
  • make installでgroffがないと怒られるのでobj/に生成されたMakefileを2箇所修正。
    ifeq ($(BUILD_DIRS_ONLY),1)
    DIRS := lib/System lib/Support utils
    OPTIONAL_DIRS :=
    else
    DIRS := lib/System lib/Support utils lib/VMCore lib tools/llvm-shlib \
    tools/llvm-config tools runtime #docs unittests
    OPTIONAL_DIRS := projects bindings
    endif
    feq ($(MAKECMDGOALS),install-clang)
    DIRS := tools/clang/tools/driver tools/clang/lib/Headers \
    tools/clang/lib/Runtime #tools/clang/docs
    OPTIONAL_DIRS :=
    NO_INSTALL = 1
    endif

これでなんとかmake installも通るようになりました。ふぅ。

次回、世界へようこそ!!

0 件のコメント:

コメントを投稿