X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d85c5081d8db2930806f2495adee27d1dedcf0d6..3d6fabd4dd7f7a84e8dc435558262c481d68d632:/src/Makefile.am diff --git a/src/Makefile.am b/src/Makefile.am index 4cebdc3f3f..b79aab8581 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,26 +1,31 @@ -AM_CFLAGS= -g #AM_CFLAGS= -DNDEBUG # -DNLOG cuts absolutely all logs at compilation time. # -DNDEBUG cuts asserts and logs at "trace" and "debug" levels. -# -g -ffast-math -funroll-loops -O3 -fno-strict-aliasing -# Those should be added by configure when using gcc -# fast-math is nasty when using IEEE floating point semantic -# strict-aliasing breaks my type-punning bad habit. MAINTAINERCLEANFILES=Makefile.in -INCLUDES= -I$(top_srcdir)/include -I$(top_srcdir)/src/include +INCLUDES= -I$(top_srcdir)/include -I$(top_srcdir)/src/include + +bin_SCRIPTS= smpi/smpicc smpi/smpirun + EXTRA_DIST= \ \ portable.h \ \ + xbt/mallocator_private.h \ xbt/dynar_private.h \ xbt/dict_private.h \ xbt/heap_private.h \ xbt/fifo_private.h \ - xbt/context_private.h xbt/context_win32.h xbt/context_win32.c\ + xbt/graph_private.h \ + xbt/graphxml_parse.c \ + xbt/graphxml.l \ + xbt/graphxml.c \ + xbt/graphxml.dtd \ + xbt/context_private.h \ + xbt/ex_interface.h \ \ surf/maxmin_private.h \ surf/trace_mgr_private.h \ @@ -28,7 +33,7 @@ EXTRA_DIST= \ surf/cpu_private.h \ surf/workstation_private.h \ surf/surf_timer_private.h \ - surf/surf_parse.c \ + surf/surfxml_parse.c \ surf/surfxml.l \ surf/surfxml.c \ surf/surfxml.dtd \ @@ -39,21 +44,25 @@ EXTRA_DIST= \ include/surf/maxmin.h \ include/surf/trace_mgr.h \ include/surf/surf.h \ - include/surf/surf_parse_private.h \ + include/surf/surfxml_parse_private.h \ \ - include/xbt/xbt_portability.h \ + include/xbt/xbt_os_time.h \ + include/xbt/xbt_os_thread.h \ include/xbt/context.h \ \ msg/private.h \ \ - gras/Transport/transport_interface.h \ - gras/Virtu/virtu_interface.h gras/Virtu/virtu_private.h\ - gras/Virtu/virtu_rl.h gras/Virtu/virtu_sg.h \ - gras/DataDesc/ddt_parse.yy.l gras/DataDesc/ddt_parse.yy.c \ + simdag/private.h \ \ - amok/Bandwidth/bandwidth_private.h - -# gras_private.h + gras/DataDesc/ddt_parse.yy.l \ + gras/Virtu/virtu_interface.h \ + amok/Bandwidth/bandwidth_private.h \ + amok/amok_modinter.h + \ + include/simix/simix.h include/simix/datatypes.h \ + simix/msg_simix_private.h \ + \ + smpi/private.h smpi/smpi.h #LIBRARY_VERSION= 0:0:0 # | | | @@ -68,7 +77,7 @@ EXTRA_DIST= \ # | Set to zero if current is incremented # +- Increment if interfaces have been added, removed or changed -VERSION_INFO= -release 20050627 -version-info 0:0:0 +VERSION_INFO= -version-info 2:0:0 # from `info libtool "Updating version info"` # and `info libtool "Release numbers"` # @@ -93,111 +102,355 @@ VERSION_INFO= -release 20050627 -version-info 0:0:0 # It modifies the library name, and you thus cannot say that a library # using this trick is ready for a "stable" release (say, in Debian). -lib_LTLIBRARIES= libsimgrid.la libgras.la -COMMON_SRC=\ +################################################ +# Declaration of the different modules content # +################################################ + +XBT_SRC=\ \ - xbt/snprintf.c \ + xbt/snprintf.c xbt/xbt_str.c \ xbt/ex.c \ \ xbt_modinter.h gras_modinter.h \ + xbt/xbt_virtu.c \ \ - xbt/sysdep.c \ + xbt/xbt_os_time.c \ xbt/asserts.c \ - xbt/log.c xbt/log_default_appender.c \ + xbt/log.c xbt/xbt_log_appender_file.c \ + xbt/xbt_log_layout_simple.c xbt/xbt_log_layout_format.c \ + xbt/mallocator.c \ xbt/dynar.c \ xbt/dict.c xbt/dict_elm.c xbt/dict_cursor.c \ xbt/dict_multi.c \ xbt/heap.c \ xbt/fifo.c \ xbt/swag.c \ + xbt/graph.c \ xbt/set.c \ - xbt/module.c \ - xbt/config.c \ + xbt/xbt_matrix.c \ + \ + xbt/xbt_queue.c \ + \ + xbt/xbt_peer.c \ \ - gras/gras.c \ + xbt/xbt_main.c \ + \ + xbt/config.c \ + xbt/cunit.c \ + xbt/graphxml_parse.c + +XBT_RL_SRC = \ + xbt/xbt_rl_synchro.c \ + xbt/xbt_rl_time.c +XBT_SG_SRC = \ + xbt/xbt_sg_synchro.c \ + xbt/xbt_sg_time.c + +SURF_SRC= \ + surf/maxmin.c \ + surf/fair_bottleneck.c \ + surf/lagrange.c \ + surf/trace_mgr.c \ + surf/surf.c \ + surf/surfxml_parse.c \ + surf/cpu.c surf/network.c surf/workstation.c \ + surf/surf_timer.c \ + surf/network_dassf.c \ + surf/workstation_KCCFLN05.c + +if CONTEXT_THREADS + SURF_SRC += xbt/xbt_os_thread.c +else + SURF_SRC += xbt/xbt_os_thread_stubs.c +endif + +GTNETS_SRC= \ + surf/gtnets/gtnets_simulator.cc \ + surf/gtnets/gtnets_topology.cc \ + surf/gtnets/gtnets_interface.cc \ + surf/network_gtnets.c + +# Separated because we don't want it in libsimgrid4java +CTX_SRC= xbt/context.c +JCTX_SRC= java/jxbt_context.c java/jxbt_context.h + +SIMIX_SRC= \ + simix/smx_global.c \ + simix/smx_deployment.c \ + simix/smx_config.c \ + simix/smx_environment.c \ + simix/smx_host.c \ + simix/smx_process.c \ + simix/smx_action.c \ + simix/smx_synchro.c + +SMPI_SRC= \ + smpi/smpi_base.c \ + smpi/smpi_mpi.c + +MSG_SRC= msg/msg_config.c \ + msg/task.c msg/host.c msg/m_process.c msg/gos.c \ + msg/global.c msg/environment.c msg/deployment.c + +JMSG_C_SRC = \ + java/jxbt_utilities.c java/jxbt_utilities.h \ + java/jmsg.c java/jmsg.h \ + java/jmsg_channel.c java/jmsg_channel.h \ + java/jmsg_host.c java/jmsg_host.h \ + java/jmsg_parallel_task.c java/jmsg_parallel_task.h \ + java/jmsg_process.c java/jmsg_process.h \ + java/jmsg_task.c java/jmsg_task.h + +JMSG_JAVA_SRC = \ + java/simgrid/msg/MsgException.java \ + java/simgrid/msg/JniException.java \ + java/simgrid/msg/NativeException.java \ + java/simgrid/msg/HostNotFoundException.java \ + java/simgrid/msg/ProcessNotFoundException.java \ \ + java/simgrid/msg/Process.java \ + java/simgrid/msg/ApplicationHandler.java \ + java/simgrid/msg/Channel.java \ + java/simgrid/msg/Host.java \ + java/simgrid/msg/Msg.java \ + java/simgrid/msg/Task.java \ + java/simgrid/msg/ParallelTask.java + +SIMDAG_SRC= simdag/sd_global.c simdag/sd_link.c simdag/sd_task.c simdag/sd_workstation.c + +GRAS_COMMON_SRC= \ + gras/gras.c \ gras/Transport/transport.c gras/Transport/transport_private.h \ + gras/Msg/gras_msg_mod.c gras/Msg/gras_msg_types.c \ + gras/Msg/gras_msg_exchange.c gras/Msg/gras_msg_listener.c \ + gras/Msg/rpc.c gras/Msg/timer.c \ + gras/Msg/msg_interface.h gras/Msg/msg_private.h \ + \ + gras/Virtu/process.c gras/Virtu/gras_module.c \ \ gras/DataDesc/ddt_create.c \ gras/DataDesc/ddt_convert.c gras/DataDesc/ddt_exchange.c \ gras/DataDesc/cbps.c gras/DataDesc/datadesc.c \ gras/DataDesc/datadesc_interface.h gras/DataDesc/datadesc_private.h \ - gras/DataDesc/ddt_parse.c gras/DataDesc/ddt_parse.yy.c gras/DataDesc/ddt_parse.yy.h \ - \ - gras/Msg/msg.c gras/Msg/timer.c \ - gras/Msg/msg_interface.h gras/Msg/msg_private.h \ - \ - gras/Virtu/process.c + gras/DataDesc/ddt_parse.c gras/DataDesc/ddt_parse.yy.c gras/DataDesc/ddt_parse.yy.h -RL_SRC= \ - gras/Transport/rl_transport.c gras/Transport/transport_plugin_tcp.c gras/Transport/transport_plugin_file.c \ - gras/Transport/transport_plugin_buf.c \ +GRAS_RL_SRC= \ + gras/rl_stubs.c xbt/xbt_os_thread.c \ + \ + gras/Transport/rl_transport.c \ + gras/Transport/transport_plugin_file.c gras/Transport/transport_plugin_tcp.c \ \ gras/Virtu/rl_emul.c \ - gras/Virtu/rl_process.c gras/Virtu/rl_time.c \ + gras/Virtu/rl_process.c \ gras/Virtu/rl_dns.c\ \ gras/Msg/rl_msg.c -SG_SRC= \ - xbt/context.c \ - \ - surf/maxmin.c \ - surf/trace_mgr.c \ - surf/surf.c \ - surf/surf_parse.c \ - surf/cpu.c surf/network.c surf/workstation.c \ - surf/surf_timer.c \ - surf/network_dassf.c \ - surf/workstation_KCCFLN05.c \ - \ - msg/msg_config.c \ - msg/task.c msg/host.c msg/m_process.c msg/gos.c \ - msg/global.c msg/environment.c msg/deployment.c \ - \ - gras/Transport/sg_transport.c gras/Transport/transport_plugin_sg.c \ +GRAS_RL_SRC+=$(XBT_RL_SRC) + +GRAS_SG_SRC= gras/Transport/sg_transport.c gras/Transport/transport_plugin_sg.c \ \ gras/Virtu/sg_emul.c \ - gras/Virtu/sg_process.c gras/Virtu/sg_time.c \ + gras/Virtu/sg_process.c \ gras/Virtu/sg_dns.c\ \ gras/Msg/sg_msg.c +GRAS_SG_SRC+=$(XBT_SG_SRC) + AMOK_SRC= \ - amok/base.c \ - amok/Bandwidth/bandwidth.c amok/Bandwidth/saturate.c + amok/amok_base.c \ + amok/Bandwidth/bandwidth.c amok/Bandwidth/saturate.c \ + amok/PeerManagement/peermanagement.c + +############################## +# Deal with optional modules # +############################## + +if HAVE_GTNETS + GTNETS_USED=$(GTNETS_SRC) +else + GTNETS_USED= + EXTRA_DIST+=$(GTNETS_SRC) +endif + +if HAVE_SDP + SDP_SRC= surf/sdp.c +else + SDP_SRC= + EXTRA_DIST+=surf/sdp.c +endif + +### +### Declare the library content +### + +lib_LTLIBRARIES= libsimgrid.la libgras.la libsmpi.la + +libgras_la_SOURCES= $(XBT_SRC) $(GRAS_COMMON_SRC) $(GRAS_RL_SRC) $(AMOK_SRC) +libgras_la_LDFLAGS = -no-undefined $(VERSION_INFO) @GRAS_DEP@ @LD_DYNAMIC_FLAGS@ -lm + +libsimgrid_la_SOURCES = $(XBT_SRC) $(SURF_SRC) $(GTNETS_USED) $(SDP_SRC) \ + $(SIMIX_SRC) $(CTX_SRC) \ + $(MSG_SRC) $(SIMDAG_SRC) \ + $(GRAS_COMMON_SRC) $(GRAS_SG_SRC) $(AMOK_SRC) +libsimgrid_la_LDFLAGS = -no-undefined $(VERSION_INFO) @SIMGRID_DEP@ @LD_DYNAMIC_FLAGS@ -lm + +# Please do not add -no-undefined to libsmpi_la_LDFLAGS: +# smpi_simulated_main is indeed defined in user code, and undef in the +# library (no idea why it works under linux, but it fails under windows) +libsmpi_la_LIBADD = libsimgrid.la +libsmpi_la_SOURCES = $(SMPI_SRC) +libsmpi_la_LDFLAGS = $(VERSION_INFO) @SMPI_DEP@ @LD_DYNAMIC_FLAGS@ -lm + + +## +## Java cruft + +if HAVE_JAVA +lib_LTLIBRARIES += libsimgrid4java.la + +libsimgrid4java_la_SOURCES = $(XBT_SRC) $(SURF_SRC) $(GTNETS_USED) $(SDP_SRC) \ + $(SIMIX_SRC) $(JCTX_SRC) \ + $(JMSG_C_SRC) $(MSG_SRC) \ + $(GRAS_COMMON_SRC) $(GRAS_SG_SRC) $(AMOK_SRC) +libsimgrid4java_la_LDFLAGS = -no-undefined $(VERSION_INFO) @SIMGRID_DEP@ @LD_DYNAMIC_FLAGS@ -lm +libsimgrid4java_la_GCJFLAGS = -fjni + +clean-local: + -rm -rf .classes + +jardir = $(prefix)/jar +jar_DATA = simgrid.jar + +simgrid.jar: $(JMSG_JAVA_SRC) + [ -e .classes ] || mkdir .classes + $(JAVAC) -sourcepath java -d .classes $(JMSG_JAVA_SRC) + $(JAR) cvf simgrid.jar -C .classes .; +else +EXTRA_DIST += $(JCTX_SRC) $(JMSG_C_SRC) $(MSG_SRC) +endif + +if GRAMINE_MODE +else +### +### Testing infrastructure +### + +# Test files must be added both to the TEST_CFILES and TEST_UNITS because +# if I compute TEST_UNITS from TEST_CFILES, automake fails to note that they +# are generated. Sorry about that. + +# If you add a test unit, you should regenerate simgrid_units_main.c from scratch: +# make clean-units ; make testall + +# Suites and tests run in the given order. + +noinst_PROGRAMS=testall +TEST_CFILES=xbt/cunit.c xbt/ex.c \ + xbt/dynar.c xbt/dict.c xbt/set.c xbt/swag.c \ + xbt/xbt_str.c \ + xbt/config.c +TEST_UNITS= @builddir@/cunit_unit.c @builddir@/ex_unit.c \ + @builddir@/dynar_unit.c @builddir@/dict_unit.c @builddir@/set_unit.c @builddir@/swag_unit.c \ + @builddir@/xbt_str_unit.c \ + @builddir@/config_unit.c +CLEANFILES=$(TEST_UNITS) BUILT_SOURCES=../include/surf/surfxml.h surf/surfxml.c \ - gras/DataDesc/ddt_parse.yy.c + ../include/xbt/graphxml.h xbt/graphxml.c \ + gras/DataDesc/ddt_parse.yy.c \ + $(TEST_UNITS) @builddir@/simgrid_units_main.c + +testall_SOURCES= $(TEST_UNITS) @builddir@/simgrid_units_main.c +testall_LDADD=libgras.la +TESTS=testall +TESTS_ENVIRONMENT=$(SG_TEST_EXENV) + +EXTRA_DIST+=$(testall_SOURCES) + +if MAINTAINER_MODE +@builddir@/cunit_unit.c: xbt/cunit.c + @top_srcdir@/tools/sg_unit_extractor.pl $^ +@builddir@/ex_unit.c: xbt/ex.c + @top_srcdir@/tools/sg_unit_extractor.pl $^ +@builddir@/xbt_str_unit.c: xbt/xbt_str.c + @top_srcdir@/tools/sg_unit_extractor.pl $^ +@builddir@/dynar_unit.c: xbt/dynar.c + @top_srcdir@/tools/sg_unit_extractor.pl $^ +@builddir@/dict_unit.c: xbt/dict.c + @top_srcdir@/tools/sg_unit_extractor.pl $^ +@builddir@/set_unit.c: xbt/set.c + @top_srcdir@/tools/sg_unit_extractor.pl $^ +@builddir@/swag_unit.c: xbt/swag.c + @top_srcdir@/tools/sg_unit_extractor.pl $^ +@builddir@/config_unit.c: xbt/config.c + @top_srcdir@/tools/sg_unit_extractor.pl $^ + +@builddir@/simgrid_units_main.c: $(TEST_UNITS) + @top_srcdir@/tools/sg_unit_extractor.pl @srcdir@/xbt/cunit.c + +clean-units: + rm -f simgrid_units_main.c *_unit.c @srcdir@/simgrid_units_main.c @srcdir@/*_unit.c + for n in $(TEST_UNITS) ; do \ + dep=`echo $$n|sed -e 's|.c$$|.Po|' -e 's|[^/]*/||' -e 's|^|.deps/|'`; \ + echo "Removing dependency tracker of $$n ($$dep @srcdir@/$$dep)"; \ + rm -vf $$dep @srcdir@/$$dep; touch $$dep; \ + done +else + +$(TEST_UNITS) simgrid_units_main.c clean-units: + @echo "ERROR: Test units not generated." + @echo "ERROR: If you are using a CVS checkout, configure with the --enable-maintainer-mode flag" + @echo "ERROR: If not, please report the bug to the simgrid-devel mailing list." + @exit 1 + +endif + +### +### Regenerate what needs to with flex & flexml +### + gras/DataDesc/ddt_parse.yy.c: gras/DataDesc/ddt_parse.yy.l - @LEX@ -o$@ -Pgras_ddt_parse_ $^ + set -e;@LEX@ -o$@ -Pgras_ddt_parse_ --noline $^ if MAINTAINER_MODE surf/surfxml.c: surf/surfxml.l - @LEX@ -o$@ -Psurf_parse_ $^ + set -e;mkdir -p `dirname $@`; @LEX@ -o$@ -Psurf_parse_ --noline $^ +xbt/graphxml.c: xbt/graphxml.l + set -e;mkdir -p `dirname $@`; @LEX@ -o$@ -Pxbt_graph_parse_ --noline $^ if HAVE_FLEXML -surf/surfxml.l: surf/surfxml.dtd - set -e; cd surf; flexml -b 1000000 -S -L surfxml.dtd -../include/surf/surfxml.h: surf/surfxml.dtd - cd ../include/surf; flexml -H -L ../../src/surf/surfxml.dtd +surf/surfxml.l: $(srcdir)/surf/surfxml.dtd + set -e; mkdir -p surf; flexml -b 1000000 -P surfxml --sysid=surfxml.dtd -S $@ -L $^ +$(top_srcdir)/include/surf/surfxml.h: $(srcdir)/surf/surfxml.dtd + set -e; flexml -P surfxml --sysid=surfxml.dtd -H $@ -L $^ + sed 's/extern *\([^ ]*[ \*]*\)/XBT_PUBLIC_DATA(\1) /' -i $@ + sed 's/XBT_PUBLIC_DATA(\([^)]*\)) *\([^(]*\)(/XBT_PUBLIC(\1) \2(/' -i $@ + + +xbt/graphxml.l: $(srcdir)/xbt/graphxml.dtd + set -e; flexml -b 1000000 -P graphxml --sysid=graphxml.dtd -S $@ -L $^ +$(top_srcdir)/include/xbt/graphxml.h: $(srcdir)/xbt/graphxml.dtd + set -e; flexml -P graphxml --sysid=graphxml.dtd -H $@ -L $^ + sed 's/extern *\([^ ]*[ \*]*\)/XBT_PUBLIC_DATA(\1) /' -i $@ + sed 's/XBT_PUBLIC_DATA(\([^)]*\)) *\([^(]*\)(/XBT_PUBLIC(\1) \2(/' -i $@ else -../include/surf/surfxml.h surf/surfxml.l: surf/surfxml.dtd +$(top_srcdir)/include/surf/surfxml.h surf/surfxml.l: $(top_srcdir)/src/surf/surfxml.dtd @echo "ERROR: src/surf/surfxml.dtd was modified, but the flexml program was not detected" @echo "ERROR: Please install it, or if you didn't modify this file, try this:" - @echo "ERROR: touch src/include/surf/surfxml.h src/surf/surfxml.l" + @echo "ERROR: touch include/surf/surfxml.h src/surf/surfxml.l" + @exit 1 +$(top_srcdir)/include/xbt/graphxml.h xbt/graphxml.l: $(top_srcdir)/src/xbt/graphxml.dtd + @echo "ERROR: src/xbt/graphxml.dtd was modified, but the flexml program was not detected" + @echo "ERROR: Please install it, or if you didn't modify this file, try this:" + @echo "ERROR: touch include/xbt/graphxml.h src/xbt/graphxml.l" @exit 1 endif endif - -libgras_la_SOURCES= $(COMMON_SRC) $(RL_SRC) $(AMOK_SRC) -libgras_la_LDFLAGS = $(VERSION_INFO) @GRAS_DEP@ @LD_DYNAMIC_FLAGS@ -lm - -libsimgrid_la_SOURCES= $(COMMON_SRC) $(SG_SRC) $(AMOK_SRC) -libsimgrid_la_LDFLAGS = $(VERSION_INFO) @SIMGRID_DEP@ @LD_DYNAMIC_FLAGS@ -lm - +endif include $(top_srcdir)/acmacro/dist-files.mk