From uk@tuvok.cc.univie.ac.at  Thu Jan 16 11:40:48 2003
Return-Path: <uk@tuvok.cc.univie.ac.at>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id C7DB937B401
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 16 Jan 2003 11:40:48 -0800 (PST)
Received: from tuvok.cc.univie.ac.at (tuvok.cc.univie.ac.at [131.130.2.31])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E55BB43E4A
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 16 Jan 2003 11:40:47 -0800 (PST)
	(envelope-from uk@tuvok.cc.univie.ac.at)
Received: from tuvok.cc.univie.ac.at (localhost [127.0.0.1])
	by tuvok.cc.univie.ac.at (8.12.6/8.12.6) with ESMTP id h0GJejwn035761
	for <FreeBSD-gnats-submit@freebsd.org>; Thu, 16 Jan 2003 20:40:46 +0100 (CET)
	(envelope-from uk@tuvok.cc.univie.ac.at)
Received: (from uk@localhost)
	by tuvok.cc.univie.ac.at (8.12.6/8.12.6/Submit) id h0GJejhd035738;
	Thu, 16 Jan 2003 20:40:45 +0100 (CET)
	(envelope-from uk)
Message-Id: <200301161940.h0GJejhd035738@tuvok.cc.univie.ac.at>
Date: Thu, 16 Jan 2003 20:40:45 +0100 (CET)
From: Ulrich Kiermayr <uk@univie.ac.at>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: make -C documented but not working
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         47149
>Category:       bin
>Synopsis:       make -C documented but not working
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    ru
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 16 11:50:01 PST 2003
>Closed-Date:    Sun Sep 14 05:34:09 PDT 2003
>Last-Modified:  Sun Sep 14 05:34:09 PDT 2003
>Originator:     Ulrich Kiermayr
>Release:        FreeBSD 4.7-STABLE i386
>Organization:
University of Vienna
>Environment:
System: FreeBSD tuvok.cc.univie.ac.at 4.7-STABLE FreeBSD 4.7-STABLE #3: Fri Jan 10 15:50:57 CET 2003 root@tuvok.cc.univie.ac.at:/usr/obj/usr/src/sys/TUVOK i386
>Description:
make -C dir is documented in the manpage, but using it gives:

[uk@tuvok uk]$ make -C xxx
make: illegal option -- C
usage: make [-Beiknqrstv] [-D variable] [-d flags] [-E variable] [-f makefile]
            [-I directory] [-j max_jobs] [-m directory] [-V variable]
            [variable=value] [target ...]

>How-To-Repeat:
See above.

>Fix:

	probably only an MFC Problem, since it works in -CURRENT

>Release-Note:
>Audit-Trail:

From: Lukas Ertl <l.ertl@univie.ac.at>
To: freebsd-gnats-submit@FreeBSD.org
Cc: uk@univie.ac.at
Subject: Re: bin/47149: make -C documented but not working - [PATCH]
Date: Fri, 17 Jan 2003 13:50:37 +0100 (CET)

   This message is in MIME format.  The first part should be readable text,
   while the remaining parts are likely unreadable without MIME-aware tools.
   Send mail to mime@docserver.cac.washington.edu for more info.
 
 --0-611245315-1042807837=:18530
 Content-Type: TEXT/PLAIN; charset=ISO-8859-1
 Content-Transfer-Encoding: QUOTED-PRINTABLE
 
 The problem of "make -C" on 4-STABLE is just a missing char in the
 OPTFLAGS string (this must have happened when MFC'ing the -C option).
 
 The problem of "make -C" on both 4-STABLE _and_ 5-CURRENT is that it
 simply doesn't work correctly, because the current program flow of "make"
 sets the essential .CURDIR and .OBJDIR Makefile vars _before_ chdir()'ing
 to the directory given as -C parameter.
 
 The attached patch is just moving around some code, but it seems to
 correct the problem. I don't have enough knowledge of the make internals
 to be sure that it doesn't have any nasty side effects, so please review
 it closely.
 
 best regards,
 le
 
 --=20
 Lukas Ertl                              eMail: l.ertl@univie.ac.at
 UNIX-Systemadministrator                Tel.:  (+43 1) 4277-14073
 Zentraler Informatikdienst (ZID)        Fax.:  (+43 1) 4277-9140
 der Universit=E4t Wien                    http://mailbox.univie.ac.at/~le/
 --0-611245315-1042807837=:18530
 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="make.patch"
 Content-Transfer-Encoding: BASE64
 Content-ID: <20030117135037.R18530@pcle2.cc.univie.ac.at>
 Content-Description: 
 Content-Disposition: attachment; filename="make.patch"
 
 LS0tIHNyYy91c3IuYmluL21ha2UvbWFpbi5jCUZyaSBKYW4gMTcgMTM6MzA6
 MzAgMjAwMw0KKysrIHNyYy91c3IuYmluL21ha2UvbWFpbi5jLm5ldwlGcmkg
 SmFuIDE3IDEzOjM5OjU3IDIwMDMNCkBAIC00ODQsMTcgKzQ4NCw2IEBADQog
 CQl9DQogCX0NCiAjZW5kaWYNCi0JLyoNCi0JICogRmluZCB3aGVyZSB3ZSBh
 cmUuLi4NCi0JICogQWxsIHRoaXMgY29kZSBpcyBzbyB0aGF0IHdlIGtub3cg
 d2hlcmUgd2UgYXJlIHdoZW4gd2Ugc3RhcnQgdXANCi0JICogb24gYSBkaWZm
 ZXJlbnQgbWFjaGluZSB3aXRoIHBtYWtlLg0KLQkgKi8NCi0JY3VyZGlyID0g
 Y2RwYXRoOw0KLQlpZiAoZ2V0Y3dkKGN1cmRpciwgTUFYUEFUSExFTikgPT0g
 TlVMTCkNCi0JCWVycigyLCBOVUxMKTsNCi0NCi0JaWYgKHN0YXQoY3VyZGly
 LCAmc2EpID09IC0xKQ0KLQkgICAgZXJyKDIsICIlcyIsIGN1cmRpcik7DQog
 DQogI2lmIGRlZmluZWQoX19pMzg2X18pICYmIGRlZmluZWQoX19GcmVlQlNE
 X3ZlcnNpb24pICYmIFwNCiAgICAgX19GcmVlQlNEX3ZlcnNpb24gPiAzMDAw
 MDMNCkBAIC01NjAsNDggKzU0OSw2IEBADQogCQkJbWFjaGluZV9jcHUgPSAi
 dW5rbm93biI7DQogCX0NCiAJDQotCS8qDQotCSAqIFRoZSBvYmplY3QgZGly
 ZWN0b3J5IGxvY2F0aW9uIGlzIGRldGVybWluZWQgdXNpbmcgdGhlDQotCSAq
 IGZvbGxvd2luZyBvcmRlciBvZiBwcmVmZXJlbmNlOg0KLQkgKg0KLQkgKgkx
 LiBNQUtFT0JKRElSUFJFRklYYGN3ZGANCi0JICoJMi4gTUFLRU9CSkRJUg0K
 LQkgKgkzLiBfUEFUSF9PQkpESVIuJHtNQUNISU5FfQ0KLQkgKgk0LiBfUEFU
 SF9PQkpESVINCi0JICoJNS4gX1BBVEhfT0JKRElSUFJFRklYYGN3ZGANCi0J
 ICoNCi0JICogSWYgb25lIG9mIHRoZSBmaXJzdCB0d28gZmFpbHMsIHVzZSB0
 aGUgY3VycmVudCBkaXJlY3RvcnkuDQotCSAqIElmIHRoZSByZW1haW5pbmcg
 dGhyZWUgYWxsIGZhaWwsIHVzZSB0aGUgY3VycmVudCBkaXJlY3RvcnkuDQot
 CSAqDQotCSAqIE9uY2UgdGhpbmdzIGFyZSBpbml0dGVkLA0KLQkgKiBoYXZl
 IHRvIGFkZCB0aGUgb3JpZ2luYWwgZGlyZWN0b3J5IHRvIHRoZSBzZWFyY2gg
 cGF0aCwNCi0JICogYW5kIG1vZGlmeSB0aGUgcGF0aHMgZm9yIHRoZSBNYWtl
 ZmlsZXMgYXByb3ByaWF0ZWx5LiAgVGhlDQotCSAqIGN1cnJlbnQgZGlyZWN0
 b3J5IGlzIGFsc28gcGxhY2VkIGFzIGEgdmFyaWFibGUgZm9yIG1ha2Ugc2Ny
 aXB0cy4NCi0JICovDQotCWlmICghKHBhdGhwID0gZ2V0ZW52KCJNQUtFT0JK
 RElSUFJFRklYIikpKSB7DQotCQlpZiAoIShwYXRoID0gZ2V0ZW52KCJNQUtF
 T0JKRElSIikpKSB7DQotCQkJcGF0aCA9IF9QQVRIX09CSkRJUjsNCi0JCQlw
 YXRocCA9IF9QQVRIX09CSkRJUlBSRUZJWDsNCi0JCQkodm9pZCkgc25wcmlu
 dGYobWRwYXRoLCBNQVhQQVRITEVOLCAiJXMuJXMiLA0KLQkJCQkJcGF0aCwg
 bWFjaGluZSk7DQotCQkJaWYgKCEob2JqZGlyID0gY2hkaXJfdmVyaWZ5X3Bh
 dGgobWRwYXRoLCBvYnBhdGgpKSkNCi0JCQkJaWYgKCEob2JqZGlyPWNoZGly
 X3ZlcmlmeV9wYXRoKHBhdGgsIG9icGF0aCkpKSB7DQotCQkJCQkodm9pZCkg
 c25wcmludGYobWRwYXRoLCBNQVhQQVRITEVOLA0KLQkJCQkJCQkiJXMlcyIs
 IHBhdGhwLCBjdXJkaXIpOw0KLQkJCQkJaWYgKCEob2JqZGlyPWNoZGlyX3Zl
 cmlmeV9wYXRoKG1kcGF0aCwNCi0JCQkJCQkJCSAgICAgICBvYnBhdGgpKSkN
 Ci0JCQkJCQlvYmpkaXIgPSBjdXJkaXI7DQotCQkJCX0NCi0JCX0NCi0JCWVs
 c2UgaWYgKCEob2JqZGlyID0gY2hkaXJfdmVyaWZ5X3BhdGgocGF0aCwgb2Jw
 YXRoKSkpDQotCQkJb2JqZGlyID0gY3VyZGlyOw0KLQl9DQotCWVsc2Ugew0K
 LQkJKHZvaWQpIHNucHJpbnRmKG1kcGF0aCwgTUFYUEFUSExFTiwgIiVzJXMi
 LCBwYXRocCwgY3VyZGlyKTsNCi0JCWlmICghKG9iamRpciA9IGNoZGlyX3Zl
 cmlmeV9wYXRoKG1kcGF0aCwgb2JwYXRoKSkpDQotCQkJb2JqZGlyID0gY3Vy
 ZGlyOw0KLQl9DQotDQogCWNyZWF0ZSA9IExzdF9Jbml0KEZBTFNFKTsNCiAJ
 bWFrZWZpbGVzID0gTHN0X0luaXQoRkFMU0UpOw0KIAllbnZGaXJzdFZhcnMg
 PSBMc3RfSW5pdChGQUxTRSk7DQpAQCAtNjI4LDcgKzU3NSw2IEBADQogCWZv
 cmNlSm9icyA9IEZBTFNFOyAgICAgICAgICAgICAgLyogTm8gLWogZmxhZyAq
 Lw0KIAljb21wYXRNYWtlID0gRkFMU0U7CQkvKiBObyBjb21wYXQgbW9kZSAq
 Lw0KIA0KLQ0KIAkvKg0KIAkgKiBJbml0aWFsaXplIHRoZSBwYXJzaW5nLCBk
 aXJlY3RvcnkgYW5kIHZhcmlhYmxlIG1vZHVsZXMgdG8gcHJlcGFyZQ0KIAkg
 KiBmb3IgdGhlIHJlYWRpbmcgb2YgaW5jbHVzaW9uIHBhdGhzIGFuZCB2YXJp
 YWJsZSBzZXR0aW5ncyBvbiB0aGUNCkBAIC02NDEsMTAgKzU4Nyw2IEBADQog
 CVZhcl9Jbml0KCk7CQkvKiBBcyB3ZWxsIGFzIHRoZSBsaXN0cyBvZiB2YXJp
 YWJsZXMgZm9yDQogCQkJCSAqIHBhcnNpbmcgYXJndW1lbnRzICovDQogICAg
 ICAgICBzdHJfaW5pdCgpOw0KLQlpZiAob2JqZGlyICE9IGN1cmRpcikNCi0J
 CURpcl9BZGREaXIoZGlyU2VhcmNoUGF0aCwgY3VyZGlyKTsNCi0JVmFyX1Nl
 dCgiLkNVUkRJUiIsIGN1cmRpciwgVkFSX0dMT0JBTCk7DQotCVZhcl9TZXQo
 Ii5PQkpESVIiLCBvYmpkaXIsIFZBUl9HTE9CQUwpOw0KIA0KIAkvKg0KIAkg
 KiBJbml0aWFsaXplIHZhcmlvdXMgdmFyaWFibGVzLg0KQEAgLTY3NCw2ICs2
 MTYsNjUgQEANCiAjZW5kaWYNCiANCiAJTWFpblBhcnNlQXJncyhhcmdjLCBh
 cmd2KTsNCisNCisJLyoNCisJICogRmluZCB3aGVyZSB3ZSBhcmUuLi4NCisJ
 ICogQWxsIHRoaXMgY29kZSBpcyBzbyB0aGF0IHdlIGtub3cgd2hlcmUgd2Ug
 YXJlIHdoZW4gd2Ugc3RhcnQgdXANCisJICogb24gYSBkaWZmZXJlbnQgbWFj
 aGluZSB3aXRoIHBtYWtlLg0KKwkgKi8NCisJY3VyZGlyID0gY2RwYXRoOw0K
 KwlpZiAoZ2V0Y3dkKGN1cmRpciwgTUFYUEFUSExFTikgPT0gTlVMTCkNCisJ
 CWVycigyLCBOVUxMKTsNCisNCisJaWYgKHN0YXQoY3VyZGlyLCAmc2EpID09
 IC0xKQ0KKwkgICAgZXJyKDIsICIlcyIsIGN1cmRpcik7DQorDQorCS8qDQor
 CSAqIFRoZSBvYmplY3QgZGlyZWN0b3J5IGxvY2F0aW9uIGlzIGRldGVybWlu
 ZWQgdXNpbmcgdGhlDQorCSAqIGZvbGxvd2luZyBvcmRlciBvZiBwcmVmZXJl
 bmNlOg0KKwkgKg0KKwkgKgkxLiBNQUtFT0JKRElSUFJFRklYYGN3ZGANCisJ
 ICoJMi4gTUFLRU9CSkRJUg0KKwkgKgkzLiBfUEFUSF9PQkpESVIuJHtNQUNI
 SU5FfQ0KKwkgKgk0LiBfUEFUSF9PQkpESVINCisJICoJNS4gX1BBVEhfT0JK
 RElSUFJFRklYYGN3ZGANCisJICoNCisJICogSWYgb25lIG9mIHRoZSBmaXJz
 dCB0d28gZmFpbHMsIHVzZSB0aGUgY3VycmVudCBkaXJlY3RvcnkuDQorCSAq
 IElmIHRoZSByZW1haW5pbmcgdGhyZWUgYWxsIGZhaWwsIHVzZSB0aGUgY3Vy
 cmVudCBkaXJlY3RvcnkuDQorCSAqDQorCSAqIE9uY2UgdGhpbmdzIGFyZSBp
 bml0dGVkLA0KKwkgKiBoYXZlIHRvIGFkZCB0aGUgb3JpZ2luYWwgZGlyZWN0
 b3J5IHRvIHRoZSBzZWFyY2ggcGF0aCwNCisJICogYW5kIG1vZGlmeSB0aGUg
 cGF0aHMgZm9yIHRoZSBNYWtlZmlsZXMgYXByb3ByaWF0ZWx5LiAgVGhlDQor
 CSAqIGN1cnJlbnQgZGlyZWN0b3J5IGlzIGFsc28gcGxhY2VkIGFzIGEgdmFy
 aWFibGUgZm9yIG1ha2Ugc2NyaXB0cy4NCisJICovDQorCWlmICghKHBhdGhw
 ID0gZ2V0ZW52KCJNQUtFT0JKRElSUFJFRklYIikpKSB7DQorCQlpZiAoIShw
 YXRoID0gZ2V0ZW52KCJNQUtFT0JKRElSIikpKSB7DQorCQkJcGF0aCA9IF9Q
 QVRIX09CSkRJUjsNCisJCQlwYXRocCA9IF9QQVRIX09CSkRJUlBSRUZJWDsN
 CisJCQkodm9pZCkgc25wcmludGYobWRwYXRoLCBNQVhQQVRITEVOLCAiJXMu
 JXMiLA0KKwkJCQkJcGF0aCwgbWFjaGluZSk7DQorCQkJaWYgKCEob2JqZGly
 ID0gY2hkaXJfdmVyaWZ5X3BhdGgobWRwYXRoLCBvYnBhdGgpKSkNCisJCQkJ
 aWYgKCEob2JqZGlyPWNoZGlyX3ZlcmlmeV9wYXRoKHBhdGgsIG9icGF0aCkp
 KSB7DQorCQkJCQkodm9pZCkgc25wcmludGYobWRwYXRoLCBNQVhQQVRITEVO
 LA0KKwkJCQkJCQkiJXMlcyIsIHBhdGhwLCBjdXJkaXIpOw0KKwkJCQkJaWYg
 KCEob2JqZGlyPWNoZGlyX3ZlcmlmeV9wYXRoKG1kcGF0aCwNCisJCQkJCQkJ
 CSAgICAgICBvYnBhdGgpKSkNCisJCQkJCQlvYmpkaXIgPSBjdXJkaXI7DQor
 CQkJCX0NCisJCX0NCisJCWVsc2UgaWYgKCEob2JqZGlyID0gY2hkaXJfdmVy
 aWZ5X3BhdGgocGF0aCwgb2JwYXRoKSkpDQorCQkJb2JqZGlyID0gY3VyZGly
 Ow0KKwl9DQorCWVsc2Ugew0KKwkJKHZvaWQpIHNucHJpbnRmKG1kcGF0aCwg
 TUFYUEFUSExFTiwgIiVzJXMiLCBwYXRocCwgY3VyZGlyKTsNCisJCWlmICgh
 KG9iamRpciA9IGNoZGlyX3ZlcmlmeV9wYXRoKG1kcGF0aCwgb2JwYXRoKSkp
 DQorCQkJb2JqZGlyID0gY3VyZGlyOw0KKwl9DQorDQorCWlmIChvYmpkaXIg
 IT0gY3VyZGlyKQ0KKwkJRGlyX0FkZERpcihkaXJTZWFyY2hQYXRoLCBjdXJk
 aXIpOw0KKwlWYXJfU2V0KCIuQ1VSRElSIiwgY3VyZGlyLCBWQVJfR0xPQkFM
 KTsNCisJVmFyX1NldCgiLk9CSkRJUiIsIG9iamRpciwgVkFSX0dMT0JBTCk7
 DQogDQogCS8qDQogCSAqIEJlIGNvbXBhdGlibGUgaWYgdXNlciBkaWQgbm90
 IHNwZWNpZnkgLWogYW5kIGRpZCBub3QgZXhwbGljaXRseQ0K
 
 --0-611245315-1042807837=:18530--

From: Ulrich Kiermayr <ulrich.kiermayr@univie.ac.at>
To: freebsd-gnats-submit@FreeBSD.org
Cc: Lukas Ertl <l.ertl@univie.ac.at>
Subject: Re: bin/47149: make -C documented but not working - [PATCH]
Date: Fri, 17 Jan 2003 14:43:58 +0100

 This is the Complete backport of Lukas' Patch under -STABLE:
 
 -------------------------
 bash-2.05b# cat ~uk/make.patch.stable
 --- usr.bin/make/main.c.orig    Tue Dec 17 20:01:18 2002
 +++ usr.bin/make/main.c Fri Jan 17 14:39:29 2003
 @@ -176,9 +176,9 @@
 
           optind = 1;     /* since we're called more than once */
    #ifdef REMOTE
 -# define OPTFLAGS "BD:E:I:L:PSV:Xd:ef:ij:km:nqrstv"
 +# define OPTFLAGS "BC:D:E:I:L:PSV:Xd:ef:ij:km:nqrstv"
    #else
 -# define OPTFLAGS "BD:E:I:PSV:Xd:ef:ij:km:nqrstv"
 +# define OPTFLAGS "BC:D:E:I:PSV:Xd:ef:ij:km:nqrstv"
    #endif
    rearg: while((c = getopt(argc, argv, OPTFLAGS)) != -1) {
                   switch(c) {
 @@ -503,17 +503,6 @@
                   }
           }
    #endif
 -       /*
 -        * Find where we are and take care of PWD for the automounter...
 -        * All this code is so that we know where we are when we start up
 -        * on a different machine with pmake.
 -        */
 -       curdir = cdpath;
 -       if (getcwd(curdir, MAXPATHLEN) == NULL)
 -               err(2, NULL);
 -
 -       if (stat(curdir, &sa) == -1)
 -           err(2, "%s", curdir);
 
    #ifdef WANT_ENV_PWD
           if ((pwd = getenv("PWD")) != NULL) {
 @@ -589,51 +578,6 @@
                           machine_cpu = "unknown";
           }
 
 -       /*
 -        * The object directory location is determined using the
 -        * following order of preference:
 -        *
 -        *      1. MAKEOBJDIRPREFIX`cwd`
 -        *      2. MAKEOBJDIR
 -        *      3. _PATH_OBJDIR.${MACHINE}
 -        *      4. _PATH_OBJDIR
 -        *      5. _PATH_OBJDIRPREFIX`cwd`
 -        *
 -        * If one of the first two fails, use the current directory.
 -        * If the remaining three all fail, use the current directory.
 -        *
 -        * Once things are initted,
 -        * have to add the original directory to the search path,
 -        * and modify the paths for the Makefiles apropriately.  The
 -        * current directory is also placed as a variable for make scripts.
 -        */
 -       if (!(pathp = getenv("MAKEOBJDIRPREFIX"))) {
 -               if (!(path = getenv("MAKEOBJDIR"))) {
 -                       path = _PATH_OBJDIR;
 -                       pathp = _PATH_OBJDIRPREFIX;
 -                       (void) snprintf(mdpath, MAXPATHLEN, "%s.%s",
 -                                       path, machine);
 -                       if (!(objdir = chdir_verify_path(mdpath, obpath)))
 -                               if (!(objdir=chdir_verify_path(path,
 obpath))) {
 -                                       (void) snprintf(mdpath, MAXPATHLEN,
 -                                                       "%s%s", pathp,
 curdir);
 -                                       if
 (!(objdir=chdir_verify_path(mdpath,
 -
 obpath)))
 -                                               objdir = curdir;
 -                               }
 -               }
 -               else if (!(objdir = chdir_verify_path(path, obpath)))
 -                       objdir = curdir;
 -       }
 -       else {
 -               (void) snprintf(mdpath, MAXPATHLEN, "%s%s", pathp, curdir);
 -               if (!(objdir = chdir_verify_path(mdpath, obpath)))
 -                       objdir = curdir;
 -       }
 -
 -#ifdef WANT_ENV_PWD
 -       setenv("PWD", objdir, 1);
 -#endif
 
           create = Lst_Init(FALSE);
           makefiles = Lst_Init(FALSE);
 @@ -675,10 +619,6 @@
           Var_Init();             /* As well as the lists of variables for
                                    * parsing arguments */
            str_init();
 -       if (objdir != curdir)
 -               Dir_AddDir(dirSearchPath, curdir);
 -       Var_Set(".CURDIR", curdir, VAR_GLOBAL);
 -       Var_Set(".OBJDIR", objdir, VAR_GLOBAL);
 
           /*
            * Initialize various variables.
 @@ -705,6 +645,69 @@
    #endif
 
           MainParseArgs(argc, argv);
 +
 +       /*
 +        * Find where we are and take care of PWD for the automounter...
 +        * All this code is so that we know where we are when we start up
 +        * on a different machine with pmake.
 +        */
 +       curdir = cdpath;
 +       if (getcwd(curdir, MAXPATHLEN) == NULL)
 +               err(2, NULL);
 +
 +       if (stat(curdir, &sa) == -1)
 +           err(2, "%s", curdir);
 +
 +       /*
 +        * The object directory location is determined using the
 +        * following order of preference:
 +        *
 +        *      1. MAKEOBJDIRPREFIX`cwd`
 +        *      2. MAKEOBJDIR
 +        *      3. _PATH_OBJDIR.${MACHINE}
 +        *      4. _PATH_OBJDIR
 +        *      5. _PATH_OBJDIRPREFIX`cwd`
 +        *
 +        * If one of the first two fails, use the current directory.
 +        * If the remaining three all fail, use the current directory.
 +        *
 +        * Once things are initted,
 +        * have to add the original directory to the search path,
 +        * and modify the paths for the Makefiles apropriately.  The
 +        * current directory is also placed as a variable for make scripts.
 +        */
 +       if (!(pathp = getenv("MAKEOBJDIRPREFIX"))) {
 +               if (!(path = getenv("MAKEOBJDIR"))) {
 +                       path = _PATH_OBJDIR;
 +                       pathp = _PATH_OBJDIRPREFIX;
 +                       (void) snprintf(mdpath, MAXPATHLEN, "%s.%s",
 +                                       path, machine);
 +                       if (!(objdir = chdir_verify_path(mdpath, obpath)))
 +                               if (!(objdir=chdir_verify_path(path,
 obpath))) {
 +                                       (void) snprintf(mdpath, MAXPATHLEN,
 +                                                       "%s%s", pathp,
 curdir);
 +                                       if
 (!(objdir=chdir_verify_path(mdpath,
 +
 obpath)))
 +                                               objdir = curdir;
 +                               }
 +               }
 +               else if (!(objdir = chdir_verify_path(path, obpath)))
 +                       objdir = curdir;
 +       }
 +       else {
 +               (void) snprintf(mdpath, MAXPATHLEN, "%s%s", pathp, curdir);
 +               if (!(objdir = chdir_verify_path(mdpath, obpath)))
 +                       objdir = curdir;
 +       }
 +
 +#ifdef WANT_ENV_PWD
 +       setenv("PWD", objdir, 1);
 +#endif
 +
 +       if (objdir != curdir)
 +               Dir_AddDir(dirSearchPath, curdir);
 +       Var_Set(".CURDIR", curdir, VAR_GLOBAL);
 +       Var_Set(".OBJDIR", objdir, VAR_GLOBAL);
 
           /*
            * Be compatible if user did not specify -j and did not explicitly
 
 -------------------------
 
 lG uk
 --
 ------------------------------------------------------------------------
 Ulrich Kiermayr         Zentraler Informatikdienst der Universitaet Wien
 Network Security              Universitaetsstrasse 7, 1010 Wien, Austria
 ------------------------------------------------------------------------
 eMail:   ulrich.kiermayr@univie.ac.at          Tel: (+43 1) 4277 / 14104
 Hotline: security.zid@univie.ac.at             Fax: (+43 1) 4277 /  9140
 Web:     http://www.univie.ac.at/zid/security.html
 ------------------------------------------------------------------------
 GPG Key fingerprint = BF0D 5749 4DC1 ED74 AB67  7180 105F 491D A8D7 64D8
 
 
 
Responsible-Changed-From-To: freebsd-bugs->seanc 
Responsible-Changed-By: seanc 
Responsible-Changed-When: Sat Jan 18 17:51:21 PST 2003 
Responsible-Changed-Why:  
I botched testing the MFC of the -C feature, I'll see if I can't 
clean up after myself. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=47149 
Responsible-Changed-From-To: seanc->ru 
Responsible-Changed-By: ru 
Responsible-Changed-When: Tue Apr 15 07:42:16 PDT 2003 
Responsible-Changed-Why:  
I've finished the MFC of the -C option support in 4.8-STABLE. 
I have an inclination to fix the other part of the PR too. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=47149 
State-Changed-From-To: open->closed 
State-Changed-By: ru 
State-Changed-When: Sun Sep 14 05:32:19 PDT 2003 
State-Changed-Why:  
Fixed in 5.1-CURRENT.  Sorry, no MFC is planned. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=47149 
>Unformatted:
