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 # Always generate unwind tables
47 GENERAL_FLAGS += -funwind-tables
49 AM_CFLAGS = $(XCFLAGS) $(GENERAL_FLAGS) -std=c99
50 AM_CPPFLAGS = $(GENERAL_FLAGS)
51 AM_LDFLAGS = $(XLDFLAGS)
53 # May be used by toolexeclibdir.
54 gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
57 nodist_toolexeclib_HEADERS = libcilkrts.spec
58 toolexeclib_LTLIBRARIES = libcilkrts.la
60 libcilkrts_la_SOURCES = \
61 runtime/config/$(config_dir)/cilk-abi-vla.c \
62 runtime/config/$(config_dir)/os-unix-sysdep.c \
65 runtime/cilk-abi-cilk-for.cpp \
66 runtime/cilk-abi-vla-internal.c \
68 runtime/cilk_fiber.cpp \
69 runtime/cilk_fiber-unix.cpp \
70 runtime/cilk_malloc.c \
71 runtime/c_reducers.c \
72 runtime/except-gcc.cpp \
73 runtime/frame_malloc.c \
74 runtime/full_frame.c \
75 runtime/global_state.cpp \
77 runtime/local_state.c \
78 runtime/metacall_impl.c \
79 runtime/os_mutex-unix.c \
82 runtime/record-replay.cpp \
83 runtime/reducer_impl.cpp \
85 runtime/signal_node.c \
86 runtime/spin_mutex.c \
88 runtime/symbol_test.c \
89 runtime/sysdep-unix.c \
90 runtime/worker_mutex.c
93 # Load the $(REVISION) value.
94 include include/internal/rev.mk
96 #libcilkrts_la_LDFLAGS = -rpath '$(libdir)'
97 libcilkrts_la_LDFLAGS = -version-info 5:0:0
98 libcilkrts_la_LDFLAGS += @lt_cv_dlopen_libs@
99 libcilkrts_la_LDFLAGS += $(AM_LDFLAGS)
101 # If we're building on Linux, use the Linux version script
102 if LINUX_LINKER_SCRIPT
103 libcilkrts_la_LDFLAGS += -Wl,--version-script,$(srcdir)/runtime/linux-symbols.ver
106 # If we're building on MacOS, use the Mac versioning
108 libcilkrts_la_LDFLAGS += -Wl,-exported_symbols_list,$(srcdir)/runtime/mac-symbols.txt
113 libcilkrts_la_LDFLAGS += -no-undefined
115 # C/C++ header files for Cilk.
116 # cilkincludedir = $(includedir)/cilk
117 cilkincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/cilk
118 nodist_cilkinclude_HEADERS = \
119 include/cilk/cilk_api.h \
120 include/cilk/cilk_api_linux.h \
121 include/cilk/cilk.h \
122 include/cilk/cilk_stub.h \
123 include/cilk/cilk_undocumented.h \
124 include/cilk/common.h \
125 include/cilk/holder.h \
126 include/cilk/hyperobject_base.h \
127 include/cilk/metaprogramming.h \
128 include/cilk/reducer_file.h \
129 include/cilk/reducer.h \
130 include/cilk/reducer_list.h \
131 include/cilk/reducer_max.h \
132 include/cilk/reducer_min.h \
133 include/cilk/reducer_min_max.h \
134 include/cilk/reducer_opadd.h \
135 include/cilk/reducer_opand.h \
136 include/cilk/reducer_opmul.h \
137 include/cilk/reducer_opor.h \
138 include/cilk/reducer_opxor.h \
139 include/cilk/reducer_ostream.h \
140 include/cilk/reducer_string.h
143 # Work around what appears to be a GNU make bug handling MAKEFLAGS
144 # values defined in terms of make variables, as is the case for CC and
145 # friends when we are called from the top level Makefile.
147 "AR_FLAGS=$(AR_FLAGS)" \
148 "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
150 "CXXFLAGS=$(CXXFLAGS)" \
151 "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
152 "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
153 "INSTALL=$(INSTALL)" \
154 "INSTALL_DATA=$(INSTALL_DATA)" \
155 "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
156 "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
157 "JC1FLAGS=$(JC1FLAGS)" \
158 "LDFLAGS=$(LDFLAGS)" \
159 "LIBCFLAGS=$(LIBCFLAGS)" \
160 "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
162 "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
163 "PICFLAG=$(PICFLAG)" \
164 "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
166 "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
167 "exec_prefix=$(exec_prefix)" \
168 "infodir=$(infodir)" \
171 "includedir=$(includedir)" \
175 "LIBCFLAGS=$(LIBCFLAGS)" \
177 "PICFLAG=$(PICFLAG)" \