Created attachment 578906 [details]
When building from topsrcdir (after rm -rf objdir & removing the generated configures from srcdir) using:
"python -OO build/pymake/make.py -s -f client.mk"
...and specifying the objdir in my /mozconfig:
I get the following error (in addition to that mentioned in bug 707511):
No rule to make target '/c/mozilla/obj-inbound/config.status' needed by ['<command-line>', '/c/mozilla/obj-inbound/config.status']
(Full log attached)
I like having my objdir one level up from the srcdir, so currently my workaround (and the way I've been building for months, since until now I didn't realise MOZ_OBJDIR was supposed to work in pymake builds) is of course to just build from the objdir, using: "python -OO ../inbound/build/pymake/make.py -s -f ../inbound/client.mk".
Either MOZ_OBJDIR is supposed to work under pymake and this is a bug (or else just another side effect of bug 707511), or else if it's known unavoidably broken, then maybe I can just clarify on the build options/pymake pages and save others the hassle of trying to figure out why things aren't working :-)
- Windows 7 x64 (but building 32 bit)
- MozillaBuild 1.6 final
- WinSDK 7.0A
- Inbound tip as of 2011-12-02
- PATH: "%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\TortoiseHg\;c:\Program Files\Java\jdk1.7.0_01\bin\"
- In my .profile:
Ok, turns out things start working if I use:
...which is counter-intuitive given that MozillaBuild lists paths in the /c/mozilla/foo form.
If this behaviour is intentional, then I'll update https://developer.mozilla.org/en/Configuring_Build_Options#Building_with_an_Objdir instructing windows users to use the correct from + list the error on the troubleshooting page & ideally we can add some kind of error message that is more helpful than that in comment 0.
Yes, pymake uses windows paths not msys paths. Feel free to make the error message reasonable.
Seems obvious in retrospect (such is life!) :-)
Morphing bug to be about adding an explicit error message.
Created attachment 579193 [details] [diff] [review]
Adds an explicit error message iff MINGW* && PYMAKE && first character of MOZ_OBJDIR is a "/".
The indentation style in client.mk is slightly varied, so wasn't sure what to match, so went with that ifndef block's existing style. Happy to change it to whatever you'd prefer.
Comment on attachment 579193 [details] [diff] [review]
Review of attachment 579193 [details] [diff] [review]:
@@ +141,5 @@
> ifndef MOZ_OBJDIR
> MOZ_OBJDIR = obj-$(CONFIG_GUESS)
> +# On Windows Pymake builds check MOZ_OBJDIR doesn't start with "/"
> + ifneq (,$(filter MINGW%,$(shell uname -s)))
Maybe use CONFIG_GUESS here instead of having to shell out again?
Created attachment 579900 [details] [diff] [review]
As before, except uses:
> ifneq (,$(findstring mingw,$(CONFIG_GUESS)))
> ifneq (,$(filter MINGW%,$(shell uname -s)))
Also replaces an existing MINGW check that can use CONFIG_GUESS as well, avoid shelling out there too.