Re: [ptxdist] [PATCH v2] Fix dependencies to files in projectroot
On Sun, Jun 20, 2010 at 11:20:24AM +0200, Michael Olbrich wrote: On Sat, Jun 19, 2010 at 03:51:17PM +0200, Remy Bohmer wrote: Hi, 2010/6/19 Michael Olbrich m.olbr...@pengutronix.de: On Sat, Jun 05, 2010 at 12:08:34PM +0200, Remy Bohmer wrote: When files in the projectroot directory are being used in install_copy() and install_alternative() then there are no dependencies to these files. This is being solved by storing all dependencies of the targetinstall stage in a seperate state/package.deps file. These state/package.deps files are included in the top-level ptxdist makefile and this makes ptxdist properly handle the dependencies. [...] for src in ${li...@]}; do if [ -e ${src} ]; then + # Since the dependency to the source files is dynamic we store + # the dependency information in a dependency file that can be + # included in the make files itself. + deprule=${ptx_state_dir}/${pkg_label}.targetinstall: ${src} Could you change this to (untested): deprule=${ptx_state_dir}/${pkg_label}.targetinstall: \$(wildcard ${src}) OK, will try. I was wondering about the ${pkg_label}. Previously we had ${pkg_xpkg} instead. Since we changed it to pkg_label we get some weird (circular) rebuilds with out-of-kernel-tree modules. I reverted it back to pkg_xpkg instead and it works much better, so that is what I have in my tree right now. I see the problem. Look at the kernel-modules.deps. With pkg_xpkg you get kernel-modules.targetinstall: file this is ignored. With pkg_label you get kernel.targetinstall: file but the files may be created _after kernel.targetinstall but before kernel.targetinstall.post. This results in the rebuilds that you can see. Try this: deprule=${ptx_state_dir}/${pkg_stamp}: \$(wildcard ${src}) This should give you kernel.targetinstall.post: file for kernel-modules.deps and no circular rebuilds. Ping. Did you find the time to test this? I'd like to merge this before the next release. Regards, Michael Olbrich -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0| Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | -- ptxdist mailing list ptxdist@pengutronix.de
Re: [ptxdist] [PATCH v2] Fix dependencies to files in projectroot
Hi, kernel.targetinstall.post. This results in the rebuilds that you can see. Try this: deprule=${ptx_state_dir}/${pkg_stamp}: \$(wildcard ${src}) This should give you kernel.targetinstall.post: file for kernel-modules.deps and no circular rebuilds. Ping. Did you find the time to test this? I'd like to merge this before the next release. Sorry, I thought I answered this already... Yes, it is working properly and I am using it for since you posted it... In a minute I will post what I have in our queue right now. Kind regards, Remy -- ptxdist mailing list ptxdist@pengutronix.de
Re: [ptxdist] [PATCH v2] Fix dependencies to files in projectroot
On Sat, Jun 05, 2010 at 12:08:34PM +0200, Remy Bohmer wrote: When files in the projectroot directory are being used in install_copy() and install_alternative() then there are no dependencies to these files. This is being solved by storing all dependencies of the targetinstall stage in a seperate state/package.deps file. These state/package.deps files are included in the top-level ptxdist makefile and this makes ptxdist properly handle the dependencies. [...] for src in ${li...@]}; do if [ -e ${src} ]; then + # Since the dependency to the source files is dynamic we store + # the dependency information in a dependency file that can be + # included in the make files itself. + deprule=${ptx_state_dir}/${pkg_label}.targetinstall: ${src} Could you change this to (untested): deprule=${ptx_state_dir}/${pkg_label}.targetinstall: \$(wildcard ${src}) targetinstall should fail (with a nice error message), if the file is not there, not some strange missing dpendency. mol + + # Make the deps rule robust for varying installation paths, and + # make the deps rules file more readable. + deprule=${deprule//${PTXDIST_TOPDIR}/\$(PTXDIST_TOPDIR)} + deprule=${deprule//${PTXDIST_WORKSPACE}/\$(PTXDIST_WORKSPACE)} + echo ${deprule} ${pkg_xpkg_install_deps} return fi done -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0| Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | -- ptxdist mailing list ptxdist@pengutronix.de
Re: [ptxdist] [PATCH v2] Fix dependencies to files in projectroot
Hi, 2010/6/19 Michael Olbrich m.olbr...@pengutronix.de: On Sat, Jun 05, 2010 at 12:08:34PM +0200, Remy Bohmer wrote: When files in the projectroot directory are being used in install_copy() and install_alternative() then there are no dependencies to these files. This is being solved by storing all dependencies of the targetinstall stage in a seperate state/package.deps file. These state/package.deps files are included in the top-level ptxdist makefile and this makes ptxdist properly handle the dependencies. [...] for src in ${li...@]}; do if [ -e ${src} ]; then + # Since the dependency to the source files is dynamic we store + # the dependency information in a dependency file that can be + # included in the make files itself. + deprule=${ptx_state_dir}/${pkg_label}.targetinstall: ${src} Could you change this to (untested): deprule=${ptx_state_dir}/${pkg_label}.targetinstall: \$(wildcard ${src}) OK, will try. I was wondering about the ${pkg_label}. Previously we had ${pkg_xpkg} instead. Since we changed it to pkg_label we get some weird (circular) rebuilds with out-of-kernel-tree modules. I reverted it back to pkg_xpkg instead and it works much better, so that is what I have in my tree right now. What do you think? Kind regards, Remy -- ptxdist mailing list ptxdist@pengutronix.de