2 # Copyright (C) 2011, 2013, Intel Corporation
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
10 # * Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
12 # * Redistributions in binary form must reproduce the above copyright
13 # notice, this list of conditions and the following disclaimer in
14 # the documentation and/or other materials provided with the
16 # * Neither the name of Intel Corporation nor the names of its
17 # contributors may be used to endorse or promote products derived
18 # from this software without specific prior written permission.
21 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 # HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
28 # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29 # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
31 # WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 # POSSIBILITY OF SUCH DAMAGE.
34 AUTOMAKE_OPTIONS = foreign
36 # Use when building GCC
37 ACLOCAL_AMFLAGS = -I .. -I ../config
39 # Compiler and linker flags.
40 GENERAL_FLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/runtime -I$(top_srcdir)/runtime/config/$(config_dir) -DIN_CILK_RUNTIME=1
41 # GENERAL_FLAGS += -D_Cilk_spawn="" -D_Cilk_sync="" -D_Cilk_for=for
43 # Enable Intel Cilk Plus extension
44 GENERAL_FLAGS += -fcilkplus
46 AM_CFLAGS = $(GENERAL_FLAGS) -std=c99
47 AM_CPPFLAGS = $(GENERAL_FLAGS)
48 AM_LDFLAGS = -lpthread
50 # May be used by toolexeclibdir.
51 gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
53 cilkincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/cilk
56 toolexeclib_LTLIBRARIES = libcilkrts.la
57 nodist_cilkinclude_HEADERS = include/cilk/cilk.h
59 libcilkrts_la_SOURCES = \
60 runtime/config/$(config_dir)/cilk-abi-vla.c \
61 runtime/config/$(config_dir)/os-unix-sysdep.c \
64 runtime/cilk-abi-cilk-for.cpp \
65 runtime/cilk-abi-vla-internal.c \
67 runtime/cilk_fiber.cpp \
68 runtime/cilk_fiber-unix.cpp \
69 runtime/cilk_malloc.c \
70 runtime/c_reducers.c \
71 runtime/except-gcc.cpp \
72 runtime/frame_malloc.c \
73 runtime/full_frame.c \
74 runtime/global_state.cpp \
76 runtime/local_state.c \
77 runtime/metacall_impl.c \
78 runtime/os_mutex-unix.c \
81 runtime/record-replay.cpp \
82 runtime/reducer_impl.cpp \
84 runtime/signal_node.c \
85 runtime/spin_mutex.c \
87 runtime/symbol_test.c \
88 runtime/sysdep-unix.c \
89 runtime/worker_mutex.c
92 # Load the $(REVISION) value.
93 include include/internal/rev.mk
95 #libcilkrts_la_LDFLAGS = -rpath '$(libdir)'
96 libcilkrts_la_LDFLAGS = -version-info 5:0:0
97 libcilkrts_la_LDFLAGS += -lpthread @lt_cv_dlopen_libs@
99 # If we're building on Linux, use the Linux version script
100 if LINUX_LINKER_SCRIPT
101 libcilkrts_la_LDFLAGS += -Wl,--version-script,$(srcdir)/runtime/linux-symbols.ver
104 # If we're building on MacOS, use the Mac versioning
106 libcilkrts_la_LDFLAGS += -Wl,-exported_symbols_list,$(srcdir)/runtime/mac-symbols.txt
111 libcilkrts_la_LDFLAGS += -no-undefined
113 # C/C++ header files for Cilk.
114 # cilkincludedir = $(includedir)/cilk
115 cilkincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/cilk
116 cilkinclude_HEADERS = \
117 include/cilk/cilk_api.h \
118 include/cilk/cilk_api_linux.h \
119 include/cilk/cilk.h \
120 include/cilk/cilk_stub.h \
121 include/cilk/cilk_undocumented.h \
122 include/cilk/common.h \
123 include/cilk/holder.h \
124 include/cilk/hyperobject_base.h \
125 include/cilk/metaprogramming.h \
126 include/cilk/reducer_file.h \
127 include/cilk/reducer.h \
128 include/cilk/reducer_list.h \
129 include/cilk/reducer_max.h \
130 include/cilk/reducer_min.h \
131 include/cilk/reducer_min_max.h \
132 include/cilk/reducer_opadd.h \
133 include/cilk/reducer_opand.h \
134 include/cilk/reducer_opmul.h \
135 include/cilk/reducer_opor.h \
136 include/cilk/reducer_opxor.h \
137 include/cilk/reducer_ostream.h \
138 include/cilk/reducer_string.h
141 # Work around what appears to be a GNU make bug handling MAKEFLAGS
142 # values defined in terms of make variables, as is the case for CC and
143 # friends when we are called from the top level Makefile.
145 "AR_FLAGS=$(AR_FLAGS)" \
146 "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
148 "CXXFLAGS=$(CXXFLAGS)" \
149 "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
150 "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
151 "INSTALL=$(INSTALL)" \
152 "INSTALL_DATA=$(INSTALL_DATA)" \
153 "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
154 "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
155 "JC1FLAGS=$(JC1FLAGS)" \
156 "LDFLAGS=$(LDFLAGS)" \
157 "LIBCFLAGS=$(LIBCFLAGS)" \
158 "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
160 "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
161 "PICFLAG=$(PICFLAG)" \
162 "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
164 "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
165 "exec_prefix=$(exec_prefix)" \
166 "infodir=$(infodir)" \
169 "includedir=$(includedir)" \
173 "LIBCFLAGS=$(LIBCFLAGS)" \
175 "PICFLAG=$(PICFLAG)" \