"Deneys S. Maartens" wrote: > > Hi Bruce > > When compiling the autogen source without having libxml2 available, and > then doing a `make dist' creates a broken distribution package which > does not include the xml2ag/ subdirectory. > > A configure of the broken dist package fails with the following error > message: > > config.status: creating xml2ag/Makefile > config.status: error: cannot find input file: xml2ag/Makefile.in > > I've found that adding the line > > DIST_SUBDIRS = $(SUBDIRS) xml2ag > > to the Makefile.am file solves this problem. I've verified that listing > xml2ag twice does not cause any problems.
Except, perhaps, integrity verification problems. When you invoke, "make dist" I believe you are claiming that you wish to construct a new distribution for some distribution-related purpose. If you merely wish to verify that the parts that you can build are built correctly, you would invoke, "make check". If you are making a distribution, then that distribution needs to be verified that all parts of it are functional. It would be difficult to verify the functionality of ag2xml if you do not have libxml2. Therefore, I do not think it is correct to try to do a "make dist" when all components cannot be built. I think the question boils down to, "What is the proper way to fail a `make dist' in a partial-product environment?" A configure-time message of "error: cannot find input file: xml2ag/Makefile.in" is a poor choice. My guess is to add something like: AM_CONDITIONAL([FULL_BUILD], [if test "X${ag_cv_with_libxml2}" != Xno && \ test "X${ag_cv_enable_shell}" != Xno then true ; else false ; fi]) and augment that list with any new configurable functional components. Then add to the top level Makefile.am: if !FULL_BUILD dist : fail_dist fail_dist: echo "Distributions cannot be made with a partial build" >&2 exit 1 endif Thoughts from either the Automake or AutoGen folks? Regards, Bruce