forked from openkylin/vc
28 lines
794 B
Makefile
28 lines
794 B
Makefile
|
CXX ?= c++
|
||
|
build_dir := $(shell which $(CXX))
|
||
|
tmp := "case $$(readlink -f $(build_dir)) in *icecc) which $${ICECC_CXX:-g++};; *) echo $(build_dir);; esac"
|
||
|
build_dir := $(shell sh -c $(tmp))
|
||
|
build_dir := $(realpath $(build_dir))
|
||
|
build_dir := build-$(subst /,-,$(build_dir:/%=%)$(CXXFLAGS))
|
||
|
|
||
|
all:
|
||
|
%:: $(build_dir)/CMakeCache.txt
|
||
|
$(MAKE) --no-print-directory -C "$(build_dir)" $(MAKECMDGOALS)
|
||
|
|
||
|
$(build_dir)/CMakeCache.txt:
|
||
|
@test -n "$(build_dir)"
|
||
|
@mkdir -p "$(build_dir)"
|
||
|
@test -e "$(build_dir)/CMakeCache.txt" || cmake -H. -B"$(build_dir)"
|
||
|
|
||
|
print_build_dir:
|
||
|
@echo "$(PWD)/$(build_dir)"
|
||
|
|
||
|
clean_builddir:
|
||
|
rm -rf "$(build_dir)"
|
||
|
|
||
|
# the following rule works around %:: grabbing the Makefile rule and thus stops it from running every time
|
||
|
Makefile:
|
||
|
@true
|
||
|
|
||
|
.PHONY: print_build_dir clean_builddir
|