blob: 3d3f89cbaef7fab8010a9087e2b77ae336310d63 [file] [log] [blame]
# Copyright 2015 Google Inc. All rights reserved
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
GO_SRCS:=$(wildcard *.go)
CXX_SRCS:= \
ast.cc \
command.cc \
dep.cc \
eval.cc \
exec.cc \
file.cc \
file_cache.cc \
fileutil.cc \
find.cc \
flags.cc \
func.cc \
log.cc \
main.cc \
ninja.cc \
parser.cc \
rule.cc \
stats.cc \
string_piece.cc \
stringprintf.cc \
strutil.cc \
symtab.cc \
timeutil.cc \
value.cc \
var.cc \
version.cc
CXX_TEST_SRCS:= \
$(wildcard *_test.cc)
CXX_OBJS:=$(CXX_SRCS:.cc=.o)
CXX_TEST_OBJS:=$(CXX_TEST_SRCS:.cc=.o)
CXX_ALL_OBJS:=$(CXX_SRCS:.cc=.o) $(CXX_TEST_SRCS:.cc=.o)
CXX_TEST_EXES:=$(CXX_TEST_OBJS:.o=)
CXXFLAGS:=-g -W -Wall -MMD
CXXFLAGS+=-O -DNOLOG
#CXXFLAGS+=-pg
all: kati ckati $(CXX_TEST_EXES)
kati: go_src_stamp
GOPATH=$$(pwd)/out:$${GOPATH} go install -ldflags "-X github.com/google/kati.gitVersion $(shell git rev-parse HEAD)" github.com/google/kati/cmd/kati
cp out/bin/kati $@
go_src_stamp: $(GO_SRCS) cmd/*/*.go
-rm -rf out/src/github.com/google/kati
mkdir -p out/src/github.com/google/kati
cp -a $(GO_SRCS) cmd out/src/github.com/google/kati
GOPATH=$$(pwd)/out:$${GOPATH} go get github.com/google/kati/cmd/kati
touch $@
go_test: $(GO_SRCS)
GOPATH=$$(pwd)/out:$${GOPATH} go test *.go
ckati: $(CXX_OBJS)
$(CXX) -std=c++11 $(CXXFLAGS) -o $@ $(CXX_OBJS)
$(CXX_ALL_OBJS): %.o: %.cc
$(CXX) -c -std=c++11 $(CXXFLAGS) -o $@ $<
$(CXX_TEST_EXES): $(filter-out main.o,$(CXX_OBJS))
$(CXX_TEST_EXES): %: %.o
$(CXX) $^ -o $@
version.cc: .git/HEAD .git/index
echo '// +build ignore' > $@
echo >> $@
echo 'const char* kGitVersion = "$(shell git rev-parse HEAD)";' >> $@
test: all go_test
ruby runtest.rb
clean:
rm -rf out kati ckati *.o *.d go_src_stamp
.PHONY: test
-include *.d