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)
54 toolexeclib_LTLIBRARIES = libcilkrts.la
56 libcilkrts_la_SOURCES = \
57 runtime/config/$(config_dir)/cilk-abi-vla.c \
58 runtime/config/$(config_dir)/os-unix-sysdep.c \
61 runtime/cilk-abi-cilk-for.cpp \
62 runtime/cilk-abi-vla-internal.c \
64 runtime/cilk_fiber.cpp \
65 runtime/cilk_fiber-unix.cpp \
66 runtime/cilk_malloc.c \
67 runtime/c_reducers.c \
68 runtime/except-gcc.cpp \
69 runtime/frame_malloc.c \
70 runtime/full_frame.c \
71 runtime/global_state.cpp \
73 runtime/local_state.c \
74 runtime/metacall_impl.c \
75 runtime/os_mutex-unix.c \
78 runtime/record-replay.cpp \
79 runtime/reducer_impl.cpp \
81 runtime/signal_node.c \
82 runtime/spin_mutex.c \
84 runtime/symbol_test.c \
85 runtime/sysdep-unix.c \
86 runtime/worker_mutex.c
89 # Load the $(REVISION) value.
90 include include/internal/rev.mk
92 #libcilkrts_la_LDFLAGS = -rpath '$(libdir)'
93 libcilkrts_la_LDFLAGS = -version-info 5:0:0
94 libcilkrts_la_LDFLAGS += -lpthread @lt_cv_dlopen_libs@
96 # If we're building on Linux, use the Linux version script
97 if LINUX_LINKER_SCRIPT
98 libcilkrts_la_LDFLAGS += -Wl,--version-script,$(srcdir)/runtime/linux-symbols.ver
101 # If we're building on MacOS, use the Mac versioning
103 libcilkrts_la_LDFLAGS += -Wl,-exported_symbols_list,$(srcdir)/runtime/mac-symbols.txt
108 libcilkrts_la_LDFLAGS += -no-undefined
110 # C/C++ header files for Cilk.
111 # cilkincludedir = $(includedir)/cilk
112 cilkincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/cilk
113 cilkinclude_HEADERS = \
114 include/cilk/cilk_api.h \
115 include/cilk/cilk_api_linux.h \
116 include/cilk/cilk.h \
117 include/cilk/cilk_stub.h \
118 include/cilk/cilk_undocumented.h \
119 include/cilk/common.h \
120 include/cilk/holder.h \
121 include/cilk/hyperobject_base.h \
122 include/cilk/metaprogramming.h \
123 include/cilk/reducer_file.h \
124 include/cilk/reducer.h \
125 include/cilk/reducer_list.h \
126 include/cilk/reducer_max.h \
127 include/cilk/reducer_min.h \
128 include/cilk/reducer_min_max.h \
129 include/cilk/reducer_opadd.h \
130 include/cilk/reducer_opand.h \
131 include/cilk/reducer_opmul.h \
132 include/cilk/reducer_opor.h \
133 include/cilk/reducer_opxor.h \
134 include/cilk/reducer_ostream.h \
135 include/cilk/reducer_string.h
138 # Work around what appears to be a GNU make bug handling MAKEFLAGS
139 # values defined in terms of make variables, as is the case for CC and
140 # friends when we are called from the top level Makefile.
142 "AR_FLAGS=$(AR_FLAGS)" \
143 "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
145 "CXXFLAGS=$(CXXFLAGS)" \
146 "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
147 "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
148 "INSTALL=$(INSTALL)" \
149 "INSTALL_DATA=$(INSTALL_DATA)" \
150 "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
151 "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
152 "JC1FLAGS=$(JC1FLAGS)" \
153 "LDFLAGS=$(LDFLAGS)" \
154 "LIBCFLAGS=$(LIBCFLAGS)" \
155 "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
157 "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
158 "PICFLAG=$(PICFLAG)" \
159 "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
161 "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
162 "exec_prefix=$(exec_prefix)" \
163 "infodir=$(infodir)" \
166 "includedir=$(includedir)" \
170 "LIBCFLAGS=$(LIBCFLAGS)" \
172 "PICFLAG=$(PICFLAG)" \