#17213 closed defect (fixed)
doxygen ignores configure.cc, configure.cxx, fails if gcc42 was gcc_selected
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | cssdev |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.6.0 |
Keywords: | Cc: | ||
Port: | doxygen |
Description
doxygen's build process ignores the configure.cc and configure.cxx variables (which MacPorts passes to configure as CC and CXX) and just uses "cc" and "c++". This fails when MacPorts gcc42 is installed and has been selected with gcc_select. doxygen should be patched to obey the CC and CXX environment variables instead of assuming "cc" and "c++". Thanks to Jonathan Stickel for figuring this out and reporting it.
Attachments (1)
Change History (6)
comment:1 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)
Aha! In fact, patching tmake.conf in post-configure does work. It looks like all the Makefiles just reference tmake.conf during build time. (I had thought the values from tmake.conf were copied into the Makefiles during configure time, but that doesn't appear to be the case.)
Now all we need to do is determine which tmake.conf to patch. And in fact, the portfile already assumes it will be the Mac OS X one, and has done so since it was added way back in r4325. So the port already doesn't work on any other platform. So I won't worry about this aspect for now.
Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)
Attachment: | doxygen.diff added |
---|
comment:3 Changed 16 years ago by cssdev
Status: | new → assigned |
---|
Thanks for the digging! I'll test this on my Mac tonight, but it looks like a clean fix!
comment:4 Changed 16 years ago by cssdev
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Seems to work great, committed in r42741. Thanks for the fix! I might need to set tmake_conf
for other platforms, but we can wait to see if any non-darwin MacPorts users need it.
The definitions of "cc" and "c++" come from the lines beginning with TMAKE_CC and TMAKE_CXX in ${worksrcpath}/tmake/lib/macosx-c++/tmake.conf.
One approach would be to amend the configure.env to override those. The portfile already passes
QTDIR=${prefix}
; we could addTMAKE_CC=${configure.cc}
andTMAKE_CXX=${configure.cxx}
. Unfortunately, MacPorts doesn't make configure.cc or configure.cxx available until after the default configure phase has started to run. It also clears them again after the configure phase is done. This means the only phase during which we can access configure.cc and configure.cxx in a portfile is post-configure, by which point configure has already run.Another approach would be to try to reinplace those lines in the tmake.conf, perhaps in the post-patch phase. This has the same problem as above (the variables aren't available until post-configure) and another: we'd have to figure out the correct tmake.conf to patch based on the platform (which might not be Mac OS X).