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

Salomé rules file and make wildcards



Hi,

I've been beating my head on $(wildcard...) in a rules file for nearly a
week now, and can't make any sense of it.  The rules file is attached,
and lines 192-193 both have identical $(wildcard...) in them (copied
roughly from my babel package, where it works).  When I run
git-buildpackage, it always breaks on 193, with $(wildcard...)
evaluating to nothing, though it works in 192, so the build ends with:

rm -f debian/tmp/usr/bin/*.csh
echo wildcard /home/hazelsct/repositories/salome/debian/tmp/usr/lib/python2.5/*-packages/salome/ 
wildcard /home/hazelsct/repositories/salome/debian/tmp/usr/lib/python2.5/site-packages/salome/
mv debian/tmp/usr/bin/*.py 
mv: target `debian/tmp/usr/bin/waitNS.py' is not a directory
make: *** [install-stamp] Error 1

So the echo command in line 192 gets the wildcard right, but the mv
command in 193 gets it wrong, even though they're identical.

Even worse, when I run "debian/rules install" again, lines 192-193 both
get it right, and it moves the .py files over. So with git-buildpackage,
make is just not in the mood to evaluate the wildcard when I need it to,
but it does it right in every other situation.

This is also true in Ubuntu Karmic, with Python 2.6 as the default, for
which it should evaluate to dist-packages, and does in the echo but not
the mv.

Any ideas on what might be causing this mysterious behavior?

Thanks,
Adam
-- 
GPG fingerprint: D54D 1AEE B11C CE9B A02B  C5DD 526F 01E8 564E E4B6

Engineering consulting with open source tools
http://www.opennovation.com/
#!/usr/bin/make -f
# Made with the aid of debmake, by Christoph Lameter,
# based on the sample debian/rules file for GNU hello by Ian Jackson.

package=salome
SALOME_VERSION=5.1.3

# Support multiple makes at once
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
NJOBS := $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
else
NJOBS := 1
endif

# These are the modules which require build_configure to build.  They are
# ordered by priority and then dependency: KERNEL through NETGENPLUGIN are
# core; COMPONENT, RANDOMIZER and SIERPINSKY are optional
# modules; later LIGHT and PYLIGHT are alternate non-CORBA interface shells;
# HELLO through PYCALCULATOR are module examples; HXX2SALOME 
# and XDATA are module development tools.  In terms of dependency, KERNEL and
# HXX2SALOME are at the bottom, GUI depends on KERNEL, GEOM and MED also depend
# on GUI, VISU on MED and GUI, SMESH on GEOM MED and GUI, etc.
# Notes:
# - MULTIPR requires med-fichier add-ons still under development.
# - XDATA is not a normal module, it needs special treatment.
# - BLSURFPLUGIN, GHS3D[PRL]PLUGIN and HexoticPLUGIN require non-free
#   libraries, and will not be part of the Debian package.
SALOME_MODULES = KERNEL_SRC_$(SALOME_VERSION) \
  GUI_SRC_$(SALOME_VERSION) \
  GEOM_SRC_$(SALOME_VERSION) \
  MED_SRC_$(SALOME_VERSION) \
  VISU_SRC_$(SALOME_VERSION) \
  SMESH_SRC_$(SALOME_VERSION) \
  NETGENPLUGIN_SRC_$(SALOME_VERSION) \
  COMPONENT_SRC_$(SALOME_VERSION) \
  RANDOMIZER_SRC_$(SALOME_VERSION) \
  SIERPINSKY_SRC_$(SALOME_VERSION) \
  HELLO_SRC_$(SALOME_VERSION) \
  PYHELLO_SRC_$(SALOME_VERSION) \
  CALCULATOR_SRC_$(SALOME_VERSION) \
  PYCALCULATOR_SRC_$(SALOME_VERSION) \
  HXX2SALOME_SRC_$(SALOME_VERSION)
# LIGHT_SRC_$(SALOME_VERSION) \
  PYLIGHT_SRC_$(SALOME_VERSION) \
  YACS_SRC_$(SALOME_VERSION) \
  MULTIPR_SRC_$(SALOME_VERSION) \
  XDATA_SRC_$(SALOME_VERSION) \
  BLSURFPLUGIN_SRC_$(SALOME_VERSION) \
  GHS3DPLUGIN_SRC_$(SALOME_VERSION) \
  GHS3DPRLPLUGIN_SRC_$(SALOME_VERSION) \
  HexoticPLUGIN_SRC_$(SALOME_VERSION)

clean:
	dh_testdir
	for skipdir in GEOM_SRC_$(SALOME_VERSION)/src/PARTITION KERNEL_SRC_$(SALOME_VERSION)/DEPRECATED; do \
	  mv $$skipdir/Makefile.in $$skipdir/Makefile.skip; \
	done
	for salomodule in $(SALOME_MODULES); do \
	  if [ -e $$salomodule/Makefile ]; then \
	    $(MAKE) -C $$salomodule maintainer-clean; \
	  fi; \
	  rm -f `find $$salomodule -name Makefile.in -print`; \
	done
	if [ -e XDATA_SRC_$(SALOME_VERSION)/Makefile ]; then \
	  make -C XDATA_SRC_$(SALOME_VERSION) maintainer-clean; \
	fi
	for skipdir in GEOM_SRC_$(SALOME_VERSION)/src/PARTITION KERNEL_SRC_$(SALOME_VERSION)/DEPRECATED; do \
	  mv $$skipdir/Makefile.skip $$skipdir/Makefile.in; \
	done

#	Remove new .in files
	rm -f KERNEL_SRC_$(SALOME_VERSION)/bin/runSalome.in \
	  KERNEL_SRC_$(SALOME_VERSION)/bin/appliskel/env.d/envProducts.sh.in
#	Restore obsolete files
	for obsoletefile in `find . -name \*.obs -print`; do \
	  mv -f $$obsoletefile `echo $$obsoletefile | sed s/.obs//`; \
	done
	rm -f *-stamp
	dh_clean

configure-stamp:
	dh_testdir
#	Move aside obsolete files
	for obsoletefile in KERNEL_SRC_$(SALOME_VERSION)/bin/runSalome \
	  KERNEL_SRC_$(SALOME_VERSION)/bin/appliskel/env.d/envProducts.sh \
	  XDATA_SRC_$(SALOME_VERSION)/aclocal.m4 \
	  XDATA_SRC_$(SALOME_VERSION)/configure \
	  `find XDATA_SRC_$(SALOME_VERSION) -name Makefile.in -print`; do \
	  if [ ! -e $$obsoletefile.obs ]; then \
	    mv $$obsoletefile $$obsoletefile.obs; \
	  fi; \
	done
#	Install new .in files
	cp -fp debian/runSalome.in KERNEL_SRC_$(SALOME_VERSION)/bin/
	cp -fp debian/envProducts.sh.in KERNEL_SRC_$(SALOME_VERSION)/bin/appliskel/env.d/

	for salomodule in $(SALOME_MODULES); do \
	  echo; echo CONFIGURING SALOME MODULE $$salomodule; echo; \
	  (cd $$salomodule && \
	   KERNEL_ROOT_DIR=$(CURDIR)/KERNEL_SRC_$(SALOME_VERSION) \
	     GUI_ROOT_DIR=$(CURDIR)/GUI_SRC_$(SALOME_VERSION) \
	     MED_ROOT_DIR=$(CURDIR)/MED_SRC_$(SALOME_VERSION) \
	     GEOM_ROOT_DIR=$(CURDIR)/GEOM_SRC_$(SALOME_VERSION) \
	     RANDOMIZER_ROOT_DIR=$(CURDIR)/RANDOMIZER_SRC_$(SALOME_VERSION) \
	     COMPONENT_ROOT_DIR=$(CURDIR)/COMPONENT_SRC_$(SALOME_VERSION) \
	     CALCULATOR_ROOT_DIR=$(CURDIR)/CALCULATOR_SRC_$(SALOME_VERSION) \
	     PYCALCULATOR_ROOT_DIR=$(CURDIR)/PYCALCULATOR_SRC_$(SALOME_VERSION) \
	     VISU_ROOT_DIR=$(CURDIR)/VISU_SRC_$(SALOME_VERSION) \
	     SMESH_ROOT_DIR=$(CURDIR)/SMESH_SRC_$(SALOME_VERSION) \
	     SIERPINSKY_ROOT_DIR=$(CURDIR)/SMESH_SRC_$(SALOME_VERSION) \
	     ./build_configure && \
	   ./configure --prefix=/usr CASROOT=/usr VTKSUFFIX=-5.4 \
	     NETGENHOME=/usr \
	     --with-mpi=/usr --with-mpi_include=/usr/include/mpi \
	     KERNEL_ROOT_DIR=$(CURDIR)/KERNEL_SRC_$(SALOME_VERSION) \
	     GUI_ROOT_DIR=$(CURDIR)/GUI_SRC_$(SALOME_VERSION) \
	     MED_ROOT_DIR=$(CURDIR)/MED_SRC_$(SALOME_VERSION) \
	     GEOM_ROOT_DIR=$(CURDIR)/GEOM_SRC_$(SALOME_VERSION) \
	     RANDOMIZER_ROOT_DIR=$(CURDIR)/RANDOMIZER_SRC_$(SALOME_VERSION) \
	     COMPONENT_ROOT_DIR=$(CURDIR)/COMPONENT_SRC_$(SALOME_VERSION) \
	     CALCULATOR_ROOT_DIR=$(CURDIR)/CALCULATOR_SRC_$(SALOME_VERSION) \
	     PYCALCULATOR_ROOT_DIR=$(CURDIR)/PYCALCULATOR_SRC_$(SALOME_VERSION) \
	     VISU_ROOT_DIR=$(CURDIR)/VISU_SRC_$(SALOME_VERSION) \
	     SMESH_ROOT_DIR=$(CURDIR)/SMESH_SRC_$(SALOME_VERSION) \
	     SIERPINSKY_ROOT_DIR=$(CURDIR)/SMESH_SRC_$(SALOME_VERSION)); \
	done
#	Restore these when the XDATA clean target actually works
#	echo; echo CONFIGURING SALOME MODULE XDATA; echo
#	(cd XDATA_SRC_$(SALOME_VERSION) && \
	 aclocal -I adm/unix/config_files && autoconf && automake && \
	 ./configure --prefix=/usr VTKSUFFIX=-5.4 \
	   KERNEL_ROOT_DIR=$(CURDIR)/KERNEL_SRC_$(SALOME_VERSION))
	touch $@

build: build-stamp
build-stamp: configure-stamp
#	Add XDATA to list below when its clean target actually works
	for salomodule in $(SALOME_MODULES); do \
	  echo; echo COMPILING SALOME MODULE $$salomodule; echo; \
	  $(MAKE) -C $$salomodule -j $(NJOBS) bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc; \
	done
	touch $@

build-indep: build-indep-stamp
build-indep-stamp: configure-stamp
	echo; echo GENERATING DOCUMENTATION IN MODULE KERNEL; echo
	make -C KERNEL_SRC_$(SALOME_VERSION)/doc usr_docs dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc
	echo; echo GENERATING DOCUMENTATION IN MODULE GUI; echo
	make -C GUI_SRC_$(SALOME_VERSION)/doc usr_docs dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc
	echo; echo GENERATING DOCUMENTATION IN MODULE GEOM; echo
	make -C GEOM_SRC_$(SALOME_VERSION)/doc usr_docs dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc
	echo; echo GENERATING DOCUMENTATION IN MODULE MED; echo
	make -C MED_SRC_$(SALOME_VERSION)/doc dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc
	echo; echo GENERATING DOCUMENTATION IN MODULE HELLO; echo
	make -C HELLO_SRC_$(SALOME_VERSION)/doc usr_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc
	echo; echo GENERATING DOCUMENTATION IN MODULE PYHELLO; echo
	make -C PYHELLO_SRC_$(SALOME_VERSION)/doc usr_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc
	echo; echo GENERATING DOCUMENTATION IN MODULE PYCALCULATOR; echo
	make -C PYCALCULATOR_SRC_$(SALOME_VERSION)/doc dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc
	echo; echo GENERATING DOCUMENTATION IN MODULE VISU; echo
	make -C VISU_SRC_$(SALOME_VERSION)/doc usr_docs dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc
	echo; echo GENERATING DOCUMENTATION IN MODULE SMESH; echo
	make -C SMESH_SRC_$(SALOME_VERSION)/doc usr_docs dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc
	touch $@

install: install-stamp
install-stamp: build-stamp
	dh_testdir
#	Add XDATA to list below when its clean target actually works
	for salomodule in $(SALOME_MODULES); do \
	  echo; echo INSTALLING SALOME MODULE $$salomodule; echo; \
	  $(MAKE) -C $$salomodule install DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc; \
	done
	mv debian/tmp/usr/idl debian/tmp/usr/share/
	install -d debian/tmp/usr/share/aclocal
	mv debian/tmp/usr/salome_adm/unix/config_files/check_Kernel.m4 debian/tmp/usr/share/aclocal/salome.m4
	for m4file in check_GUI.m4 check_GEOM.m4 check_Med.m4 check_RANDOMIZER.m4 check_SMESH.m4 check_NETGENPLUGIN.m4; do \
	  cat debian/tmp/usr/adm_local/unix/config_files/$$m4file >> debian/tmp/usr/share/aclocal/salome.m4; \
	done
	cp debian/killSalome debian/tmp/usr/bin/
	chmod +x debian/tmp/usr/bin/killSalome
#	mv debian/tmp/usr/lib/SalomePyQt.so debian/tmp/usr/lib/SalomePyQt.so.0
#	ln -s SalomePyQt.so.0 debian/tmp/usr/lib/SalomePyQt.so
#	mv debian/tmp/usr/Tests debian/tmp/usr/share/salome/
	rm -rf debian/tmp/usr/lib64
	rm -rf debian/tmp/usr/doc
	rm -rf debian/tmp/usr/bin/appliskel
	rm -rf debian/tmp/usr/bin/styles
	rm -f debian/tmp/usr/bin/*.pyc
	rm -f debian/tmp/usr/bin/*.csh
#	A diagnostic, remove when able to
	echo wildcard $(CURDIR)/debian/tmp/usr/lib/python2.5/*-packages/salome/ $(wildcard $(CURDIR)/debian/tmp/usr/lib/python2.5/*-packages/salome/)
	mv debian/tmp/usr/bin/*.py $(wildcard $(CURDIR)/debian/tmp/usr/lib/python2.5/*-packages/salome/)
	install -d debian/salome-examples/usr/share/salome/examples
	cp -a SAMPLES_SRC_$(SALOME_VERSION)/* debian/salome-examples/usr/share/salome/examples/

	touch $@

binary-indep: build-indep install
	dh_testdir -i
	dh_testroot -i
	dh_installdirs -i
	dh_movefiles -i
	dh_installdocs -i
	dh_installchangelogs -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: install
	dh_testdir -a
	dh_testroot -a
	dh_installdirs -a
	dh_movefiles -a
	dh_installdocs -a
	dh_installchangelogs -a
	dh_strip -a
	dh_makeshlibs -a
	dh_compress -a
	dh_pycentral -ppython2.5-salome
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary: binary-indep binary-arch

.PHONY: binary binary-arch binary-indep clean install build

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: