Opened 16 years ago

Closed 16 years ago

Last modified 16 years ago

#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)

doxygen.diff (1.1 KB) - added by ryandesign (Ryan Carsten Schmidt) 16 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

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 add TMAKE_CC=${configure.cc} and TMAKE_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).

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: newassigned

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: assignedclosed

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.

comment:5 Changed 16 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.