Brook Milligan <brook%nmsu.edu@localhost> writes: > The culprit is that the logic in mk/tools/flex.mk does not correctly > identify the version of the native flex (which is 2.5.35) and > incorrectly chooses the bad pkgsrc version, even though devel/doxygen > is marked as requiring flex v2.5.35. Specifically, the relevant > portion of mk/tools/flex.mk is the following > > _TOOLS_VERSION.flex!= \ > ${TOOLS_PLATFORM.flex} --version | \ > ${SED} -e 's/\(.*\) \(.*\)$$/\2/' > > which extracts the last word from the version string to use as the > version number. Unfortunately, the MacOS flex does not follow that > pattern; /usr/bin/flex —version yields the following string: > > flex 2.5.35 Apple(flex-31) > > If the sed command is changed to capture the correct, i.e., second not > last, word, all is well and doxygen builds correctly with the native > flex. While picking the second word might work for all native flex versions, in general it seems that such an approach is unsound. This makes me think that perhaps we should set a TOOLS_PLATFORM_VERSION.flex to a sed pattern, or something, in each OS makefile, that is able to determine the version from the native tool. But, we have to be careful not to add lots of execution time when we don't need to know about flex, and particularly not on other platforms.
Attachment:
signature.asc
Description: PGP signature