#1785 closed defect (fixed)
libexif problem if Doxygen is not installed
| Reported by: | Randy McMurchy | Owned by: | |
|---|---|---|---|
| Priority: | high | Milestone: | |
| Component: | BOOK | Version: | SVN |
| Severity: | medium | Keywords: | |
| Cc: |
Description (last modified by )
There is an issue installing the current version of libexif if the doxygen program is not available. The installation will fail.
A link to the discussion, which includes a fix is here: http://linuxfromscratch.org/pipermail/blfs-dev/2006-January/013204.html
Change History (7)
comment:1 by , 21 years ago
| Description: | modified (diff) |
|---|---|
| Owner: | changed from to |
| Status: | new → assigned |
comment:2 by , 21 years ago
So, here's the error:
Making install in doc make[1]: Entering directory `/usr/src/libexif-0.6.13/doc' make[2]: Entering directory `/usr/src/libexif-0.6.13/doc' make[2]: Nothing to be done for `install-exec-am'. make[2]: *** No rule to make target `install-apidocs', needed by `install-data-local'. Stop. make[2]: Leaving directory `/usr/src/libexif-0.6.13/doc'
What happens is that doc/Makefile.am is poorly written in that most of the rules are surrounded in if HAVE_DOXYGEN. This results in the Makefile.in targets looking like this:
@HAVE_DOXYGEN_TRUE@install-apidocs: $(HTML_APIDOC_DIR).stamp @HAVE_DOXYGEN_TRUE@ $(INSTALL) -m 0755 -d $(DESTDIR)$(docdir)/$(DOC_APIDOC_HTML) @HAVE_DOXYGEN_TRUE@ $(INSTALL) -m 0644 $(DOXYGEN_OUTPUT_DIR)/$(HTML_APIDOC_DIR)/* $(DESTDIR)$(docdir)/$(DOC_APIDOC_HTML)/
In the actual Makefile, if you don't have Doxygen, these turn to comments:
#install-apidocs: $(HTML_APIDOC_DIR).stamp
Unfortunately, the install-data-local target is not part of the if HAVE_DOXYGEN set. So, when you run make install without Doxygen, it chokes at install-data-local because there's an undefined target install-apidocs which is commented out.
Solution: add install-data-local to the HAVE_DOXYGEN set with
sed -i 's/^install-data-local/@HAVE_DOXYGEN_TRUE@&/' doc/Makefile.in
comment:3 by , 21 years ago
Adding the offending targets to .PHONY also works. That can be done with this command:
sed -i.bak 's/^\tuninstall-local/& install-apidocs install-apidocs-internals/' doc/Makefile.in
comment:5 by , 21 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
comment:6 by , 21 years ago
Upstream status. Patch to Makefile.am submitted by myself and Hugo Villeneuve.
http://sourceforge.net/tracker/index.php?func=detail&aid=1443183&group_id=12272&atid=112272

The fix for this is trivial. Can be done with an sed. I'll have to look in my scripts. Should be done within the next couple days.
The include dir thing I mentioned in that thread is not a bug. Some packages using libexif (such as libgphoto2 and gthumb) had been inconsistent in there inclusion of libexif headers. I.e., sometimes
and other times
I think this became a problem because before the .pc files were added, packages were always adding
-I/usr/include/libexifor equivalent to the command line.This has been cleared up in gthumb for sure. Possibly libgphoto2, too, but I don't recall immediately.