9bb927190cf399e2f27a6271c337b7082f7eac6a
[platform/upstream/tbb.git] / examples / graph / som / Makefile
1 # Copyright (c) 2005-2019 Intel Corporation
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #     http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 # GNU Makefile that builds and runs example.
16 NAME=som
17 EXE=$(NAME).exe
18 ARGS=
19 LIGHT_ARGS=4
20
21 # The C++ compiler
22 ifneq (,$(shell which icc 2>/dev/null))
23 CXX=icc
24 endif # icc
25
26 override CXXFLAGS += $(UI_CXXFLAGS)
27
28 SRCFILES = som_graph.cpp som.cpp
29
30 ifeq ($(shell uname), Linux)
31 LIBS+= -lrt 
32 else ifeq ($(shell uname), Darwin)
33 override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib
34 endif
35
36 all:    release test
37
38 release: $(SRCFILES)
39 ifeq ($(compiler),xl)
40         # Avoiding "1586-346 (U) An error occurred during code generation.  The code generation return code was 40." with -O3.
41         $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(EXE) $(SRCFILES) -ltbb -ltbbmalloc $(LIBS)
42 else
43         $(CXX) -O3 -DNDEBUG $(CXXFLAGS) -o $(EXE) $(SRCFILES) -ltbb -ltbbmalloc $(LIBS)
44 endif
45
46 debug:  $(SRCFILES)
47         $(CXX) -g -O0 -DTBB_USE_DEBUG -D_DEBUG $(CXXFLAGS) -o $(EXE) $(SRCFILES) -ltbb_debug -ltbbmalloc_debug $(LIBS)
48
49 profile: override CXXFLAGS += -DTBB_USE_THREADING_TOOLS -g
50 profile: release
51
52 clean:
53         $(RM) $(EXE) *.o *.d
54
55 test:
56         $(run_cmd) ./$(EXE) $(ARGS)
57
58 light_test:
59         $(run_cmd) ./$(EXE) $(LIGHT_ARGS)