diff --git a/Makefile.conf.in b/Makefile.conf.in index 7119fa9504360d89ec5aacd9104d8c37e9332e4e..2f8e3be59a927c0a9bb5c618fd99f61432b5ac48 100644 --- a/Makefile.conf.in +++ b/Makefile.conf.in @@ -18,12 +18,12 @@ program_transform_name=@program_transform_name@ program_can_run_mpi=@program_can_run_mpi@ program_can_run=@program_can_run@ LD_RO=@LD_RO@ -exec_prefix="@exec_prefix@" -bindir="@bindir@" -libdir="@libdir@" -includedir="@includedir@" -datarootdir="@datarootdir@" -datadir="@datadir@" -docdir="${datarootdir}/doc/@program_name@" -htmldir="@htmldir@" -program_name="@program_name@" +exec_prefix=@exec_prefix@ +bindir=@bindir@ +libdir=@libdir@ +includedir=@includedir@ +datarootdir=@datarootdir@ +datadir=@datadir@ +docdir=${datarootdir}/doc/@program_name@ +htmldir=@htmldir@ +program_name=@program_name@ diff --git a/patches/patch.sh b/patches/patch.sh index 0aa5cac5fe1b738a015d5b9de222777d47d5f904..e6fa2c3cbf1b6db7592f5d438f539d390158a41b 100755 --- a/patches/patch.sh +++ b/patches/patch.sh @@ -243,7 +243,7 @@ case "$action" in if [ -d "$diff" ]; then test -n "$quiet" || echo "Patching with on-the-fly diff from stored originals" - PREPLUMED=$(cd $diff ; find . -name "*.preplumed" | sort) + PREPLUMED=$(cd "$diff" ; find . -name "*.preplumed" | sort) for bckfile in $PREPLUMED ; do file="${bckfile%.preplumed}" if test -e "$file" ; then diff --git a/regtest/scripts/run b/regtest/scripts/run index 4cf5dee0eba6f21b00e8a335aea1e8d807732d78..ee4e3580630324778c62b15634da08f2d3e59102 100755 --- a/regtest/scripts/run +++ b/regtest/scripts/run @@ -111,7 +111,7 @@ case "$type" in echo "Run Make" $plumed info --configuration > Makefile.conf $plumed --is-installed || ln -s $($plumed info --root)/src plumed - cat <($plumed info --configuration) $($plumed info --root)/src/lib/Plumed.inc.static ../../../scripts/exe.make > Makefile + cat <($plumed info --configuration) "$($plumed info --root)/src/lib/Plumed.inc.static" ../../../scripts/exe.make > Makefile make exe 1>out 2> err $mpi $valgrind ./exe $arg >> out 2>> err ;; diff --git a/src/lib/Makefile b/src/lib/Makefile index ba64da1935d666ec1c5c0dd2dd75ec7fcfcabcc2..622e8e830bbbe56be2436a233d95c483de8bcd92 100644 --- a/src/lib/Makefile +++ b/src/lib/Makefile @@ -117,55 +117,55 @@ ifdef PLUMED_LIBSUFFIX endif cd ../config ; $(MAKE) $(MAKE) uninstall - mkdir -p $(DESTDIR)$(bindir) - mkdir -p $(DESTDIR)$(libdir) - mkdir -p $(DESTDIR)$(includedir)/$(program_name) - mkdir -p $(DESTDIR)$(libdir)/$(program_name)/obj - mkdir -p $(DESTDIR)$(libdir)/$(program_name)/src/lib - mkdir -p $(DESTDIR)$(libdir)/$(program_name)/src/config - mkdir -p $(DESTDIR)$(libdir)/$(program_name)/src/colvar + mkdir -p "$(DESTDIR)$(bindir)" + mkdir -p "$(DESTDIR)$(libdir)" + mkdir -p "$(DESTDIR)$(includedir)/$(program_name)" + mkdir -p "$(DESTDIR)$(libdir)/$(program_name)/obj" + mkdir -p "$(DESTDIR)$(libdir)/$(program_name)/src/lib" + mkdir -p "$(DESTDIR)$(libdir)/$(program_name)/src/config" + mkdir -p "$(DESTDIR)$(libdir)/$(program_name)/src/colvar" # rebuild libraries and main using new target dir $(MAKE) install-build # copy documentation: - if test -d ../../user-doc/html ; then mkdir -p $(DESTDIR)$(htmldir) && cd ../../ && tar cf - user-doc/html | tar xf - -C $(DESTDIR)$(htmldir)/ ; fi - if test -d ../../developer-doc/html ; then mkdir -p $(DESTDIR)$(htmldir) && cd ../../ && tar cf - developer-doc/html | tar xf - -C $(DESTDIR)$(htmldir)/ ; fi - if test -f ../../user-doc/manual.pdf ; then mkdir -p $(DESTDIR)$(htmldir)/user-doc && cp ../../user-doc/manual.pdf $(DESTDIR)$(htmldir)/user-doc/ ; fi + if test -d ../../user-doc/html ; then mkdir -p "$(DESTDIR)$(htmldir)" && cd ../../ && tar cf - user-doc/html | tar xf - -C "$(DESTDIR)$(htmldir)/" ; fi + if test -d ../../developer-doc/html ; then mkdir -p "$(DESTDIR)$(htmldir)" && cd ../../ && tar cf - developer-doc/html | tar xf - -C "$(DESTDIR)$(htmldir)/" ; fi + if test -f ../../user-doc/manual.pdf ; then mkdir -p "$(DESTDIR)$(htmldir)/user-doc" && cp ../../user-doc/manual.pdf "$(DESTDIR)$(htmldir)/user-doc/" ; fi # copy patches and scripts - cd ../../ ; tar cf - patches scripts | tar xf - -C $(DESTDIR)$(libdir)/$(program_name)/ + cd ../../ ; tar cf - patches scripts | tar xf - -C "$(DESTDIR)$(libdir)/$(program_name)/" # copy Template.cpp file (we leave it in src/colvar/ for backward compatibility) - cp ../colvar/Template.cpp $(DESTDIR)$(libdir)/$(program_name)/src/colvar/ + cp ../colvar/Template.cpp "$(DESTDIR)$(libdir)/$(program_name)/src/colvar/" # copy compile_options.sh file (we leave it in src/colvar/ for backward compatibility) - cp ../config/compile_options.sh $(DESTDIR)$(libdir)/$(program_name)/src/config/compile_options.sh + cp ../config/compile_options.sh "$(DESTDIR)$(libdir)/$(program_name)/src/config/compile_options.sh" ifdef LD_RO - cp install/kernel.o $(DESTDIR)$(libdir)/$(program_name)/obj/kernel.o + cp install/kernel.o "$(DESTDIR)$(libdir)/$(program_name)/obj/kernel.o" else - ../maketools/copyobjects $(DESTDIR)$(libdir)/$(program_name)/obj/k $(OBJ_KERNEL) + ../maketools/copyobjects "$(DESTDIR)$(libdir)/$(program_name)/obj/k" $(OBJ_KERNEL) endif - cp $(OBJ_WRAPPER) $(DESTDIR)$(libdir)/$(program_name)/obj/PlumedStatic.o - cp $(OBJ_DYNAMIC_WRAPPER) $(DESTDIR)$(libdir)/$(program_name)/obj/Plumed.o + cp $(OBJ_WRAPPER) "$(DESTDIR)$(libdir)/$(program_name)/obj/PlumedStatic.o" + cp $(OBJ_DYNAMIC_WRAPPER) "$(DESTDIR)$(libdir)/$(program_name)/obj/Plumed.o" # also copy .h files into include/ dir - cd ../../src ; tar cf - */*.h */*/*.h | tar xf - -C $(DESTDIR)$(includedir)/$(program_name)/ + cd ../../src ; tar cf - */*.h */*/*.h | tar xf - -C "$(DESTDIR)$(includedir)/$(program_name)/" # install executable - cp install/plumed $(DESTDIR)$(bindir)/$(program_name) + cp install/plumed "$(DESTDIR)$(bindir)/$(program_name)" # patch file for cross compiling - cp install/plumed-patch $(DESTDIR)$(bindir)/$(program_name)-patch + cp install/plumed-patch "$(DESTDIR)$(bindir)/$(program_name)-patch" # copy include files for cmake and make # we leave it in src/lib/ for backward compatibility - cp install/Plumed.cmake* $(DESTDIR)$(libdir)/$(program_name)/src/lib/ - cp install/Plumed.inc* $(DESTDIR)$(libdir)/$(program_name)/src/lib/ + cp install/Plumed.cmake* "$(DESTDIR)$(libdir)/$(program_name)/src/lib/" + cp install/Plumed.inc* "$(DESTDIR)$(libdir)/$(program_name)/src/lib/" # other shell-based cltools are copied - for file in $(PLUMED_SCRIPTS) ; do cp install/plumed-$$file $(DESTDIR)$(libdir)/$(program_name)/plumed-$$file ; done + for file in $(PLUMED_SCRIPTS) ; do cp install/plumed-$$file "$(DESTDIR)$(libdir)/$(program_name)/plumed-$$file" ; done ifdef SOEXT - cp install/libplumed.$(SOEXT) $(DESTDIR)$(libdir)/lib$(program_name).$(SOEXT) - cp install/libplumedKernel.$(SOEXT) $(DESTDIR)$(libdir)/lib$(program_name)Kernel.$(SOEXT) + cp install/libplumed.$(SOEXT) "$(DESTDIR)$(libdir)/lib$(program_name).$(SOEXT)" + cp install/libplumedKernel.$(SOEXT) "$(DESTDIR)$(libdir)/lib$(program_name)Kernel.$(SOEXT)" endif # modulefile - cp install/modulefile $(DESTDIR)$(libdir)/$(program_name)/modulefile + cp install/modulefile "$(DESTDIR)$(libdir)/$(program_name)/modulefile" # making everything visible: - chmod -R go+rX,go-w $(DESTDIR)$(libdir)/$(program_name) - chmod -R go+rX,go-w $(DESTDIR)$(includedir)/$(program_name) - chmod -R go+rX,go-w $(DESTDIR)$(bindir)/$(program_name) - chmod -R go+rX,go-w $(DESTDIR)$(bindir)/$(program_name)-patch + chmod -R go+rX,go-w "$(DESTDIR)$(libdir)/$(program_name)" + chmod -R go+rX,go-w "$(DESTDIR)$(includedir)/$(program_name)" + chmod -R go+rX,go-w "$(DESTDIR)$(bindir)/$(program_name)" + chmod -R go+rX,go-w "$(DESTDIR)$(bindir)/$(program_name)-patch" @echo @echo "*** PLUMED has been installed ***" @echo @@ -212,13 +212,13 @@ endif uninstall: - rm -fr $(DESTDIR)$(libdir)/$(program_name) - rm -fr $(DESTDIR)$(htmldir) - rm -fr $(DESTDIR)$(includedir)/$(program_name) - rm -f $(DESTDIR)$(bindir)/bin/$(program_name) - rm -f $(DESTDIR)$(bindir)/bin/$(program_name)-patch - rm -f $(DESTDIR)$(libdir)/lib$(program_name).$(SOEXT) - rm -f $(DESTDIR)$(libdir)/lib$(program_name)Kernel.$(SOEXT) + rm -fr "$(DESTDIR)$(libdir)/$(program_name)" + rm -fr "$(DESTDIR)$(htmldir)" + rm -fr "$(DESTDIR)$(includedir)/$(program_name)" + rm -f "$(DESTDIR)$(bindir)/bin/$(program_name)" + rm -f "$(DESTDIR)$(bindir)/bin/$(program_name)-patch" + rm -f "$(DESTDIR)$(libdir)/lib$(program_name).$(SOEXT)" + rm -f "$(DESTDIR)$(libdir)/lib$(program_name)Kernel.$(SOEXT)" $(DIRS): $(MAKE) -C $@ obj @@ -299,18 +299,19 @@ ifeq ($(PLUMED_INSTALL),Install) $(PLUMED_LIBDIR)Plumed.inc: @echo Building Plumed.inc - @echo "PLUMED_RUNTIME_LOAD=" $(libdir)/$(program_name)/obj/Plumed.o $(LIBS) $(LDFLAGS) > $@ + @echo "PLUMED_RUNTIME_LOAD= \"$(libdir)/$(program_name)/obj/Plumed.o\" $(LIBS) $(LDFLAGS)" > $@ ifdef LD_RO - @echo "PLUMED_STATIC_LOAD=" $(libdir)/$(program_name)/obj/kernel.o $(libdir)/$(program_name)/obj/PlumedStatic.o $(LIBS) $(DYNAMIC_LIBS) $(LDFLAGS) >> $@ + @echo "PLUMED_STATIC_LOAD= \"$(libdir)/$(program_name)/obj/kernel.o\" \"$(libdir)/$(program_name)/obj/PlumedStatic.o\" $(LIBS) $(DYNAMIC_LIBS) $(LDFLAGS)" >> $@ else - @echo "PLUMED_STATIC_LOAD=" $(shell ../maketools/listobjects $(libdir)/$(program_name)/obj/k $(OBJ_KERNEL)) $(libdir)/$(program_name)/obj/PlumedStatic.o $(LIBS) $(DYNAMIC_LIBS) $(LDFLAGS) >> $@ +# single quote required to preserve double quote in resulting file + @echo "PLUMED_STATIC_LOAD= '$(shell ../maketools/listobjects "$(libdir)/$(program_name)/obj/k" $(OBJ_KERNEL))' \"$(libdir)/$(program_name)/obj/PlumedStatic.o\" $(LIBS) $(DYNAMIC_LIBS) $(LDFLAGS)" >> $@ endif - @echo "PLUMED_SHARED_LOAD=" $(libdir)/lib$(program_name).$(SOEXT) $(LIBS) $(LDFLAGS) >> $@ + @echo "PLUMED_SHARED_LOAD= \"$(libdir)/lib$(program_name).$(SOEXT)\" $(LIBS) $(LDFLAGS)" >> $@ @echo "PLUMED_RUNTIME_DEPENDENCIES=" >> $@ # when installing, it is sufficient to include dependence wrt a single object # indeed, the object are replaced all at the same time - @echo "PLUMED_STATIC_DEPENDENCIES=" $(libdir)/$(program_name)/obj/PlumedStatic.o >> $@ - @echo "PLUMED_SHARED_DEPENDENCIES=" $(libdir)/lib$(program_name).$(SOEXT) >> $@ + @echo "PLUMED_STATIC_DEPENDENCIES= \"$(libdir)/$(program_name)/obj/PlumedStatic.o\"" >> $@ + @echo "PLUMED_SHARED_DEPENDENCIES= \"$(libdir)/lib$(program_name).$(SOEXT)\"" >> $@ else Plumed.inc: @echo Building Plumed.inc diff --git a/src/maketools/copyobjects b/src/maketools/copyobjects index f01357bda8d52f835259d35ace5a2762252228da..410ba5a0b1cf981647b7f70e126d4cae53bb01cc 100755 --- a/src/maketools/copyobjects +++ b/src/maketools/copyobjects @@ -7,13 +7,13 @@ # cp b/b.o pippo/k1.o # cp c/c.o pippo/k2.o -prefix=$1 +prefix="$1" shift i=0 for file in "$@" do - cp $file $prefix$i.o + cp "$file" "$prefix$i.o" i=$((i+1)) done diff --git a/src/maketools/listobjects b/src/maketools/listobjects index 1a587e375350192bd57fd686c0c2777e418e5854..652e779a2d4b8521b55e092cc105fafd7270680a 100755 --- a/src/maketools/listobjects +++ b/src/maketools/listobjects @@ -1,13 +1,13 @@ #! /bin/bash # same as copyobjects but just print the names -prefix=$1 +prefix="$1" shift i=0 for file in "$@" do - echo -n " $prefix$i.o" + echo -n " \"$prefix$i.o\"" i=$((i+1)) done