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