I tend to agree. How about --with-sdk-name=<name>? SDKROOT implies a path, as would something like --with-sdk (and I could see that being confusing for someone building on Windows.
I got successful builds on Friday. I'll make the above changes and post another iteration for review. -DrD- > It looks to me like that we can remove the option in jdk9 since it was > deprecated in 8. It's a noop anyway though so shouldn't interfere with your > work. > > I'm not sure if giving --with-sysroot an optional special format for macosx > is the right way to go. It looks cleaner from one way, but also increases > confusion I think. I prefer a special parameter, which helps setting sysroot > as suggested. > > If you need a synonym for SYSROOT in macosx, that seems fine to me. > > /Erik > > On 2014-05-23 18:38, David DeHaven wrote: >> I'm combining this fix with another as it was starting to make my head split >> trying to keep the two separate, they're just too closely related. I'll >> start another review thread for the combined patches. >> >> -DrD- >> >>> Nobody should be using this any more, can I nuke it? >>> >>> BASIC_DEPRECATED_ARG_ENABLE(macosx-runtime-support, macosx_runtime_support) >>> >>> That hasn't done anything since JDK7, it was deprecated in 8 and shouldn't >>> even be used in 8. >>> >>> -DrD- >>> >>>> Now that my mind is fresher and I've had my coffee... (and someones poked >>>> me in the ribs ;) >>>> >>>> MACOSX_SDK_PATH should be SDKROOT, which is what Apple uses when building >>>> via Xcode or xcodebuild, which would also promote that setting to the few >>>> remaining Xcode projects we have hanging around. We can use SYSROOT, but >>>> Apple's tools will just ignore it so I propose we add SDKROOT as a synonym >>>> for SYSROOT. Unfortunately the -F arguments still need to be absolute >>>> paths. >>>> >>>> We can eliminate the hard coded ApplicationServices paths by including >>>> ApplicationServices instead of it's sub-frameworks (and adjust the source >>>> accordingly), but we can't do that for JavaVM as we absolutely do NOT want >>>> to link against JavaVM, only JNF and JRS. >>>> >>>> >>>> We'll do something like: >>>> >>>> # assuming SYSROOT="$with_sysroot" already >>>> if test "x$OPENJDK_TARGET_OS" = xmacosx; then >>>> if test ! -d "$SYSROOT"; then >>>> # SYSROOT is not a directory, check if it's a symbolic name for an Xcode >>>> SDK >>>> SYSROOT=`$(XCODEBUILD) -sdk "$SYSROOT" -version | grep '^Path: ' | sed >>>> 's/Path: //'` >>>> if test ! -d "$SYSROOT"; then >>>> AC_MSG_ERROR([SYSROOT does not point to a valid path]) >>>> fi >>>> fi >>>> SDKROOT=$SYSROOT >>>> AC_SUBST(SDKROOT) >>>> fi >>>> >>>> This will eliminate any added configure arguments. >>>> >>>> (14 hours of build system hacking makes for a very muddled mind...) >>>> >>>> -DrD- >>>> >>>> >>>>> Hello David, >>>>> >>>>> I like that you incorporate the existing sysroot settings for this. I >>>>> wonder though, what is the difference between --with-macosx-sdk-path and >>>>> --with-sysroot? Do we really need two parameters for this? If it's >>>>> actually a sysroot, couldn't we replace all uses of this variable with >>>>> just SYSROOT and keep it more generic? >>>>> >>>>> /Erik >>>>> >>>>> On 2014-05-23 08:16, David DeHaven wrote: >>>>>> Build systems take such a long time work on... >>>>>> >>>>>> I've changed the logic, I think for the better. I hijacked >>>>>> --with-sysroot, SYSROOT is set to the SDK path and I stuffed the >>>>>> -iframework argument alongside the -isysroot arg in SYSROOT_CFLAGS and >>>>>> it works very nicely. Now the only change that's peppered throughout the >>>>>> forest is adding $(MACOSX_SDK_PATH) to the hard coded JavaVM.framework >>>>>> and ApplicationServices.framework paths, not to mention everything gets >>>>>> -isysroot/-iframework and not just the parts that needed JavaVM or >>>>>> ApplicationServices. The added SYSROOT logic is Mac specific so other >>>>>> platforms should be unaffected, JPRT should tell otherwise if not... >>>>>> >>>>>> I also added two configure args: >>>>>> --with-macosx-sdk name of Mac OS X SDK to build with, e.g., >>>>>> macosx10.7 >>>>>> [macosx] >>>>>> --with-macosx-sdk-path specify path of Mac OS X SDK to build with >>>>>> [probed] >>>>>> Please note that this version is against jdk9-dev with the following >>>>>> patches imported from other forests: >>>>>> hotspot: >>>>>> JDK-8043164 (jdk9/hs) >>>>>> >>>>>> jdk: >>>>>> JDK-8042440 (jdk9/client) >>>>>> JDK-8043646 (jdk9/client) >>>>>> JDK-8003900 (jdk9/client) >>>>>> >>>>>> >>>>>> Updated patches: >>>>>> http://cr.openjdk.java.net/~ddehaven/8043340/v1/base >>>>>> http://cr.openjdk.java.net/~ddehaven/8043340/v1/hotspot >>>>>> http://cr.openjdk.java.net/~ddehaven/8043340/v1/jdk >>>>>> >>>>>> -DrD- >>>>>> >