Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
mv compile-remote-worker graspe-slave
[simgrid.git] / Makefile.am
1 SUBDIRS= include src tools examples testsuite doc
2 DISTCLEANFILES =  *~  
3
4 ACLOCAL = aclocal-1.9 -I acmacro
5 AUTOMAKE_OPTIONS = gnu
6 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
7
8 EXTRA_DIST = bootstrap COPYING INSTALL NEWS README README.IEEE TODO AUTHORS ChangeLog \
9         acmacro/aci.m4 \
10         tools/gras-check-arch   tools/graspe-slave.in \
11         tools/MSG_visualization tools/platform_generation \
12         tools/doxygen/index_create.pl
13
14 SOURCE_FILES = $(shell find . -name "*.[ch]")
15 TAGS: $(SOURCE_FILES)
16         @etags $(SOURCE_FILES)
17
18 tags: TAGS
19
20
21
22 if MAINTAINER_MODE
23 ##
24 ## The following is only interesting for me, I guess. 
25 ## Some of the targets will only work on my machine ;)
26 ##
27
28 release: distcheck remote debian publish
29
30 debian: dist
31         make -C ~/CVSIMPORT/pkg-grid/gras maintainerclean
32         cp @PACKAGE@-@VERSION@.tar.gz ~/CVSIMPORT/pkg-grid/gras/
33         cp @PACKAGE@-@VERSION@.tar.gz ~/CVSIMPORT/pkg-grid/gras/@PACKAGE@_@VERSION@.orig.tar.gz
34         make -C ~/CVSIMPORT/pkg-grid/gras deb check
35         dput local *.changes
36
37 publish-old: dist
38          @echo "----[ Put the documentation on the local filesystem ]----"
39          rm -rf ~/public_html/gras/doc
40          mkdir ~/public_html/gras/doc
41          cp -r doc/html ~/public_html/gras/doc
42          @echo "----[ Put the tarball @VERSION@ on the local filesystem ]----"
43          cp @PACKAGE@-@VERSION@.tar.gz ~/public_html/gras/dl
44          @echo "----[ Sync remote host ]----"
45          make -C public_html publish
46
47 publish: dist
48          @echo "----[ Put the tarball @VERSION@ on gcl ]----"
49          scp @PACKAGE@-@VERSION@.tar.gz gcl.ucsd.edu:/home/www/simgrid/dl/
50          scp -r doc/html/* gcl.ucsd.edu:/home/www/simgrid/
51          scp ChangeLog gcl.ucsd.edu:/home/www/simgrid/dl/ChangeLog
52          @echo "----[ Put the tarball @VERSION@ on the local filesystem ]----"
53          cp @PACKAGE@-@VERSION@.tar.gz ~/public_html/simgrid2
54          cp -r doc/html ~/public_html/simgrid2/doc/
55          cp ChangeLog ~/public_html/simgrid2/
56          make -C ~/public_html
57
58 mail:
59          @ver=`dpkg-parsechangelog -lChangeLog | egrep '^Version: ' | sed 's/Version: //'`;\
60           (echo "Hello," ; \
61            echo; \
62            echo "A new version of SimGrid is available. Here is the changelog:";\
63            echo;echo;\
64            dpkg-parsechangelog -lChangeLog ;\
65            echo;echo; \
66            echo "It is available from the official website:";\
67            echo "  http://grail.sdsc.edu/simgrid/";\
68            echo;echo "Cheers, the SimGrid team.") | \
69           mail -e \
70                -a "From: Arnaud.Legrand@imag.fr" \
71                -s "New version of GRAS ($$ver)" \
72                simgrid2-users@listes.ens-lyon.fr
73
74 splint:
75         splint `make dist-files | grep -v $(PWD) | egrep '\.[ch]$$' |sort -u` \
76                +matchanyintegral -warnposix +boolint \
77                +show-summary +stats\
78                -Iinclude -Isrc/include -Isrc/base -Isrc
79 .PHONY: splint
80 ##
81 ## Cruft for remote compilation
82 ##
83
84 MACHINES ?= graal.ens-lyon.fr   allo-psmn.ens-lyon.fr \
85             valnure.cs.ucsb.edu sperm.cs.ucsb.edu     basalt.cs.ucsb.edu \
86             nala.cs.utk.edu     AIX
87
88 # ACTIONS: What to do there
89 # possible values:
90 #  - scp:     copy a tarball over
91 #  - clean:   erase any previously existing source tree and 
92 #             open the new open
93 #  - untar:   open the tarball which was just copied
94 #  - touch:   touch every file of the source tree to deal with 
95 #             clock brokenness. May help, may harm.
96 #  - config:  launch configure
97 #  - compile: run 'make'
98 #  - install: run 'make install'
99 #  - check:   run 'make check'
100 #
101 # default value:
102 ACTIONS ?= scp clean untar config compile check
103
104 REMOTE_PREFIX ?='simgrid'
105
106 remote: @PACKAGE@-@VERSION@.tar.gz tools/graspe-slave
107         @echo;echo "----[ Recompile the package on remote hosts ]----"
108         @test -e @srcdir@/buildlogs/@PACKAGE@-@VERSION@ || mkdir -p @srcdir@/buildlogs/@PACKAGE@-@VERSION@
109         @failed=0;\
110          for site in $(MACHINES) ; do \
111            machine=`echo $$site |sed 's/^\([^%]*\)%.*$$/\1/'`;\
112            machine2=`echo $$site |sed 's/^\([^%]*\)%\(.*\)$$/\2/'`;\
113            cmd="\"sh -c 'env REMOTE_PREFIX=$(REMOTE_PREFIX) $(REMOTE_PREFIX)/src/graspe-slave $(ACTIONS) 2>&1'\"";\
114            if echo $$site | grep  '%' >/dev/null ; then \
115              echo "----[ Compile on $$machine2 (behind $$machine) ]----";\
116            else \
117              machine=$$site;\
118              echo "----[ Compile on $$machine ]----";\
119            fi;\
120            \
121            if echo $(ACTIONS) |grep -q scp ; then \
122              echo "-- Copy the data over"; \
123              scp @srcdir@/@PACKAGE@-@VERSION@.tar.gz tools/graspe-slave \
124                $$machine:$(REMOTE_PREFIX)/src;\
125            fi; \
126            \
127            echo "-- Compiling... (the output gets into @srcdir@/buildlogs/@PACKAGE@-@VERSION@/$$site.log)"; \
128            if echo $$site | grep  '%' >/dev/null ; then \
129              if ssh $$machine "env REMOTE_PREFIX=$(REMOTE_PREFIX) ssh -A $$machine2 $$cmd" 2>&1 > @srcdir@/buildlogs/@PACKAGE@-@VERSION@/$$site.log;\
130              then echo "Sucessful"; else failed=1;echo "Failed (check @srcdir@/buildlogs/@PACKAGE@-@VERSION@/$$site.log)"; fi;echo; \
131            else \
132              if ssh $$machine "eval $$cmd" 2>&1 > @srcdir@/buildlogs/@PACKAGE@-@VERSION@/$$site.log ;\
133              then echo "Sucessful"; else failed=1;echo "Failed (check @srcdir@/buildlogs/@PACKAGE@-@VERSION@/$$site.log)"; fi;echo; \
134            fi;\
135         done;\
136         @srcdir@/tools/compile-stats;\
137         exit $$failed
138
139 endif
140
141 include $(top_srcdir)/acmacro/dist-files.mk