Thanks Jeff. This was just what I was hoping to hear. I wondered if I was doing it in a funny way. Can you paste in some of your configuration file that allows everything to end up in the same directory? John >>> Jeff Johnson <n3npq.jbj@xxxxxxxxx> 7/29/2006 9:41 AM >>> On Jul 29, 2006, at 5:06 AM, John Calcote wrote: > I was wondering if there was already a well-considered way to add rpm > build capabilities to an Automake build system. > > Here's my root-level Makefile.am: > > ------ > > EXTRA_DIST = arf.spec schema win32 doxygen examples > SUBDIRS = src test > > dist-hook: > rm -rf `find $(distdir) -name .svn` > > .PHONY: rpmdir srcrpm rpms > > rpmdir: > -mkdir -p rpm/BUILD rpm/RPMS rpm/SOURCES rpm/SPECS rpm/SRPMS > Unless you *really* want the clutter of {BUILD,RPMS,SOURCES,SPECS,SRPMS}, you might want to think about configuring rpmbuild to put all the build elements into one sub-directory. See ftp://wraptastic.org/pub/jbj/{xrpm,rpmrc,macros} for an explicit example. My build cycle looks like xrpm -ivh foo*.src.rpm cd /X/foo xrpm -ba foo.spec xrpm -Uvh foo*.i386.rpm cd .. rm -rf foo which is probably far simpler to write and maintain as Makefile rules. xrpm is just a stupid wrapper to invoke rpmbuild --rcfile /X/rpmrc ... in order to bring in the per-package-directory build configuration. > srcrpm: dist-bzip2 rpmdir > rpmbuild -ts --define='_topdir $(PWD)/rpm' $(distdir).tar.bz2 > > rpms: dist-bzip2 rpmdir > rpmbuild -ta --define='_topdir $(PWD)/rpm' > --buildroot=$(PWD)/rpm/tmp $(distdir).tar.bz2 > > ------ > > I was also wondering if there was a good way to automate revision > changes in spec files, makefiles, etc. I use subversion for my > repository, and it occurs to me that a good way to tell if I even > need a > build is to compare the root-level "svn info" Revision: tag with the > last time I built. -- Revisions the same? No need to build again! -- > There's a number of ways to automate the revision, depending on what you wish to achieve. For starters, there is a CvsID: tag in spec files (in rpm-4.4.7, I fergit when added), that will permit tracking what CVS revision was used for then build. IIRC, there is SvnID: as well, an alias for the same header tag. There's certainly no reason why the Release: tag cannot be used to carry the repository identifier. One would have to insure that the repository identifier preserved upgradeability. Automating is probably achieved most simply by modifying a spec file template using sed or m4 before building. Not hard at all with Makefile rules and file timestamp dependencies. hth 73 de Jeff _______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/rpm-list _______________________________________________ Rpm-list mailing list Rpm-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/rpm-list