#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: | normal | 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 , 19 years ago
Description: | modified (diff) |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:2 by , 19 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 , 19 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 , 19 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:6 by , 19 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/libexif
or equivalent to the command line.This has been cleared up in gthumb for sure. Possibly libgphoto2, too, but I don't recall immediately.