When running 'make install' packages/jpl suffers from a race condition:

* install_unix rule calls:
  - cd packages/jpl ; make
  - cd packages/jpl ; make install <-- race

* install_data rule calls:
  - cd packages/jpl ; make install <-- race

I've attached a patch that separate the jpl 'make' from the jpl 'make install'
and ensures the jpl 'make install' is called from a single Makefile rule.

Thanks

Keri
This commit is contained in:
Vitor Santos Costa 2010-10-24 21:30:42 +02:00
parent d5785152f8
commit fe36320b47

View File

@ -517,6 +517,7 @@ all: startup.yss
@ENABLE_CPLINT@ (cd packages/cplint/approx/simplecuddLPADs; $(MAKE)) @ENABLE_CPLINT@ (cd packages/cplint/approx/simplecuddLPADs; $(MAKE))
@ENABLE_CPLINT@ (cd packages/cplint; $(MAKE)) @ENABLE_CPLINT@ (cd packages/cplint; $(MAKE))
@USE_CUDD@ (cd packages/ProbLog/simplecudd; $(MAKE)) @USE_CUDD@ (cd packages/ProbLog/simplecudd; $(MAKE))
@ENABLE_JPL@ @INSTALL_DLLS@ (cd packages/jpl; $(MAKE))
startup.yss: yap@EXEC_SUFFIX@ $(PL_SOURCES) startup.yss: yap@EXEC_SUFFIX@ $(PL_SOURCES)
-rm -f startup.yss -rm -f startup.yss
@ -568,7 +569,6 @@ install_unix: startup.yss libYap.a
@INSTALL_DLLS@ (cd packages/zlib; $(MAKE) @ZLIB_INSTALL@) @INSTALL_DLLS@ (cd packages/zlib; $(MAKE) @ZLIB_INSTALL@)
@USE_MINISAT@ (cd packages/swi-minisat2/C; $(MAKE) install) @USE_MINISAT@ (cd packages/swi-minisat2/C; $(MAKE) install)
@INSTALL_MATLAB@ (cd library/matlab; $(MAKE) install) @INSTALL_MATLAB@ (cd library/matlab; $(MAKE) install)
@ENABLE_JPL@ @INSTALL_DLLS@ (cd packages/jpl; $(MAKE))
@ENABLE_JPL@ @INSTALL_DLLS@ (cd packages/jpl; $(MAKE) install) @ENABLE_JPL@ @INSTALL_DLLS@ (cd packages/jpl; $(MAKE) install)
#@ENABLE_JPL@ @INSTALL_DLLS@ (cd packages/pyswip; $(MAKE) install) #@ENABLE_JPL@ @INSTALL_DLLS@ (cd packages/pyswip; $(MAKE) install)
mkdir -p $(DESTDIR)$(INCLUDEDIR) mkdir -p $(DESTDIR)$(INCLUDEDIR)
@ -619,6 +619,7 @@ install_win32: startup.yss
(cd packages/sgml; $(MAKE) install) (cd packages/sgml; $(MAKE) install)
(cd packages/semweb; $(MAKE) install) (cd packages/semweb; $(MAKE) install)
(cd packages/zlib; $(MAKE) @ZLIB_INSTALL@) (cd packages/zlib; $(MAKE) @ZLIB_INSTALL@)
@ENABLE_JPL@ (cd packages/jpl ; $(MAKE) install)
@USE_MINISAT@ (cd packages/swi-minisat2/C; $(MAKE) install) @USE_MINISAT@ (cd packages/swi-minisat2/C; $(MAKE) install)
@ENABLE_CPLINT@ (cd packages/cplint; $(MAKE) install) @ENABLE_CPLINT@ (cd packages/cplint; $(MAKE) install)
@USE_CUDD@ (cd packages/ProbLog/simplecudd; $(MAKE) install) @USE_CUDD@ (cd packages/ProbLog/simplecudd; $(MAKE) install)
@ -632,7 +633,6 @@ install_data:
(cd packages/swi-minisat2; $(MAKE) install) (cd packages/swi-minisat2; $(MAKE) install)
(cd LGPL ; $(MAKE) install) (cd LGPL ; $(MAKE) install)
(cd GPL ; $(MAKE) install) (cd GPL ; $(MAKE) install)
@ENABLE_JPL@ (cd packages/jpl ; $(MAKE) install)
$(INSTALL_DATA) $(srcdir)/LGPL/pillow/icon_address.pl $(DESTDIR)$(SHAREDIR)/Yap/ $(INSTALL_DATA) $(srcdir)/LGPL/pillow/icon_address.pl $(DESTDIR)$(SHAREDIR)/Yap/
$(INSTALL_DATA) $(srcdir)/LGPL/pillow/pillow.pl $(DESTDIR)$(SHAREDIR)/Yap/ $(INSTALL_DATA) $(srcdir)/LGPL/pillow/pillow.pl $(DESTDIR)$(SHAREDIR)/Yap/
@INSTALLCLP@(cd LGPL/clp ; $(MAKE) install) @INSTALLCLP@(cd LGPL/clp ; $(MAKE) install)