commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r7911 - in gnuradio/branches/developers/eb/pmake: gnur


From: eb
Subject: [Commit-gnuradio] r7911 - in gnuradio/branches/developers/eb/pmake: gnuradio-core/src/lib/filter gnuradio-core/src/lib/gengen gr-trellis/src/lib pmt/src/lib
Date: Mon, 3 Mar 2008 15:08:34 -0700 (MST)

Author: eb
Date: 2008-03-03 15:08:34 -0700 (Mon, 03 Mar 2008)
New Revision: 7911

Modified:
   
gnuradio/branches/developers/eb/pmake/gnuradio-core/src/lib/filter/Makefile.am
   
gnuradio/branches/developers/eb/pmake/gnuradio-core/src/lib/gengen/Makefile.am
   gnuradio/branches/developers/eb/pmake/gr-trellis/src/lib/Makefile.am
   gnuradio/branches/developers/eb/pmake/pmt/src/lib/Makefile.am
Log:
fix for ticket:236, indeterminate parallel make

Modified: 
gnuradio/branches/developers/eb/pmake/gnuradio-core/src/lib/filter/Makefile.am
===================================================================
--- 
gnuradio/branches/developers/eb/pmake/gnuradio-core/src/lib/filter/Makefile.am  
    2008-03-03 20:55:21 UTC (rev 7910)
+++ 
gnuradio/branches/developers/eb/pmake/gnuradio-core/src/lib/filter/Makefile.am  
    2008-03-03 22:08:34 UTC (rev 7911)
@@ -64,10 +64,36 @@
 
 include $(srcdir)/Makefile.gen
 
-$(srcdir)/Makefile.gen $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): 
$(CODE_GENERATOR)
+# Ensure parallel does the right thing.
+# http://sources.redhat.com/automake/automake.html#Multiple-Outputs
+
+generate-stamp: $(CODE_GENERATOR)
+       @rm -f generate-tmp
+       @touch generate-tmp
        PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) 
$(PYTHON) $(srcdir)/generate_all.py
        touch $(srcdir)/Makefile.in
+       @mv -f generate-tmp $@
 
+
+$(srcdir)/Makefile.gen $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): 
generate-stamp
+## Recover from the removal of $@
+       @if test -f $@; then :; else \
+               trap 'rm -rf generate-lock generate-stamp' 1 2 13 15; \
+               if mkdir generate-lock 2>/dev/null; then \
+## This code is being executed by the first process.
+                 rm -f generate-stamp; \
+                 $(MAKE) $(AM_MAKEFLAGS) generate-stamp; \
+                 rmdir generate-lock; \
+               else \
+## This code is being executed by the follower processes.
+## Wait until the first process is done.
+                 while test -d generate-lock; do sleep 1; done; \
+## Succeed if and only if the first process succeeded.
+                 test -f generate-stamp; exit $$?; \
+               fi; \
+             fi
+
+
 BUILT_SOURCES = $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC)
 
 

Modified: 
gnuradio/branches/developers/eb/pmake/gnuradio-core/src/lib/gengen/Makefile.am
===================================================================
--- 
gnuradio/branches/developers/eb/pmake/gnuradio-core/src/lib/gengen/Makefile.am  
    2008-03-03 20:55:21 UTC (rev 7910)
+++ 
gnuradio/branches/developers/eb/pmake/gnuradio-core/src/lib/gengen/Makefile.am  
    2008-03-03 22:08:34 UTC (rev 7911)
@@ -113,10 +113,36 @@
 
 include $(srcdir)/Makefile.gen
 
-$(srcdir)/Makefile.gen $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): 
$(CODE_GENERATOR)
+# Ensure parallel does the right thing.
+# http://sources.redhat.com/automake/automake.html#Multiple-Outputs
+
+generate-stamp: $(CODE_GENERATOR)
+       @rm -f generate-tmp
+       @touch generate-tmp
        PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) 
$(PYTHON) $(srcdir)/generate_all.py
        touch $(srcdir)/Makefile.in
+       @mv -f generate-tmp $@
 
+
+$(srcdir)/Makefile.gen $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): 
generate-stamp
+## Recover from the removal of $@
+       @if test -f $@; then :; else \
+               trap 'rm -rf generate-lock generate-stamp' 1 2 13 15; \
+               if mkdir generate-lock 2>/dev/null; then \
+## This code is being executed by the first process.
+                 rm -f generate-stamp; \
+                 $(MAKE) $(AM_MAKEFLAGS) generate-stamp; \
+                 rmdir generate-lock; \
+               else \
+## This code is being executed by the follower processes.
+## Wait until the first process is done.
+                 while test -d generate-lock; do sleep 1; done; \
+## Succeed if and only if the first process succeeded.
+                 test -f generate-stamp; exit $$?; \
+               fi; \
+             fi
+
+
 BUILT_SOURCES = $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC)
 
 # ----------------------------------------------------------------

Modified: gnuradio/branches/developers/eb/pmake/gr-trellis/src/lib/Makefile.am
===================================================================
--- gnuradio/branches/developers/eb/pmake/gr-trellis/src/lib/Makefile.am        
2008-03-03 20:55:21 UTC (rev 7910)
+++ gnuradio/branches/developers/eb/pmake/gr-trellis/src/lib/Makefile.am        
2008-03-03 22:08:34 UTC (rev 7911)
@@ -54,11 +54,36 @@
 
 include $(srcdir)/Makefile.gen
 
-$(srcdir)/Makefile.gen $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): 
$(CODE_GENERATOR)
-       PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python \
-               srcdir=$(srcdir) $(PYTHON) $(srcdir)/generate_all.py
+
+# Ensure parallel does the right thing.
+# http://sources.redhat.com/automake/automake.html#Multiple-Outputs
+
+generate-stamp: $(CODE_GENERATOR)
+       @rm -f generate-tmp
+       @touch generate-tmp
+       PYTHONPATH=$(top_srcdir)/gnuradio-core/src/python srcdir=$(srcdir) 
$(PYTHON) $(srcdir)/generate_all.py
        touch $(srcdir)/Makefile.in
+       @mv -f generate-tmp $@
 
+$(srcdir)/Makefile.gen $(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): 
generate-stamp
+## Recover from the removal of $@
+       @if test -f $@; then :; else \
+               trap 'rm -rf generate-lock generate-stamp' 1 2 13 15; \
+               if mkdir generate-lock 2>/dev/null; then \
+## This code is being executed by the first process.
+                 rm -f generate-stamp; \
+                 $(MAKE) $(AM_MAKEFLAGS) generate-stamp; \
+                 rmdir generate-lock; \
+               else \
+## This code is being executed by the follower processes.
+## Wait until the first process is done.
+                 while test -d generate-lock; do sleep 1; done; \
+## Succeed if and only if the first process succeeded.
+                 test -f generate-stamp; exit $$?; \
+               fi; \
+             fi
+
+
 # These files are built by SWIG.  The first is the C++ glue.
 # The second is the python wrapper that loads the _trellis shared library
 # and knows how to call our extensions.

Modified: gnuradio/branches/developers/eb/pmake/pmt/src/lib/Makefile.am
===================================================================
--- gnuradio/branches/developers/eb/pmake/pmt/src/lib/Makefile.am       
2008-03-03 20:55:21 UTC (rev 7910)
+++ gnuradio/branches/developers/eb/pmake/pmt/src/lib/Makefile.am       
2008-03-03 22:08:34 UTC (rev 7911)
@@ -46,9 +46,35 @@
        qa_pmt_unv.cc                   
 
 
-$(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): $(CODE_GENERATOR)
+
+# Ensure parallel does the right thing.
+# http://sources.redhat.com/automake/automake.html#Multiple-Outputs
+
+generate-stamp: $(CODE_GENERATOR)
+       @rm -f generate-tmp
+       @touch generate-tmp
        PYTHONPATH=$(top_srcdir)/pmt/src/lib srcdir=$(srcdir) $(PYTHON) 
$(srcdir)/generate_unv.py
+       @mv -f generate-tmp $@
 
+$(GENERATED_H) $(GENERATED_I) $(GENERATED_CC): generate-stamp
+## Recover from the removal of $@
+       @if test -f $@; then :; else \
+               trap 'rm -rf generate-lock generate-stamp' 1 2 13 15; \
+               if mkdir generate-lock 2>/dev/null; then \
+## This code is being executed by the first process.
+                 rm -f generate-stamp; \
+                 $(MAKE) $(AM_MAKEFLAGS) generate-stamp; \
+                 rmdir generate-lock; \
+               else \
+## This code is being executed by the follower processes.
+## Wait until the first process is done.
+                 while test -d generate-lock; do sleep 1; done; \
+## Succeed if and only if the first process succeeded.
+                 test -f generate-stamp; exit $$?; \
+               fi; \
+             fi
+
+
 pmt_serial_tags.h: $(srcdir)/../scheme/gnuradio/gen-serial-tags.scm 
$(srcdir)/../scheme/gnuradio/pmt-serial-tags.scm
        $(RUN_GUILE) $(srcdir)/../scheme/gnuradio/gen-serial-tags.scm 
$(srcdir)/../scheme/gnuradio/pmt-serial-tags.scm pmt_serial_tags.h
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]