blob: 57e82c50165490c79d38a23ad66ceb4ea5ac925b [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 \
dep.cc \
eval.cc \
exec.cc \
file.cc \
file_cache.cc \
fileutil.cc \
func.cc \
main.cc \
parser.cc \
rule.cc \
string_piece.cc \
string_pool.cc \
stringprintf.cc \
strutil.cc \
value.cc \
var.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 # -O
all: kati para ckati $(CXX_TEST_EXES)
kati: $(GO_SRCS)
env $(shell go env) go build -o $@ *.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 $@
go_test: $(GO_SRCS) para
env $(shell go env) go test *.go
para: para.cc
$(CXX) -std=c++11 -g -O -W -Wall -MMD -o $@ $<
test: all go_test
ruby runtest.rb
clean:
rm -rf out kati ckati *.o *.d
.PHONY: test
-include *.d