aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/nrvo_by_default/Makefile
blob: 13feb3139054cf6cf3412c6ad9bcf0d7ccf289bb (plain) (tree)
1
2
3
4
5
6
7
8






                                                                         
                                                       

















                                                                    
# Builds rvo.cpp on various optimization levels supported by GCC.
# The compiler is `g++` by default.
# You can change the compiler to be used using the CXX variable.
# For example, if you want to compile using `x86_64-w64-mingw32-g++`, run
#
#     > make CXX=x86_64-w64-mingw32-g++

CXXFLAGS = -Wall -Wextra -DNDEBUG -std=c++11 -static -s

optimization_levels = 0 1 2 3

all::

define make_target
rvo.$(CXX).O$(1).exe: rvo.cpp
	$(CXX) $(CXXFLAGS) -O$(1) $$< -o $$@

all:: rvo.$(CXX).O$(1).exe
endef

$(foreach i,$(optimization_levels),$(eval $(call make_target,$(i))))

.PHONY: clean-all

clean-all:
	$(RM) $(wildcard rvo.$(CXX).*.exe)