* pt.c (primary_template_specialization_p): Rename from
[official-gcc.git] / libcilkrts / README
blob54f8b0442947699eb6a2f82b8047841f690fa86b
1 Intel(R) Cilk(TM) Plus Runtime Library
3 Index:
4 1. BUILDING WITH AUTOMAKE
5 2. BUILDING WITH CMAKE
6 3. INSTALLING TO VXWORKS
7 4. USING
8 5. DOXYGEN DOCUMENTATION
9 6. QUESTIONS OR BUGS
10 7. CONTRIBUTIONS
13 #  1. BUILDING WITH AUTOMAKE:
16 To distribute applications that use the Intel Cilk Plus language
17 extensions to non-development systems, you need to build the Intel
18 Cilk Plus runtime library and distribute it with your application.
20 To build the libcilkrts.so runtime library component, you need the
21 autoconf and automake packages, which are available through your
22 favorite package manager.  You also need a C/C++ compiler that
23 supports the Intel Cilk Plus language extensions, since the runtime
24 uses Intel Cilk Plus features internally.  Use either the Intel(R)
25 C++ Compiler (icc command) v12.1 or later, or in GCC 4.9 or later
26 (gcc command).
28 Once you have the necessary prerequisites installed, you can use the
29 following commands to create the library:
31 % libtoolize
32 % aclocal
33 % automake --add-missing
34 % autoconf
35 % ./configure
36 % make
37 % make install
39 This will produce the libcilkrts.so shared object.  To install the
40 library in a custom location, set the prefix while running the
41 configure script:
43 % ./configure --prefix=/your/path/to/lib
46 #  2. BUILDING WITH CMAKE:
49 To distribute applications that use the Intel Cilk Plus language
50 extensions to non-development systems, you need to build the Intel
51 Cilk Plus runtime library and distribute it with your application.
52 This instruction describes the build process using CMake*, which
53 supports Linux*, Windows*, and OS X*.  It is fine to use this process
54 to build a Linux library, but it is highly recommended to use the
55 more mature build process described above when building on Linux.
57 You need the CMake tool and a C/C++ compiler that supports the Intel
58 Cilk Plus language extensions, and the requirements for each operating
59 systems are:
61 Common:
62     CMake 3.0.0 or later
63     Make tools such as make (Linux, OS X) or nmake (Windows)
64 Linux:
65     GCC* 4.9.2 or later, or Intel(R) C++ Compiler v12.1 or later
66 Windows:
67     Intel C++ Compiler v12.1 or later
68     Visual Studio* 2010 or later
69 OS X:
70     Cilk-enabled branch of Clang*/LLVM* (http://cilkplus.github.io),
71     or Intel C++ Compiler v12.1 or later
73 The common steps to build the libraries are 1) invoke cmake with
74 appropriate options, 2) invoke a make tool available on the system.
75 The following examples show build processes on OS X and Windows.
77 OS X:
78     % mkdir ./build && cd ./build
79     % cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
80             -DCMAKE_INSTALL_PREFIX=./install ..
81     % make && make install
83 Windows:
84     % mkdir .\build && cd .\build
85     % cmake -G "NMake Makefiles" -DCMAKE_C_COMPILER=icl \
86             -DCMAKE_CXX_COMPILER=icl -DCMAKE_INSTALL_PREFIX=.\install ..
87     % nmake && nmake install
90 #  3. INSTALLING TO VXWORKS OS
93 For Windows host, run VxWorks_Install.bat.
94 For Linux host, run VxWorks_Install.sh.
96 You may need to give environment variable WIND_BASE to indicate VxWorks
97 installation path.
99 Create a VSB project, and you will see a layer named "CILKPLUS_KERNEL".
100 Enable it and build the project.
102 Create a VIP project with ICC and add component INCLUDE_CILKPLUS, then you
103 will get support of Intel Cilk Plus features in VxWorks.
106 #  4. USING:
109 The Intel(R) C++ Compiler will automatically try to bring in the
110 Intel Cilk Plus runtime in any program that uses the relevant
111 features.  GCC and Clang requires an explicit compiler option,
112 -fcilkplus, to enable Intel Cilk Plus language extensions.
113 For example,
115 % gcc -fcilkplus -o foo.exe foo.c
116 % clang -fcilkplus -o foo.exe foo.c 
118 Older GCC versions (e.g., 4.8 cilkplus branch) requires explicit linking
119 of both the library and its dependencies (libpthread, libdl).
120 For example:
122 % gcc foo.c -lcilkrts -lpthread -ldl
125 #  5. DOXYGEN DOCUMENTATION:
128 The library source has Doxygen markup.  Generate HTML documentation
129 based on the markup by changing directory into runtime and running:
131 % doxygen doxygen.cfg
134 #  6. QUESTIONS OR BUGS:
137 Issues with the Intel Cilk Plus runtime can be addressed in the Intel
138 Cilk Plus forums:
139 http://software.intel.com/en-us/forums/intel-cilk-plus/
142 #  7. CONTRIBUTIONS:
145 The Intel Cilk Plus runtime library is dual licensed. The upstream copy
146 of the library is maintained via the BSD-licensed version available at:
147 http://cilkplus.org/
149 Changes to the Intel Cilk Plus runtime are welcome and should be
150 contributed to the upstream version via http://cilkplus.org/.
152 Thanks to Tobias Burnus for showing us the magic to make gcc and g++
153 automatically include the Cilk Plus runtime.
155 Thanks to Eric Olson for sharing his patch for Raspberry Pi* with us.
157 Thanks to Rainer Orth for submitting patches for exception handling and
158 enabling Cilk Plus on the SPARC* architecture.
160 ------------------------
161 Intel and Cilk are trademarks of Intel Corporation in the U.S. and/or
162 other countries.
164 *Other names and brands may be claimed as the property of others.