Closed Bug 3524 Opened 26 years ago Closed 25 years ago

"gmake -f client.mk build" errors

Categories

(SeaMonkey :: Build Config, defect, P3)

x86
Linux
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: bbaetz, Assigned: slamm)

Details

I just upgraded mt gtk+ from a "home-built" set of 1.1.* in /usr/local to the 1.2 rpms. However, I didn't delete the gtk-config file. configure ran the one in /usr/local instead of the correct one, and complained with an error. However, make kept going :) Also, gmake ... build doesn't run depend. Is this a bug? The documentation on mozilla.org implies that gmake ... build does everything, ie it should run the depend. As well (there's no option for documentation in bugzilla) the stuff in mozilla/README is quite out of date - it should be the same as on the webpage. Bradley
Status: NEW → ASSIGNED
Target Milestone: M4
Assignee: briano → leaf
Status: ASSIGNED → NEW
The first problem is almost certainly due to your path setting. Either you need to prepend the directory containing the new gtk-config to your path, or you need to use the --with-gtk-prefix and/or --with-gtk-exec-prefix flags with configure. Part two I don't think is really a bug. I consider depend and build to be separate, distinct targets. And you certainly don't need to use depend if you don't want to. In any case, if you just use 'gmake', you'll make depend as well (and it's less typing... ;-). Part three I think belongs to leaf, so I'm reassigning the bug to him.
Perhaps I didn't explain myself: 1. The error wasn't that the wrong gtk-config was used - That was my error. The bug is that configure exited with an error, but gmake ignored the error, and went on as if nothing had happened. Make should have stopped. 2. gmake build does configure, then gmake. depend has to take place before the actual gmake, but after the configure (or else the Makefiles aren't built). Therefore, as it stands, doing gmake -f client.mk build is useless. I use gamke -f client.mk only because it uses mozconfig.sh so I use the right options to ./configure. AFAIK, there isn't a target which only does the configure without doing the build - if there is, it isn't documented. just 'gmake' doesn't rerun depend or configure. If it does, then why does the build documentation say do ./configure;gmake depend;gmake OR gmake -f client.mk build?
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → WORKSFORME
So, i tried pulling manually, and building on linux: [leaf@branch mozilla]$ gmake depend gmake: No need to run depend target. Using compiler-based depend. Since you are using a GNU compiler, it is on by default. To turn it off, pass --disable-md to configure. and solaris, which didn't have any problems either once i sorted out nspr being built and gtk+/glib being included in the path.
Status: RESOLVED → REOPENED
I have a fix for the first problem, 1. client.mk continues after configure error. The second problem is a bit trickier, 2. No way to run depend between configure and regular gmake. #2 is not a problem if you use compiler-based dependencies (-MD). That is the default if you have a GNU compiler that supports it. If you are not using a GNU-based compiler, it probably still isn't a problem. The first time you build the tree, there is no need to run depend, because everything will get built. Subsequent times you build the tree, it should be ok to run depend before configure. client.mk handles this case for you. If you don't want to checkout again, you should be able to do, gmake -f client.mk depend build If you still feel like client.mk is coming up short, let me know and I'll see what I can do. Also, if you want to use .mozconfig, but you don't want to use client.mk, that works too. configure will use your .mozconfig settings regardless of whether or not you use client.mk.
Assignee: leaf → slamm
Status: REOPENED → NEW
Resolution: WORKSFORME → ---
Status: NEW → ASSIGNED
Status: ASSIGNED → RESOLVED
Closed: 26 years ago25 years ago
Resolution: --- → FIXED
I checked in fixes. I changed the dependencies of the "depend" target so that it runs configure first. Here are the lines from client.mk, depend: $(OBJDIR)/Makefile $(OBJDIR)/config.status $(OBJDIR)/config.cache cd $(OBJDIR); $(MAKE) $@;
Status: RESOLVED → VERIFIED
seems to be working.
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.