Closed
Bug 707512
Opened 13 years ago
Closed 13 years ago
Windows pymake builds using MOZ_OBJDIR set to an MSYS style path, fail with an unclear: "No rule to make target '/c/<objdir>/config.status' needed by ['<command-line>', '/c/<objdir>/config.status']"
Categories
(Firefox Build System :: General, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla11
People
(Reporter: emorley, Assigned: emorley)
Details
(Keywords: dev-doc-complete)
Attachments
(2 files, 1 obsolete file)
67.16 KB,
text/plain
|
Details | |
1.94 KB,
patch
|
Details | Diff | Splinter Review |
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:
mk_add_options MOZ_OBJDIR=/c/mozilla/obj-inbound
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
- MSVC2010
- 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:
{
export MOZCONFIG=/c/mozilla/.mozconfig
}
- .mozconfig:
{
mk_add_options MOZ_OBJDIR=/c/mozilla/obj-inbound
mk_add_options MOZ_MAKE_FLAGS="-j3"
ac_add_options --disable-optimize
ac_add_options --disable-debug-symbols
ac_add_options --disable-tests
ac_add_options --disable-angle
}
Assignee | ||
Comment 1•13 years ago
|
||
Ok, turns out things start working if I use:
mk_add_options MOZ_OBJDIR=c:/mozilla/obj-inbound
...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.
Comment 2•13 years ago
|
||
Yes, pymake uses windows paths not msys paths. Feel free to make the error message reasonable.
Assignee | ||
Comment 3•13 years ago
|
||
Seems obvious in retrospect (such is life!) :-)
Morphing bug to be about adding an explicit error message.
Summary: Win pymake build failure with srcdir builds that have MOZ_OBJDIR set in mozconfig: "No rule to make target '/c/mozilla/obj-inbound/config.status' needed by ['<command-line>', '/c/mozilla/obj-inbound/config.status']" → Windows pymake builds using MOZ_OBJDIR set to an MSYS style path, fail with an unclear: "No rule to make target '/c/<objdir>/config.status' needed by ['<command-line>', '/c/<objdir>/config.status']"
Assignee | ||
Comment 4•13 years ago
|
||
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 5•13 years ago
|
||
Comment on attachment 579193 [details] [diff] [review]
Patch v1
Review of attachment 579193 [details] [diff] [review]:
-----------------------------------------------------------------
::: client.mk
@@ +141,5 @@
> ifndef MOZ_OBJDIR
> MOZ_OBJDIR = obj-$(CONFIG_GUESS)
> +else
> +# 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?
Attachment #579193 -
Flags: review?(ted.mielczarek) → review+
Assignee | ||
Comment 6•13 years ago
|
||
As before, except uses:
> ifneq (,$(findstring mingw,$(CONFIG_GUESS)))
...instead of:
> ifneq (,$(filter MINGW%,$(shell uname -s)))
Also replaces an existing MINGW check that can use CONFIG_GUESS as well, avoid shelling out there too.
Attachment #579193 -
Attachment is obsolete: true
Assignee | ||
Comment 7•13 years ago
|
||
Flags: in-testsuite-
Target Milestone: --- → mozilla11
Assignee | ||
Comment 8•13 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 9•13 years ago
|
||
Keywords: dev-doc-complete
Updated•7 years ago
|
Product: Core → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•