Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Taking into account last MSG modifications. No need to pass gras-log arguments to...
[simgrid.git] / Makefile.am
index a83495f..d1d88f5 100644 (file)
@@ -1,44 +1,67 @@
-SUBDIRS= doc src 
+SUBDIRS= include src tools examples testsuite doc
 DISTCLEANFILES =  *~  
 
-ACLOCAL = aclocal -I tools/acmacro -I /usr/share/aclocal/gnome2-macros
+ACLOCAL = aclocal-1.9 -I acmacro
 AUTOMAKE_OPTIONS = gnu
+DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
 
-EXTRA_DIST = bootstrap COPYING INSTALL NEWS README TODO AUTHORS                        
-#      Cflags.Makefile.am                      \
-#      doc/FAQ.txt                             \
-#      doc/footer.html                         \
-#      doc/html                                \
-#      doc/index.doc                           \
-#      doc/Makefile.Example.am                 \
-#      doc/Makefile.Example.in                 \
-#      tools/colorize.pl                       \
-#      tools/index_create.pl                   \
-#      tools/acmacro
+EXTRA_DIST = bootstrap COPYING INSTALL NEWS README README.IEEE TODO AUTHORS ChangeLog ChangeLog.debian\
+       acmacro/aci.m4 \
+       tools/gras-check-arch   tools/compile-remote-worker.in \
+       tools/MSG_visualization tools/platform_generation \
+        tools/doxygen/index_create.pl
 
-
-TAGS: 
-       etags `find . -name "*.[ch]"`
+SOURCE_FILES = $(shell find . -name "*.[ch]")
+TAGS: $(SOURCE_FILES)
+       @etags $(SOURCE_FILES)
 
 tags: TAGS
 
+
+
+if MAINTAINER_MODE
+##
+## The following is only interesting for me, I guess. 
+## Some of the targets will only work on my machine ;)
+##
+
+release: distcheck remote debian publish
+
+debian: dist
+       make -C ~/CVSIMPORT/pkg-grid/gras maintainerclean
+       cp @PACKAGE@-@VERSION@.tar.gz ~/CVSIMPORT/pkg-grid/gras/
+       cp @PACKAGE@-@VERSION@.tar.gz ~/CVSIMPORT/pkg-grid/gras/@PACKAGE@_@VERSION@.orig.tar.gz
+       make -C ~/CVSIMPORT/pkg-grid/gras deb check
+       dput local *.changes
+
+publish-old: dist
+        @echo "----[ Put the documentation on the local filesystem ]----"
+        rm -rf ~/public_html/gras/doc
+        mkdir ~/public_html/gras/doc
+        cp -r doc/html ~/public_html/gras/doc
+        @echo "----[ Put the tarball @VERSION@ on the local filesystem ]----"
+        cp @PACKAGE@-@VERSION@.tar.gz ~/public_html/gras/dl
+        @echo "----[ Sync remote host ]----"
+        make -C public_html publish
+
 publish: dist
         @echo "----[ Put the tarball @VERSION@ on gcl ]----"
         scp @PACKAGE@-@VERSION@.tar.gz gcl.ucsd.edu:/home/www/simgrid/dl/
         scp -r doc/html/* gcl.ucsd.edu:/home/www/simgrid/
-        scp ChangeLog gcl.ucsd.edu:/home/www/simgrid/dl/
+#       scp ChangeLog gcl.ucsd.edu:/home/www/simgrid/dl/ChangeLog
         @echo "----[ Put the tarball @VERSION@ on the local filesystem ]----"
         cp @PACKAGE@-@VERSION@.tar.gz ~/public_html/simgrid2
         cp -r doc/html ~/public_html/simgrid2/doc/
-        cp ChangeLog ~/public_html/simgrid2/
+#       cp ChangeLog ~/public_html/simgrid2/
+        make -C ~/public_html
 
 mail:
-        @ver=`dpkg-parsechangelog -lChangeLog| egrep '^Version: ' | sed 's/Version: //'`;\
+        @ver=`dpkg-parsechangelog -lChangeLog.debian| egrep '^Version: ' | sed 's/Version: //'`;\
          (echo "Hello," ; \
           echo; \
            echo "A new version of GRAS is available. Here is the changelog:";\
           echo;echo;\
-           dpkg-parsechangelog -lChangeLog ;\
+           dpkg-parsechangelog -lChangeLog.debian ;\
            echo;echo; \
           echo "It is available from the official website:";\
           echo "  http://grail.sdsc.edu/simgrid/";\
@@ -50,4 +73,61 @@ mail:
 
 
 splint:
-       splint `find src examples -name '*.c'` +matchanyintegral -warnposix +boolint -Inws_portability/Include/ -Isrc/
+       splint `find src -name '*.c' | grep -v RL | grep -v SG` +matchanyintegral -warnposix +boolint -Inws_portability/Include/ -Isrc/include -Isrc/base -Isrc
+
+##
+## Cruft for remote compilation
+##
+
+MACHINES ?= graal.ens-lyon.fr   allo-psmn.ens-lyon.fr \
+            valnure.cs.ucsb.edu sperm.cs.ucsb.edu     basalt.cs.ucsb.edu \
+           nala.cs.utk.edu     AIX
+
+# ACTION: What to do there
+# possible values:
+#  - clean:   erase any previously existing source tree and 
+#             open the new open
+#  - touch:   touch every file of the source tree to deal with 
+#             clock brokenness. May help, may harm.
+#  - config:  launch configure
+#  - compile: run 'make'
+#  - install: run 'make install'
+#  - check:   run 'make check'
+#
+# default value:
+ACTION ?= clean untar config compile check
+
+REMOTE_PREFIX ?='simgrid'
+
+remote: @PACKAGE@-@VERSION@.tar.gz tools/compile-remote-worker
+       @echo;echo "----[ Recompile the package on remote hosts ]----"
+       @test -e @srcdir@/buildlogs/@PACKAGE@-@VERSION@ || mkdir -p @srcdir@/buildlogs/@PACKAGE@-@VERSION@
+       @failed=0;\
+        for site in $(MACHINES) ; do \
+          machine=`echo $$site |sed 's/^\([^%]*\)%.*$$/\1/'`;\
+          machine2=`echo $$site |sed 's/^\([^%]*\)%\(.*\)$$/\2/'`;\
+          cmd="\"sh -c 'env REMOTE_PREFIX=$(REMOTE_PREFIX) $(REMOTE_PREFIX)/src/compile-remote-worker $(ACTION) 2>&1'\"";\
+          if echo $$site | grep  '%' >/dev/null ; then \
+            echo "----[ Compile on $$machine2 (behind $$machine) ]----";\
+          else \
+            machine=$$site;\
+            echo "----[ Compile on $$machine ]----";\
+          fi;\
+          \
+          echo "-- Copy the data over"; \
+          scp @srcdir@/@PACKAGE@-@VERSION@.tar.gz tools/compile-remote-worker \
+              $$machine:$(REMOTE_PREFIX)/src;\
+          \
+          echo "-- Compiling... (the output gets into @srcdir@/buildlogs/@PACKAGE@-@VERSION@/$$site.log)"; \
+          if echo $$site | grep  '%' >/dev/null ; then \
+            if ssh $$machine "env REMOTE_PREFIX=$(REMOTE_PREFIX) ssh -A $$machine2 $$cmd" 2>&1 > @srcdir@/buildlogs/@PACKAGE@-@VERSION@/$$site.log;\
+            then echo "Sucessful"; else failed=1;echo "Failed (check @srcdir@/buildlogs/@PACKAGE@-@VERSION@/$$site.log)"; fi;echo; \
+          else \
+            if ssh $$machine "eval $$cmd" 2>&1 > @srcdir@/buildlogs/@PACKAGE@-@VERSION@/$$site.log ;\
+            then echo "Sucessful"; else failed=1;echo "Failed (check @srcdir@/buildlogs/@PACKAGE@-@VERSION@/$$site.log)"; fi;echo; \
+          fi;\
+       done;\
+       @srcdir@/tools/compile-stats;\
+       exit $$failed
+
+endif