使用makefile编译ninja

makefile

.PHONY : ninja
root := .
builddir := build
cxx := g++
ar := ar
cflags := -std=c++11 -g -Wall -Wextra -Wno-deprecated -Wno-missing-field-initializers \
    -Wno-unused-parameter -fno-rtti -fno-exceptions -fvisibility=hidden \
    -pipe '-DNINJA_PYTHON="python"' -O2 -DNDEBUG -fdiagnostics-color \
    -DUSE_PPOLL -DNINJA_HAVE_BROWSE -I.
ldflags := -L$(builddir) -pthread
CXX := ${cxx} -MMD -MT 
end = ${cflags} -c $^ -o $@


ninja: ${builddir}/ninja.o ${builddir}/libninja.a
    ${cxx} ${ldflags} -o ninja ${builddir}/ninja.o -lninja
    rm ${builddir}/*.d

${builddir}/ninja.o: $(root)/src/ninja.cc
    ${CXX} ${builddir}/ninja.o -MF ${builddir}/ninja.o.d ${cflags} -c $(root)/src/ninja.cc -o ${builddir}/ninja.o


$(builddir)/browse_py.h: $(root)/src/browse.py $(root)/src/inline.sh
    "${root}/src/inline.sh" kBrowsePy <$(root)/src/browse.py> $(builddir)/browse_py.h

objects=$(builddir)/browse.o $(builddir)/build.o \
    $(builddir)/build_log.o $(builddir)/clean.o $(builddir)/clparser.o \
    $(builddir)/debug_flags.o $(builddir)/depfile_parser.o $(builddir)/deps_log.o \
    $(builddir)/disk_interface.o $(builddir)/edit_distance.o \
    $(builddir)/eval_env.o $(builddir)/graph.o $(builddir)/graphviz.o \
    $(builddir)/lexer.o $(builddir)/line_printer.o $(builddir)/manifest_parser.o \
    $(builddir)/metrics.o $(builddir)/state.o $(builddir)/string_piece_util.o \
    $(builddir)/util.o $(builddir)/version.o $(builddir)/subprocess-posix.o \
    ${builddir}/dyndep.o ${builddir}/dyndep_parser.o ${builddir}/manifest_chunk_parser.o  \
    ${builddir}/parser.o ${builddir}/proto.o ${builddir}/status.o ${builddir}/thread_pool.o

$(builddir)/graph.o: ${root}/src/graph.cc
    ${CXX} $(builddir)/graph.o -MF $(builddir)/graph.o.d ${cflags} -c $^ -o $@

$(builddir)/eval_env.o: ${root}/src/eval_env.cc
    ${CXX} $(builddir)/eval_env.o -MF $(builddir)/eval_env.o.d ${cflags} -c $^ -o $@

$(builddir)/browse.o: ${root}/src/browse.cc $(builddir)/browse_py.h
    ${CXX} ${builddir}/browse.o -MF ${builddir}/browse.o.d ${cflags} -c ${root}/src/browse.cc -o $(builddir)/browse.o

$(builddir)/build.o:  ${root}/src/build.cc
    ${CXX} ${builddir}/build.o -MF ${builddir}/build.o.d ${cflags} -c $^ -o $@

$(builddir)/build_log.o:  ${root}/src/build_log.cc
    ${CXX} ${builddir}/build_log.o -MF ${builddir}/build_log.o.d ${cflags} -c $^ -o $@

$(builddir)/clean.o:  ${root}/src/clean.cc
    ${CXX} ${builddir}/clean.o -MF ${builddir}/clean.o.d ${cflags} -c $^ -o $@

$(builddir)/clparser.o:  ${root}/src/clparser.cc
    ${CXX} ${builddir}/clparser.o -MF ${builddir}/clparser.o.d ${cflags} -c $^ -o $@

$(builddir)/debug_flags.o:  ${root}/src/debug_flags.cc
    ${CXX} ${builddir}/debug_flags.o -MF ${builddir}/debug_flags.o.d ${cflags} -c $^ -o $@

$(builddir)/depfile_parser.o:  ${root}/src/depfile_parser.cc
    ${CXX} ${builddir}/depfile_parser.o -MF ${builddir}/depfile_parser.o.d ${cflags} -c $^ -o $@
    
$(builddir)/deps_log.o:  ${root}/src/deps_log.cc
    ${CXX} ${builddir}/deps_log.o -MF ${builddir}/deps_log
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值