Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
script for compiling simgrid with cmake
[simgrid.git] / buildtools / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.6)
2 SET(PROJECT_NAME "Simgrid_test")
3
4 ### need to set
5 SET(disable_java 0)
6 SET(disable_gtnets 1)
7 SET(disable_context_threads 1)
8
9 ### Set some variables
10 SET(LANGUAGE "Cxx")
11 SET(PROJECT_DIRECTORY "/home/navarrop/Bureau/simgrid-trunk")
12 SET(PROJECT_SOURCE_DIRECTORY "${PROJECT_DIRECTORY}/src")
13 set(EXECUTABLE_OUTPUT_PATH "${PROJECT_DIRECTORY}/bin")
14 set(LIBRARY_OUTPUT_PATH "${PROJECT_DIRECTORY}/lib")
15 set(INCLUDES "-I${PROJECT_DIRECTORY}/include -I${PROJECT_DIRECTORY}/src/include -I${PROJECT_DIRECTORY}/src")
16
17 ### Initialize of CONTEXT
18 if(${disable_java})
19         SET(HAVE_JAVA 0)
20 else(${disable_java})
21         include(FindJava)
22         include(FindJNI)
23         find_path(JAR   NAMES jar       PATHS NO_DEFAULT_PATHS  )       
24         if(JAVA_RUNTIME AND JAVA_COMPILE AND JAR AND JAVA_INCLUDE_PATH)
25                 SET(HAVE_JAVA 1)
26         else(JAVA_RUNTIME AND JAVA_COMPILE AND JAR AND JAVA_INCLUDE_PATH) 
27                 SET(HAVE_JAVA 0)
28         endif(JAVA_RUNTIME AND JAVA_COMPILE AND JAR AND JAVA_INCLUDE_PATH)
29 endif(${disable_java})
30
31 if(${disable_gtnets})
32         SET(HAVE_GTNETS 0)
33 else(${disable_gtnets})
34         SET(HAVE_GTNETS 1)
35         #AJOUT DES FLAGS GTNETS
36 endif(${disable_gtnets})
37
38 if(${disable_context_threads})
39         SET(CONTEXT_THREADS 0)
40 else(${disable_context_threads})
41         SET(CONTEXT_THREADS 1)
42 endif(${disable_context_threads})
43
44 message("HAVE_JAVA ${HAVE_JAVA}")
45 message("HAVE_GTNETS ${HAVE_GTNETS}")
46 message("CONTEXT_THREADS ${CONTEXT_THREADS}")
47
48
49 ### define source packages
50 set(EXTRA_DIST 
51         portable.h
52         xbt/mallocator_private.h
53         xbt/dict_private.h
54         xbt/heap_private.h
55         xbt/fifo_private.h
56         xbt/graph_private.h
57         xbt/graphxml_parse.c
58         xbt/graphxml.l
59         xbt/graphxml.c
60         xbt/graphxml.dtd
61         xbt/log_private.h
62         xbt/ex_interface.h
63         xbt/backtrace_linux.c
64         xbt/backtrace_windows.c
65         xbt/backtrace_dummy.c
66         surf/maxmin_private.h
67         surf/trace_mgr_private.h
68         surf/surf_private.h
69         surf/surfxml_parse.c
70         surf/simgrid_dtd.l
71         surf/simgrid_dtd.c
72         surf/simgrid.dtd
73         surf/network_private.h
74         surf/network_gtnets_private.h
75         surf/gtnets/gtnets_interface.h
76         surf/gtnets/gtnets_simulator.h
77         surf/gtnets/gtnets_topology.h
78         surf/cpu_ti_private.h
79         include/surf/surf_resource.h
80         include/surf/datatypes.h
81         include/surf/maxmin.h
82         include/surf/trace_mgr.h
83         include/surf/surf.h
84         include/surf/surfxml_parse_private.h
85         include/surf/random_mgr.h
86         include/surf/surf_resource_lmm.h
87         include/xbt/wine_dbghelp.h
88         include/xbt/xbt_os_time.h
89         include/xbt/xbt_os_thread.h
90         msg/private.h
91         msg/mailbox.h
92         simdag/private.h
93         simdag/dax.dtd
94         simdag/dax_dtd.l
95         simdag/dax_dtd.h
96         simdag/dax_dtd.c
97         gras/DataDesc/ddt_parse.yy.l
98         gras/DataDesc/ddt_parse.yy.h
99         gras/Virtu/virtu_rl.h
100         gras/Virtu/virtu_sg.h
101         gras/Virtu/virtu_interface.h
102         gras/Virtu/virtu_private.h
103         gras/Transport/transport_interface.h
104         amok/Bandwidth/bandwidth_private.h
105         amok/amok_modinter.h
106         include/simix/simix.h
107         include/simix/datatypes.h
108         include/simix/context.h
109         simix/private.h
110         simix/smx_context_private.h
111         simix/smx_context_java.h
112         smpi/private.h
113         smpi/smpi_coll_private.h
114         smpi/smpi_mpi_dt_private.h
115         smpi/README
116         mk_supernovae.sh
117 )
118
119 set(XBT_RL_SRC 
120         xbt/xbt_rl_synchro.c
121         xbt/xbt_rl_time.c
122 )
123
124 set(XBT_SG_SRC 
125         xbt/xbt_sg_synchro.c
126         xbt/xbt_sg_time.c
127 )     
128
129 set(SMPI_SRC
130         smpi/smpi_base.c
131         smpi/smpi_bench.c
132         smpi/smpi_global.c
133         smpi/smpi_mpi.c
134         smpi/smpi_sender.c
135         smpi/smpi_receiver.c
136         smpi/smpi_util.c
137         smpi/smpi_coll.c
138         smpi/smpi_mpi_dt.c
139 )
140
141 set(JMSG_C_SRC
142         simix/smx_context_java.c
143         java/jxbt_utilities.c
144         java/jxbt_utilities.h
145         java/jmsg.c java/jmsg.h
146         java/jmsg_channel.c
147         java/jmsg_channel.h
148         java/jmsg_host.c
149         java/jmsg_host.h
150         java/jmsg_process.c
151         java/jmsg_process.h
152         java/jmsg_task.c
153         java/jmsg_task.h
154         java/jmsg_application_handler.c
155         java/jmsg_application_handler.h
156 )
157
158 set(JMSG_JAVA_SRC
159         java/simgrid/msg/MsgException.java
160         java/simgrid/msg/JniException.java
161         java/simgrid/msg/NativeException.java
162         java/simgrid/msg/HostNotFoundException.java
163         java/simgrid/msg/ProcessNotFoundException.java
164         java/simgrid/msg/Msg.java
165         java/simgrid/msg/Process.java
166         java/simgrid/msg/Host.java
167         java/simgrid/msg/Task.java
168         java/simgrid/msg/MsgNative.java
169         java/simgrid/msg/DTDResolver.java
170         java/simgrid/msg/ApplicationHandler.java
171         java/simgrid/msg/Sem.java
172 )
173
174 set(GRAS_RL_SRC
175         gras/rl_stubs.c
176         xbt/xbt_os_thread.c
177         gras/Transport/rl_transport.c
178         gras/Transport/transport_plugin_file.c
179         gras/Transport/transport_plugin_tcp.c
180         gras/Virtu/rl_emul.c
181         gras/Virtu/rl_process.c
182         gras/Virtu/rl_dns.c
183         gras/Msg/rl_msg.c
184         ${XBT_RL_SRC}
185 )
186
187 set(XBT_SRC 
188         xbt/snprintf.c
189         xbt/xbt_str.c
190         xbt/xbt_strbuff.c
191         xbt/xbt_sha.c
192         xbt/ex.c
193         xbt_modinter.h
194         gras_modinter.h
195         xbt/xbt_virtu.c
196         xbt/xbt_os_time.c
197         xbt/asserts.c
198         xbt/log.c
199         xbt/xbt_log_appender_file.c
200         xbt/xbt_log_layout_simple.c
201         xbt/xbt_log_layout_format.c
202         xbt/mallocator.c
203         xbt/dynar.c
204         xbt/dict.c
205         xbt/dict_elm.c
206         xbt/dict_cursor.c
207         xbt/dict_multi.c
208         xbt/heap.c
209         xbt/fifo.c
210         xbt/swag.c
211         xbt/graph.c
212         xbt/set.c
213         xbt/xbt_matrix.c
214         xbt/xbt_queue.c
215         xbt/xbt_synchro.c
216         xbt/xbt_peer.c
217         xbt/xbt_main.c
218         xbt/config.c
219         xbt/cunit.c
220         xbt/graphxml_parse.c
221 )
222
223 set(GTNETS_SRC 
224         surf/gtnets/gtnets_simulator.cc
225         surf/gtnets/gtnets_topology.cc
226         surf/gtnets/gtnets_interface.cc
227         surf/network_gtnets.c
228 )
229
230 set(SURF_SRC 
231         surf/surf_model.c
232         surf/surf_action.c
233         surf/surf_routing.c
234         surf/surf_config.c
235         surf/maxmin.c
236         surf/fair_bottleneck.c
237         surf/lagrange.c
238         surf/trace_mgr.c
239         surf/random_mgr.c
240         surf/surf.c
241         surf/surfxml_parse.c
242         surf/cpu.c
243         surf/network.c
244         surf/network_constant.c
245         surf/workstation.c
246         surf/surf_model_timer.c
247         surf/workstation_ptask_L07.c
248         surf/cpu_ti.c
249         surf/cpu_im.c
250         xbt/xbt_sg_stubs.c
251 )
252
253 set(SIMIX_SRC 
254         simix/smx_global.c
255         simix/smx_deployment.c
256         simix/smx_environment.c
257         simix/smx_host.c
258         simix/smx_process.c
259         simix/smx_context.c
260         simix/smx_action.c
261         simix/smx_synchro.c
262         simix/smx_network.c
263 )
264
265 set(MSG_SRC
266         msg/msg_config.c
267         msg/task.c
268         msg/host.c
269         msg/m_process.c
270         msg/gos.c
271         msg/global.c
272         msg/environment.c
273         msg/deployment.c
274         msg/msg_mailbox.c
275         msg/msg_actions.c
276 )
277
278 set(SIMDAG_SRC
279         simdag/sd_global.c
280         simdag/sd_link.c
281         simdag/sd_task.c
282         simdag/sd_workstation.c
283         simdag/sd_daxloader.c
284 )
285
286 set(GRAS_COMMON_SRC
287         gras/gras.c
288         gras/Transport/transport.c
289         gras/Transport/transport_private.h
290         gras/Msg/gras_msg_mod.c
291         gras/Msg/gras_msg_types.c
292         gras/Msg/gras_msg_exchange.c
293         gras/Msg/gras_msg_listener.c
294         gras/Msg/rpc.c gras/Msg/timer.c
295         gras/Msg/msg_interface.h
296         gras/Msg/msg_private.h
297         gras/Virtu/process.c
298         gras/Virtu/gras_module.c
299         gras/DataDesc/ddt_create.c
300         gras/DataDesc/ddt_convert.c
301         gras/DataDesc/ddt_exchange.c
302         gras/DataDesc/cbps.c
303         gras/DataDesc/datadesc.c
304         gras/DataDesc/datadesc_interface.h
305         gras/DataDesc/datadesc_private.h
306         gras/DataDesc/ddt_parse.c
307         gras/DataDesc/ddt_parse.yy.c
308 )
309
310 set(GRAS_SG_SRC
311         gras/Transport/sg_transport.c
312         gras/Transport/transport_plugin_sg.c
313         gras/Virtu/sg_emul.c
314         gras/Virtu/sg_process.c
315         gras/Virtu/sg_dns.c
316         gras/Msg/sg_msg.c
317         ${XBT_SG_SRC}
318 )
319
320 set(AMOK_SRC
321         amok/amok_base.c
322         amok/Bandwidth/bandwidth.c
323         amok/Bandwidth/saturate.c
324         amok/PeerManagement/peermanagement.c
325 )
326
327 ### depend of some variables setted upper
328 # -->CONTEXT_THREADS
329 if(${CONTEXT_THREADS})
330         set(SURF_SRC
331                 ${SURF_SRC}
332                 xbt/xbt_os_thread.c
333                 simix/smx_context_thread.c
334         )
335         set(EXTRA_DIST
336                 ${EXTRA_DIST}
337                 simix/smx_context_sysv.c
338         )
339 else(${CONTEXT_THREADS})
340         set(SURF_SRC
341                 ${SURF_SRC}
342                 simix/smx_context_sysv.c
343         )
344         set(EXTRA_DIST
345                 ${EXTRA_DIST}
346                 xbt/xbt_os_thread.c
347                 simix/smx_context_thread.c
348         )
349 endif(${CONTEXT_THREADS})
350
351 # -->HAVE_GTNETS
352 if(${HAVE_GTNETS})
353         set(GTNETS_USED 
354                 ${GTNETS_SRC}
355         )
356 else(${HAVE_GTNETS})
357         set(GTNETS_USED "")
358         set(EXTRA_DIST
359                 ${EXTRA_DIST}
360                 ${GTNETS_SRC}
361         )
362 endif(${HAVE_GTNETS})
363
364 set(EXTRA_DIST
365         ${EXTRA_DIST}
366         ${JMSG_JAVA_SRC}
367 )
368
369 ### Simgrid Lib sources
370 set(simgrid_sources
371         ${XBT_SRC}
372         ${SURF_SRC}
373         ${GTNETS_USED}
374         ${SIMIX_SRC}
375         ${MSG_SRC}
376         ${SIMDAG_SRC}
377         ${GRAS_COMMON_SRC}
378         ${GRAS_SG_SRC}
379         ${AMOK_SRC}
380 )
381
382 ### Gras Lib sources
383 set(gras_sources
384         ${XBT_SRC}
385         ${GRAS_COMMON_SRC}
386         ${GRAS_RL_SRC}
387         ${AMOK_SRC}
388 )
389
390 if(${HAVE_JAVA})
391         set(simgrid_sources
392                 ${simgrid_sources}
393                 ${JMSG_C_SRC} # add the binding support to the library
394         )
395 else(${HAVE_JAVA})
396         set(EXTRA_DIST
397                 ${EXTRA_DIST}
398                 ${JMSG_C_SRC}
399                 ${MSG_SRC}
400         )
401 endif(${HAVE_JAVA})
402
403 #message("\n\n")
404 #message("simgrid_sources\n>>${simgrid_sources}<<")
405 #message("\n\n")
406 #message("gras_sources\n>>${gras_sources}<<")
407 #message("\n\n")
408 #message("surf_sources\n>>${SURF_SRC}<<")
409 #message("\n\n")
410 #message("EXTRA_DIST\n>>${EXTRA_DIST}<<")
411 #message("\n\n")
412
413 add_definitions("${INCLUDES}")
414
415 add_library(simgrid SHARED ${simgrid_sources})
416 add_library(gras SHARED ${gras_sources})
417
418
419
420
421
422
423
424
425