#21552: doxygen +wizard +universal (x86_64 i386) fails on Leopard -----------------------------+---------------------------------------------- Reporter: td@… | Owner: css@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 1.8.0 Keywords: doxywizard | Port: doxygen -----------------------------+---------------------------------------------- Comment(by dweber@…): I'm playing around with a sandbox version of doxygen in http://trac.macports.org/browser/users/dweber/textproc/doxygen It appears that doxygen requires Qt 3.3.x, so the qt4-mac dependency will fail. (Also, it fails to find the qmake binary with a qt4-mac dependency, because it's called qmake-mac in the qt4-mac port, so this can be handled with a reinplace to change QMAKE=qmake into QMAKE=qmake-mac, see my sandbox Portfile for details). However, even with a qt3 dependency, the build fails. This might be an upstream issue (beyond my ability to fix this). Maybe a qt3-mac dependency would work? Furthermore, on my system, even the default build fails (without any variants enabled). This appears to be due to some link errors (might be related to the md5 lib?). In my sandbox version that is working for me, the post-patch phase is commented to leave the default link arguments alone. The changes made in the post-patch phase are to a file in: {{{ work/doxygen-1.6.1/tmake/lib/macosx-c++/tmake.conf }}} The link setting changes are (reasonable?): {{{ 37,38c37,38 < TMAKE_LINK = c++ < TMAKE_LINK_SHLIB = c++ ---
TMAKE_LINK = /usr/bin/g++-4.0 -L/opt/local/lib TMAKE_LINK_SHLIB = /usr/bin/g++-4.0 }}}
When these link changes are disabled, it will build, destroot, install and run OK. With those link changes disabled, the library dependencies for doxygen (and doxytag) are: {{{ work/doxygen-1.6.1/bin/doxygen: /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) }}} When the link changes are enabled, the link phase fails because of undefined symbols. These are the gory details on the failure: {{{ gmake[2]: Entering directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' /usr/bin/g++-4.0 -I/opt/local/include -c -pipe -D__FreeBSD__=6 -Wall -W -O2 -I../qtools -I../libmd5 -I. -o ../objects/main.o main.cpp /usr/bin/g++-4.0 -L/opt/local/lib -Wl,-search_paths_first -o ../bin/doxygen ../objects/main.o -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -liconv Undefined symbols: "_MD5SigToString", referenced from: MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o) convertNameToFile(char const*, bool)in libdoxygen.a(util.o) Definition::_docsAlreadyAdded(QCString const&) in libdoxygen.a(definition.o) DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o) computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o) DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o) MemberGroup::anchor() const in libdoxygen.a(membergroup.o) "_MD5Buffer", referenced from: MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o) convertNameToFile(char const*, bool)in libdoxygen.a(util.o) convertNameToFile(char const*, bool)in libdoxygen.a(util.o) Definition::_docsAlreadyAdded(QCString const&) in libdoxygen.a(definition.o) DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o) computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o) DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o) MemberGroup::anchor() const in libdoxygen.a(membergroup.o) ld: symbol(s) not found collect2: ld returned 1 exit status gmake[2]: *** [../bin/doxygen] Error 1 gmake[2]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' gmake[1]: *** [all] Error 2 gmake[1]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' make: *** [all] Error 2 Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1" && /usr/bin/make -j8 all " returned error 2 Command output: gmake[2]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' /opt/local/bin/gmake -f Makefile.doxygen PERL=/opt/local/bin/perl all gmake[2]: Entering directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' /usr/bin/g++-4.0 -I/opt/local/include -c -pipe -D__FreeBSD__=6 -Wall -W -O2 -I../qtools -I../libmd5 -I. -o ../objects/main.o main.cpp /usr/bin/g++-4.0 -L/opt/local/lib -Wl,-search_paths_first -o ../bin/doxygen ../objects/main.o -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -liconv Undefined symbols: "_MD5SigToString", referenced from: MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o) convertNameToFile(char const*, bool)in libdoxygen.a(util.o) Definition::_docsAlreadyAdded(QCString const&) in libdoxygen.a(definition.o) DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o) computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o) DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o) MemberGroup::anchor() const in libdoxygen.a(membergroup.o) "_MD5Buffer", referenced from: MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o) convertNameToFile(char const*, bool)in libdoxygen.a(util.o) convertNameToFile(char const*, bool)in libdoxygen.a(util.o) Definition::_docsAlreadyAdded(QCString const&) in libdoxygen.a(definition.o) DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o) computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o) DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o) MemberGroup::anchor() const in libdoxygen.a(membergroup.o) ld: symbol(s) not found collect2: ld returned 1 exit status gmake[2]: *** [../bin/doxygen] Error 1 gmake[2]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' gmake[1]: *** [all] Error 2 gmake[1]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' make: *** [all] Error 2 DEBUG: Backtrace: shell command " cd "/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1" && /usr/bin/make -j8 all " returned error 2 Command output: gmake[2]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' /opt/local/bin/gmake -f Makefile.doxygen PERL=/opt/local/bin/perl all gmake[2]: Entering directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' /usr/bin/g++-4.0 -I/opt/local/include -c -pipe -D__FreeBSD__=6 -Wall -W -O2 -I../qtools -I../libmd5 -I. -o ../objects/main.o main.cpp /usr/bin/g++-4.0 -L/opt/local/lib -Wl,-search_paths_first -o ../bin/doxygen ../objects/main.o -L../lib -ldoxygen -ldoxycfg -lqtools -lmd5 -liconv Undefined symbols: "_MD5SigToString", referenced from: MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o) convertNameToFile(char const*, bool)in libdoxygen.a(util.o) Definition::_docsAlreadyAdded(QCString const&) in libdoxygen.a(definition.o) DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o) computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o) DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o) MemberGroup::anchor() const in libdoxygen.a(membergroup.o) "_MD5Buffer", referenced from: MemberDef::setAnchor(char const*)in libdoxygen.a(memberdef.o) convertNameToFile(char const*, bool)in libdoxygen.a(util.o) convertNameToFile(char const*, bool)in libdoxygen.a(util.o) Definition::_docsAlreadyAdded(QCString const&) in libdoxygen.a(definition.o) DirDef::getOutputFileBase() const in libdoxygen.a(dirdef.o) computeMd5Signature(DotNode*, DotNode::GraphType, GraphOutputFormat, bool, bool, bool, QCString&)in libdoxygen.a(dot.o) DotGfxHierarchyTable::writeGraph(QTextStream&, char const*) constin libdoxygen.a(dot.o) MemberGroup::anchor() const in libdoxygen.a(membergroup.o) ld: symbol(s) not found collect2: ld returned 1 exit status gmake[2]: *** [../bin/doxygen] Error 1 gmake[2]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' gmake[1]: *** [all] Error 2 gmake[1]: Leaving directory `/opt/local/var/macports/build/_Users_dweber_myports_textproc_doxygen/work/doxygen-1.6.1/src' make: *** [all] Error 2 while executing "command_exec build" (procedure "portbuild::build_main" line 9) invoked from within "$procedure $targetname" Warning: the following items did not execute (for doxygen): org.macports.build Error: Status 1 encountered during processing. }}} -- Ticket URL: <http://trac.macports.org/ticket/21552#comment:3> MacPorts <http://www.macports.org/> Ports system for Mac OS