Commit Graph

360 Commits

Author SHA1 Message Date
Philippe Charnier
cb497d661f Reorder #include. Cast arg #2 of lseek to an off_t when constant. No need to
test if failsafe memory allocation fails, it can't. perror -> warn. Use
failsafe memory allocation provided.

Use .Pa and .Ar. Uppercase (first letter) programname after dot.
2002-04-12 13:23:33 +00:00
Warner Losh
c120448ada o unifdef -D__STDC__
o remove badly bit-rotted compat file that likely won't work on the systems
  it purports to support.
2002-03-23 23:30:30 +00:00
Warner Losh
d3cb5ded92 remove __P 2002-03-22 01:33:25 +00:00
Crist J. Clark
c62ec993b4 make(1) claims to ignore the remainder of a conditional once its value
has been determined similar to C. That is, one expects a construction
like,

.if defined(TEST) && (${TEST:L} == "test")

Never to generate an error since the second expression should never be
evaluated when TEST is undefined.

However, this was not the case. The above fails with the current
make(1) if TEST is undefined. This patch fixes the above and many
similar cases.

PR:		bin/34032
Submitted by:	Alan Eldridge <alane@geeksrus.net>
MFC after:	1 week
2002-02-20 14:31:19 +00:00
Jens Schweikhardt
e3e5c7667e Make substitutions in internal macros like $(@F:.o=.c) work.
This should not affect our build process, as

	find /usr/src -name Makefile | xargs grep '@[DF]'

has no matches (other than FreeBSD.org email addresses :-)

PR:		bin/24377
Submitted by:	Mark Valentine <mark@thuvia.demon.co.uk>
Reviewed by:	Matthew Emmerton <matt@gsicomp.on.ca>
MFC after:	4 weeks
2002-01-12 10:45:27 +00:00
Ruslan Ermilov
57e4378bf6 mdoc(7) police: protect trailing full stops of abbreviations
with a trailing zero-width space: `e.g.\&'.
2001-08-10 13:45:36 +00:00
Sheldon Hearn
e1b4d8d074 Use STD{ERR,IN,OUT}_FILENO instead of their numeric values. The
definitions are more readable, and it's possible that they're
more portable to pathalogical platforms.

Submitted by:   David Hill <david@phobia.ms>
2001-07-26 11:02:39 +00:00
Ruslan Ermilov
f72acdd4c9 Clarify that MAKEOBJDIR and MAKEOBJDIRPREFIX are environment variables.
Submitted by:	bde
2001-07-16 15:33:34 +00:00
Dima Dorfman
f247324df7 Remove whitespace at EOL. 2001-07-15 08:06:20 +00:00
David E. O'Brien
f23466b9fd Note that sys.mk is read before any other file (even Makefile) 2001-05-23 18:21:36 +00:00
Maxim Sobolev
6649ab78e1 By default build make(1) as a static binary. It costs only 100k of additional
disk space, buf provides measureable speed increase for make-intensive
operations, such as pkg_version(1), `make world' and so on.

MFC after:	1 week
2001-05-18 09:05:56 +00:00
Dima Dorfman
f238e04f6f mdoc(7) police: remove hard sentence breaks. 2001-04-30 23:20:43 +00:00
Will Andrews
40adb1a63b Remove GCC-ism (-Wall).
Submitted by:	bde
2001-04-26 04:40:57 +00:00
Ruslan Ermilov
9aa8f5f68a Add -Wall. 2001-04-25 14:59:16 +00:00
Ruslan Ermilov
f8532548a6 -Wall cleanup. 2001-04-25 14:45:36 +00:00
Ruslan Ermilov
73295d34c7 unifdef -UWANT_ENV_PWD.
No one ever going to use this bugfeature.
2001-04-25 14:44:42 +00:00
Ruslan Ermilov
43403d166a Make ${.OBJDIR} canonical.
Reviewed by:	bde
2001-04-25 14:22:38 +00:00
Bill Fumerola
bdc8631e01 with my mentor hat on...
remove the concept of a 'maintainer' of our make. there really isn't a
need for any one committer to hold an exclusive lock or serve as a filter
for this code.
2001-03-15 10:33:00 +00:00
Will Andrews
fdcd2e7d3a Revert previous change -- apparently it's not quite right. It broke
src/sys/modules/if_ef and possibly other things.  I tested the build with
a make based on rev. 1.26, and it worked fine.  Since I'm not particularly
inclined to figure out what's going on with this, it's probably prudent
just to back it out for now.

Found by:	jkh
Suggested by:	jhay
2001-03-15 10:22:50 +00:00
Will Andrews
fff8dac495 Fix make(1) bug: nested comments may be placed in .if, .else .if, and
.endif statements but can't be placed in .elif.  Basically, the problem
was that ParseSkipLine() didn't handle comments the same way that
ParseReadLine() did, and thus you had errors with comments that are on a
conditional line (i.e. "^.") rather than a non-conditional line.

MFC candidate for 4.3-STABLE and 3.5-STABLE.

PR:			25627
Bug found by:		jhs
Fix submitted by:	Seth Kingsley <sethk@osd.bsdi.com>  (thanks!!)
2001-03-15 02:51:11 +00:00
Thomas Moestl
a333d4f752 Fix two bugs in null suffix handling. Both occured only after the suffix
list was cleared.
Rules with null suffixes would not be rebuilt when the suffixes were
added again.
Adding null suffix rules would fail when a rule for the same source was
declared before the suffix list was cleared.

PR:		23328, 24102
Reviewed by:	will
Approved by:	rwatson
2001-03-08 00:55:08 +00:00
Warner Losh
e829cbf262 Include -DDEFSHELL=1 in Makefile.dist so people boostrapping will
have a sane default.

Also add $FreeBSD$ while I'm here.

Pointed out by: bde
2001-03-01 06:26:32 +00:00
Warner Losh
20b367cea1 MAXPATHLEN includes the trailing NUL.
Correct array sizes to reflect this.
Correct NUL termination after strncpy.

# Didn't to strncpy -> strlcpy change.
2001-03-01 06:03:17 +00:00
Kris Kennaway
0937df81ca Introduce support for using OpenSSL ASM optimizations. This is done
through the use of a new build directive, MACHINE_CPU, which contains a
list of the CPU generations/features for which optimizations are desired.
This feature will be extended to cover the ports tree in the future.

Currently OpenSSL provides optimizations for i386, i586 and i686-class
CPUs. Currently it has not been tested on an i386 or i486.

Teach make(1) to provide sensible defaults for MACHINE_CPU if it is not
defined (namely, the lowest common denominator CPU we support for each
architecture).  Currently this is i386 for the i386 architecture and ev4
for the alpha.  sys.mk also sets the variable as a last resort for
consistency with MACHINE_ARCH and bootstrapping from very old versions of
make.

Benchmarks show a significant speed increase even in the i386 case, with
additional improvements for i586 and i686 systems.  For maximum performance
define MACHINE_CPU=i686 i586 i386 in /etc/make.conf.

Based on a patch submitted by:  Mike Silbersack <silby@silby.com>
Reviewed by:    current
2001-02-19 03:59:05 +00:00
Jeroen Ruigrok van der Werven
d7d97eb0aa Preceed/preceeding are not english words. Use precede and preceding. 2001-02-18 10:43:53 +00:00
David Malone
d3d8587299 Uname is in section 3 of the manual pages.
PR:		25008
Submitted by:	fullermd@over-yonder.net
2001-02-11 21:19:31 +00:00
Will Andrews
2de6a43d0a Fix nasty bug where make(1) assumed that you could read the directory it
was in.  This shall be MFC'd in about three days (probably not a good idea
to MFC the stylistic changes though - see below).

PR:		19978
Submitted by:	Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
Patch by:	roam (slightly modified by me to use NULL not NIL)
2001-02-10 07:12:18 +00:00
Ruslan Ermilov
d0353b836e mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:38:02 +00:00
Will Andrews
e3cb529472 Fix style(9) bug; use ISDOT[DOT,]() macro available in util.c by moving
it to make.h so both dir.c and util.c can use it, although bde didn't
particularly like this part of the idea, IMO it's cleaner than it was.

Submitted by:	bde
2001-01-21 08:24:41 +00:00
Ruslan Ermilov
1bfea903ed Prepare for mdoc(7)NG. 2001-01-16 09:39:23 +00:00
Will Andrews
111632fd99 Fix for the case where the first two entries returned by readdir() are
actually NOT '.' and '..'.  Apparently this isn't the case when accessing
a directory via XFS over NFS on SGI systems.  Since I don't have access to
an environment like that, this will sit out in -current for at least six
weeks.  However, the patch proposed by the submitter seems acceptable, so
I've decided to commit it to the tree, in the hope that it will solve some
problems without bringing up others.

PR:		23300
Submitted by:	Jim Pirzyk <Jim.Pirzyk@disney.com>
2000-12-26 07:36:07 +00:00
Ruslan Ermilov
9b88faecd3 Prepare for mdoc(7)NG. 2000-12-19 16:00:12 +00:00
Dag-Erling Smørgrav
65f74359cb Fix a bug introduced in rev. 1.17: initialize variables before use, not after.
Rev. 1.17 was "Obtained from NetBSD", but is significantly different from the
equivalent NetBSD revision (rev. 1.30), which does not have this bug.
2000-12-16 02:14:37 +00:00
Will Andrews
1a1a8c9324 There's also no point in #typedef'ing void/char pointers. Accordingly,
rip out ClientData/Address pointers and use standard types.

Obtained from:	OpenBSD
2000-12-02 20:24:42 +00:00
Will Andrews
98c28d6cc5 There's no reason to use fancy forms of NULL. Replace all instances
of NIL, NILLST, NILLGNODE, etc. with NULL.

Obtained from:		OpenBSD
2000-12-02 18:58:01 +00:00
Will Andrews
313c36f04b Format string paranoia. This should avoid potential buffer overflows from
user input (in its ever-broadening definition).

Obtained from:	NetBSD
2000-11-30 13:56:19 +00:00
Nik Clayton
71e1d8b0dd Xref make.conf(5), and point to /usr/share/doc/psd/12.make for the
tutorial paper.
2000-11-29 14:40:02 +00:00
Ruslan Ermilov
92ee29d2a5 Reimplement the groff(1) warnings elimination fixes in a better way. 2000-11-24 10:05:30 +00:00
Ruslan Ermilov
bbc7e5700d Eliminate groff(1) warnings. 2000-11-23 15:21:30 +00:00
Ruslan Ermilov
8fe908ef0c mdoc(7) police: use the new features of the Nm macro. 2000-11-20 19:21:22 +00:00
Kris Kennaway
29ac114aae Unlink the temporary file immediately so it is removed on exit.
Obtained from:	OpenBSD
2000-11-19 12:04:12 +00:00
Will Andrews
28323ac07e Add :L and :U variable modifiers. These convert the variable's value to
all-lower or all-upper case characters, respectively.  These were added
to further reduce differences between NetBSD/OpenBSD and FreeBSD make(1)
to propagate OpenPackages.

PR:		19959
Submitted by:	Gaspar Chilingarav <nm@web.am>
2000-10-09 04:53:36 +00:00
Will Andrews
2694d8d147 Add :C/// variable modifier, which is similar to :S/// in functionality
but allows for regex.  I removed NO_REGEX since no one could give a reason
to have it, and since we don't use make in bootstrap tools, it's not needed.

This is mostly added to synch up with NetBSD/OpenBSD so as to eliminate
roadblocks in the OpenPackages project (see http://www.openpackages.org/).
It's also quite useful, and costs us only about 3 kilobytes of space.

PR:		21605
Submitted by:	Hubert Feyrer <hubertf@NetBSD.org>
Reviewed by:	silence on -arch
Obtained from:	NetBSD
2000-10-09 04:31:43 +00:00
Will Andrews
b17aa0e426 Assume MAINTAINER. I will be taking the job of merging NetBSD/OpenBSD
improvements (including :C & :L, among others).  After that, I'll be coming
up with other ways to improve make(1).

Discussed in spirit with:	peter
2000-09-29 19:51:48 +00:00
Peter Wemm
34c46f2d3d *** empty log message *** 2000-09-25 18:44:30 +00:00
Ruslan Ermilov
c2a62388b7 Remove gratuitous free() call when we use special .SHELL target. 2000-08-18 10:41:37 +00:00
Brian Feldman
c7322223b9 Allow use of the ${MAKE_SHELL} variable to specify alternate shells for
make(1) to use.  Setting it to "sh" and "ksh" are the only values which
work right ATM; I wouldn't expect "csh" to get you far ;)
2000-08-16 23:31:43 +00:00
Warner Losh
9ad6473aef Do include <unistd.h> for getopt interface.
Don't extern it.
2000-07-28 06:50:25 +00:00
Sheldon Hearn
4198af2bff Use pwd instead of cwd in backticks. cwd in backticks doesn't do
anything useful in a Bourne shell.

PR:		19980
Submitted by:	Alex Kapranoff <alex@kapran.bitmcnit.bryansk.su>
2000-07-17 17:31:59 +00:00
Andrey A. Chernov
39b31d1322 Fix assembler error messages - there is no \n allowed in __COPYRIGHT macro 2000-07-09 05:22:51 +00:00
Wilfredo Sanchez
023944f435 Use __RCSID() 2000-07-09 02:54:54 +00:00
Wilfredo Sanchez
480a6f5ceb Use __RCSID() 2000-07-09 00:08:47 +00:00
Wilfredo Sanchez
1ae30690d2 Initialize variable 2000-07-09 00:05:09 +00:00
Will Andrews
f4180808d2 Update make(1) manpage to include information about the new loud
debugging facility I introduced earlier today.
2000-05-14 23:03:45 +00:00
Will Andrews
ea9b438956 Add loud debugging facility (-dl option) which allows programmers/developers
to override @-prefixed commands in Makefiles.  It is especially useful for
debugging ports and/or complex Makefiles in such a manner that is basically
a last resort, but is quite effective if the output is well-handled.

I'll update the manpage after dinner.  ;-)

Better patch submitted by:	steve
Reviewed by:			phk, steve, chuckr, obrien,
				Lyndon Nerenberg <lyndon@orthanc.ab.ca>
2000-05-14 22:24:28 +00:00
Warner Losh
0e7f0658ee #include <errno.h> where needed. Kill extern int errno;.
Minor warnings in tip corrected.
2000-04-14 06:39:19 +00:00
Sheldon Hearn
87faa07bec Remove single-space hard sentence breaks. These degrade the quality
of the typeset output, tend to make diffs harder to read and provide
bad examples for new-comers to mdoc.
2000-03-01 12:20:22 +00:00
Nik Clayton
3615c24e18 Fix errors in .Xr usage.
PR:             docs/17057
Submitted by:   Submitted by:   Udo Erdelhoff <ue@nathan.ruhr.de>
2000-03-01 10:48:35 +00:00
Ruslan Ermilov
810ce16d54 ${.MAKE} -> ${MAKE}
Reviewed by:	hoek
2000-01-19 10:44:28 +00:00
Kris Kennaway
6470ba8b28 Create tempfiles securely.
Reviewed by:	imp
2000-01-17 06:43:41 +00:00
Martin Cracauer
65831093e9 Make '||' visible.
PR:		docs/15265
Submitted by:	Kazu TAKAMUNE <takamune@avrl.mei.co.jp>
1999-12-05 12:23:03 +00:00
Marcel Moolenaar
494b6f4cba Improve backward compatibility.
make(1) uses sysctlbyname() to find out if it is running on a PC98
machine. This check has been added on 1998/9/9. The MIB variable was
added on 1998/8/31. At that time __FreeBSD_version was 300003. So,
only perform the check *if* __FreeBSD_version is defined and if it's
greater than 300003.

For the record: sysctlbyname was added on 1997/5/30 so this change
automaticly handles that...
1999-11-23 10:35:24 +00:00
Marcel Moolenaar
f5c0c6abaa Remove CROSS_MAKE_FLAGS. 1999-11-15 17:07:45 +00:00
Julian Elischer
110acfcd2b Fix the following:
It appears that make fails to read the global symbol table of the archive file,
making it think that the library needs to be rebuilt.

fix supplied in PR:

PR:		bin/14167
Submitted by:	Sebastian Lederer <lederer@bonn-online.com>
Reviewed by:	gallatin@FreeBSD.ORG
1999-10-10 20:39:36 +00:00
Tim Vanderhoek
5335af7e73 s/with historical makefils//. Also, relocate and change the description
of VPATH to be a little sexier.  I'd say it looks a bit like Claudia
Schiffer now, which I consider a definate improvement.  We're also a little
more subtle about saying that VPATH is for backward(s) compatibility.

Submitted-by:	chris, bde, and myself
                [although none of their descriptions were as sexy
                 M(|is|r)s Schiffer, of course].
1999-09-11 15:11:56 +00:00
Tim Vanderhoek
c947a6678b Remove the #include of sys/param.h. It was meant to improve portability
for BSD less than 4.4 where sys/cdefs.h DNE but can be simulated with
param.h.  Unfortunately, the additional include did little to actually
improve portability since we've lost portability in several other chunks
of make code (err(), sysctlbyname(), probable more).

Partly submitted by:	bde
1999-09-11 13:17:35 +00:00
Tim Vanderhoek
06b1dcf182 Unduplicate IDs from comments, do $Id -> $FreeBSD$ (submitted-by: bde) 1999-09-11 13:08:02 +00:00
Julian Elischer
4aaa4f952a Allow 'make' to check out elements within archive libraries.
"Make no longer properly parses archive files, so using archive members
      as make targets, as described in PSD:12 section 4.2, does not work."

Really should be merged into 3.3 before we ship if we can..
it's a trivial fix.

PR:		bin/13039, bin/10274
Submitted by:	Mikko Tyolajarvi mikko@dynas.se
1999-09-10 20:51:59 +00:00
Peter Wemm
c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Tim Vanderhoek
a6ad7c7f78 Fix a temp file race occurring only when -j is used.
Noticed by:	ru
Obtained from:	OpenBSD
1999-08-22 05:28:13 +00:00
Tim Vanderhoek
9bd2d6eee4 Merge style- and trivial- only changes from OpenBSD (dated 1999/07/29-19:55+1).
Obtained from:	OpenBSD, sometimes indirected from NetBSD; myself
1999-08-17 00:39:26 +00:00
Chris Costello
e0fd2ce68f Bad reference of getcwd(2) changed to getcwd(3). 1999-08-14 06:47:13 +00:00
Chris Costello
444449266c Make VPATH explanation more concise. I apparently was not thinking
on the previous commit.
1999-08-12 20:49:20 +00:00
Chris Costello
a5813d5e80 Move ${VPATH} explanation under the .PATH rule section.
Clarify my vague explanation of how ${VPATH} works and why it shouldn't
be used.
1999-08-12 20:28:54 +00:00
Tim Vanderhoek
5af2ec36b0 Bugfix to last commit: Correctly intuit when an lhs is a string vs. number. 1999-08-12 13:30:08 +00:00
Chris Costello
edad54782b Document ${VPATH} and that it _should_not_ be used in any new Makefiles.
PR:		10556
Submitted by:	Dominic Mitchell <Dom.Mitchell@palmerharvey.co.uk>
1999-08-11 17:52:55 +00:00
Tim Vanderhoek
b97af31bdb Add a -E flag, similar to -e (overide variables from environment) except
that -E only operates for a specified variable.  Useful since the -e option
will often pull-in many unwanted variable overrides (esp. in a make world
situation).  Uses include overriding BINOWN (which cannot be done by normal
methods or through abuses of MAKEFLAGS) or likely for ports to honour CFLAGS
(provided they're running on a system whose make(1) has this option).
1999-07-31 20:53:02 +00:00
Tim Vanderhoek
97f8cf3b7f Print an error message on illegal numerical arguments.
Submitted by: bin/9349 (slightly modified) Assar Westerlund <assar@sics.se>
1999-07-31 20:40:23 +00:00
Tim Vanderhoek
3a1c425259 When printing an error message after command execution fails, don't assume
the only possible error is "command not found".  This makes debugging of
messages such as "/bin/sh: not found" less common...
1999-07-31 20:38:22 +00:00
Warner Losh
1713906692 Per requests from the community, commit rudimentary cross compilation
support.  I've been building world with these changes for months w/o
ill effect.  I've also managed to build the cross tool chain for MIPS
with these patches.

Please note that the extent to which these patches work is largely
dictated by how well our tool chains support the cross compilation.
Building alpha binaries on i386 doesn't work.  Supposedly building
i386 binaries on alpha does work, but I've not verified it with these
patches, however.
1999-07-07 04:46:46 +00:00
Tim Vanderhoek
168de44296 Handle ".if ${T} > 1 || ${T} < 3" and friends correctly.
Reported-by:	asami
1999-05-25 13:45:08 +00:00
Warner Losh
ab898e2ec9 Add :Q to quote variable expansion to all proper expansion of
variables for recursive makes.  This makes it less painful to cross
build recent NetBSD kernels on FreeBSD.

Obtained from: NetBSD
1999-04-19 07:30:04 +00:00
Warner Losh
ac3efb6afc Make MACHINE_ARCH sensitive to the environment, as well as using the
compiled in default in case it isn't defined.  This is needed to make
cross compilation work in some edge cases.  It also makes cross
compiling on FreeBSD other BSD's easier as well.

Obtained from: NetBSD, OpenBSD (predates the split)
1999-03-01 06:01:05 +00:00
Dmitrij Tejblum
69a6a9961e Remove couple of 'extern int errno'. (They turned to something funny when
<errno.h> included).
1999-02-14 22:22:54 +00:00
Jordan K. Hubbard
f93b86166a Don't allow pointer underrun in loop.
Spotted by:	John W. DeBoskey <jwd@unx.sas.com>
1999-01-08 18:37:34 +00:00
Peter da Silva
95cf97aa04 Described the search path Make uses to find makefiles. 1998-11-29 13:46:39 +00:00
Bruce Evans
50f292a2b5 Fixed missing 'v' in usage message. 1998-11-15 05:55:58 +00:00
Bruce Evans
3873e6c2a7 Fixed bugs in previous commit:
- missing `v' in synopsis.
- 'v' disordered relative to 'V' in description of options.
- line too long in description of 'v'.
1998-11-15 05:51:55 +00:00
David Greenman
7009ec844f Added a -v (verbose) option and hid multi-job file banner generation
behind it.
1998-11-14 16:15:04 +00:00
David E. O'Brien
9471b48afe Only process the ``PWD'' environmental var if built with "WANT_ENV_PWD"
defined.  Bash v2 sets PWD and it creates major problems for those of us
with /usr/src being a symlink.  See the lists for examples of the problems.
1998-10-18 00:51:46 +00:00
John Polstra
201fdc5426 Fix make world breakage from last commit. 1998-10-15 16:09:56 +00:00
Joseph Koshy
4a949c96ce Fix a serious bug in make(1)'s handling of archive libraries.
This case did not need to be tested when RANLIBMAG was defined
(as when in an `aout' environment) because Arch_StatMember() treated
the two cases of the library not being present and a member of
the library not being present the same way, forcing a rebuild
of the library.  Since in the ELF environment we don't look inside
archive libraries we now need to check if the archive library is
present in order to determine its `out-of-date'-ness.

(I hope I've been able to meet the Oct 15th freeze).

Reported-by:	Steve Price (and a few others whom I've forgotten, sorry)
1998-10-15 13:00:34 +00:00
KATO Takenori
cab4769a94 Set the `pc98' string to the MACHINE if machdep.ispc98 != 0. 1998-09-09 14:58:30 +00:00
John Birrell
c9db555954 Don't define RANLIBMAG if building an elf version of make. The RANLIBMAG
option lets make look inside archive libraries when determining if a
library is out-of-date. I don't think that make should look inside
files, so this fix effectively tells it not to. If the decision is
made (by someone else) that make _should_ be doing this, it will need
to be taught how to recognise elf archive libraries.

Problem noticed by: Joseph Koshy <jkoshy@freebsd.org>
1998-09-09 08:29:15 +00:00
Joseph Koshy
8460e34a1b Fix spurious `free()' when -d g2 is enabled.
PR:		6790
Submitted by:	nsmart <njs3@doc.ic.ac.uk>
1998-09-09 05:15:38 +00:00
Martin Cracauer
9a4902a99f When exiting on SIGINT, exit with signal status 1998-08-24 10:17:20 +00:00
Warner Losh
dff85ecbee Use malloc + sprintf rather than asprintf to ensure portability to
other, less advanced architecutres.  This should minorly help porting
efforts of FreeBSD.  I've done several make worlds since this came up
with this change, as well as debugging several interesting nits with
-V (which is the only thing this change will affect really).
1998-07-26 17:06:05 +00:00
Peter Wemm
b9305a0668 Make -V expand it's arguments. This means that instead of 'make -V OBJS'
printing something useless (to a shell) like: ${SRCS:N*.h:R:S/$/.o/g}
it will instead print the actual ${OBJS} value.
1998-06-13 11:55:57 +00:00
Bruce Evans
822aa079ec Don't forget to pretend that `make -n -jN' makes the targets that it
says it pretends to make.

This bug was apparently harmless except for normal cases involving
.ORDER statements when it made debugging of -jN using -n very
confusing.  E.g., for:

.ORDER: beforedepend .depend
depend: beforedepend .depend

where beforedepend depends on something so that it is not initially
up to date, `make [-n] -j2 depend' causes `make' to wait for itself
to make beforedepend.  This works fine without -n.  The job to make
beforedepend has normally been started, and beforedepend is marked
as made when the job completes.  However, with -n, the pseudo-job
for making beforedepend has normally completed, and in any case
there was no chance of beforedepend being marked as made.  `make'
actually exited almost immediately with status 0 instead of waiting
forever.
1998-06-04 05:48:57 +00:00
Peter Hawkins
968d4e7fe2 PR: bin/6828
Submitted by:	njs3@doc.ic.ac.uk
Obtained from:	NetBSD

Implement embedded variable expansion
1998-06-02 13:11:04 +00:00
Steve Price
fe6fb5d439 Add a graceful jumping off point with a new .error directive.
PR:		6720
Submitted by:	Niall Smart <njs3@doc.ic.ac.uk>
1998-05-25 03:28:37 +00:00
John Birrell
c021a0a9d0 Fix broken (at least on alpha, but probably on i386 too) code which
is supposed to walk an arry of character pointers, not an array of
characters.
1998-05-13 05:50:42 +00:00
Wolfram Schneider
43721e3d1d Some commands are shell builtins. Execute the builtins by the shell
and not directly by make(1).

PR: bin/6550
Submitted by: Theo de Raadt <deraadt@cvs.openbsd.org & wosch
1998-05-12 11:54:12 +00:00
Warner Losh
3a42f937f1 Use historically correct error message in some cases, optionally. 1998-04-28 05:08:10 +00:00
Poul-Henning Kamp
64400b18cc When all transformation rules to or from a suffix disappeared, make tries
to free the suffix. I think, it is a very strange idea. (Or, maybe, it is a
POSIX requirement?) And it is done incorrectly. Apparently, it even don't
update the list of known suffixes (but it is an other bug).

PR:		4254, 4692, 4783
Reviewed by:	phk
Submitted by:	Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>
1998-04-26 09:44:48 +00:00
James Raynard
cb0830ae3f Cleanup: fix a few typos, fit ASCII output onto an 80-column terminal
and use a fixed font which actually exists.
1997-11-23 02:02:39 +00:00
Warner Losh
ce2d5f5fa6 Add #include <stdlib.h> to pick up prototypes for getenv and friends. 1997-09-29 03:53:53 +00:00
Jordan K. Hubbard
b1795946fd Don't preferentially execute Makefiles in ${OBJDIR} - it just causes
confusion and suffering.  Tested by "make world".
Submitted by:	gibbs
1997-08-27 06:31:27 +00:00
Steve Passe
1ecd3f4585 Make explicit '-B' option propigate to submakes.
No one has said this would be a bad thing, so given the dearth of comments
I decided to add it, as its an important step towards getting "make world"
'parallel-ized'.

Reviewed by:	silence
Submitted by:	nnd@itfs.nsk.su
1997-08-25 21:35:44 +00:00
Steve Passe
6e0d2d5172 Better fix, as originally submitted by reporter.
Submitted by:	 N.Dudorov <nnd@itfs.nsk.su>
1997-08-14 19:24:11 +00:00
Steve Passe
74a19f1229 Fix PR bin/4291: /usr/bin/make - inconsistent -j<n> flag parsing.
Submitted by:	N.Dudorov <nnd@itfs.nsk.su>
1997-08-14 04:46:20 +00:00
Philippe Charnier
950622c987 Use err(3). Cosmetic in usage string. 1997-07-24 06:58:08 +00:00
Poul-Henning Kamp
0432a202f3 In these XXX MHz days, waiting 500ms for a process to do something is
really far too long.  Let us try 100ms instead, if you have a PP200,
maybe that's even too long.  This should speed up make -j# builds.
I wonder why SIGCHLD isn't used...
1997-04-21 20:32:11 +00:00
Warner Losh
1c8af87873 compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-29 04:34:07 +00:00
Wolfram Schneider
efda6cd9d5 Add reference to `PMake - A Tutorial' 1997-03-09 15:51:07 +00:00
Wolfram Schneider
4fbe57dc33 Add enviroment variable MAKEOBJDIRPREFIX, still undocumented except
in bsd.obj.mk.
1997-03-03 00:57:48 +00:00
Peter Wemm
53faa0dade Revert $FreeBSD$ to $Id$ 1997-02-22 19:29:21 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Steve Price
8a87dec9bf Add a .POSIX directive. When the first non-comment
line of a Makefile contains this directive, make(1)
will enter a POSIX 1003.2 compliant mode.

Submitted by: Joerg Wunsch <joerg@freebsd.org>
1996-11-03 03:29:57 +00:00
Steve Price
97162b3f35 Remove extraneous comment, fix second-level tabs (one
tab and four spaces), and return error message in *err
instead of calling Parse_Error.

Suggested by: Bruce Evans <bde@zeta.org.au>
1996-10-12 02:15:30 +00:00
Steve Price
50dc64b15f Removed extra $Id$ string. 1996-10-11 04:15:57 +00:00
Steve Price
39dd3fffbf Reinstate '!=' fix by Bruce Evans. The original commit message from
parse.c(1.9) was:

revision 1.9
date: 1996/09/12 03:03:25;  author: bde;  state: Exp;  lines: +7 -6
Fixed handling of `!=' assignment.  Don't warn if the shell's output is
null, but warn if there was an error reading it.

Suggested by: Bruce Evans <bde@zeta.org.au>
1996-10-11 03:55:29 +00:00
Steve Price
5d55a64610 O' to be bitten by CVS. Cleanup after import
of Christos' version of make(1) and add Id's.

Set straight by: Bruce Evans and Peter Wemm :)
1996-10-08 04:07:59 +00:00
Steve Price
85aa37cd56 This commit was generated by cvs2svn to compensate for changes in r18764,
which included commits to RCS files with non-trunk default branches.
1996-10-06 16:45:32 +00:00
Steve Price
ea09f5e44d Import Christos Zoulas' version of NetBSD's make onto the
vendor branch for reference.

Obtained from: Christos Zoulas <christos@netbsd.org>
1996-10-06 16:45:32 +00:00
Steve Price
66b6f9d1e4 Clarify the rule used to determine the object
directory location.
1996-10-06 16:19:08 +00:00
Peter Wemm
6c7089bce5 Import the 4.4BSD-Lite2 version of make onto the vendor branch
"for reference".  This doesn't change anything since all files
have been touched.
1996-10-06 15:57:15 +00:00
Peter Wemm
6b8f99f0db This commit was generated by cvs2svn to compensate for changes in r18756,
which included commits to RCS files with non-trunk default branches.
1996-10-06 15:57:15 +00:00
Steve Price
8b69153a4d Correct problem with traversing into PSD.doc directory,
these files are actually installed/built as part of
src/share/doc/psd/12.make.  Oops. :)

Pointed out by:	Peter Wemm and Bruce Evans
1996-10-06 13:02:43 +00:00
Jordan K. Hubbard
09502a0eb9 Correct merge bogon: You want to descend into PSD.doc for both `all' and
`install' cases or there's never anything made to install, and you blow
up in the install. :-)
1996-10-06 12:43:14 +00:00
cvs2svn
fd28c66eb8 This commit was manufactured by cvs2svn to create branch 'CHRISTOS'. 1996-10-06 02:35:39 +00:00
Steve Price
c0d06fe463 Merge in NetBSD's changes to make(1). Changes include:
- Add the .PHONY, .PARALLEL, and .WAIT directives
	- Added the -B and -m commandline flags
	- misc. man page cleanups
	- numerous job-related enhancements
	- removed unused header file (bit.h)
	- add util.c for functions not found in other envs.
	- and a few coordinated whitespace changes

Special thanks to Christos Zoulas <christos@netbsd.org>
for help in the merge.  A 'diff -ur' between Net and
FreeBSD now only contains sccsid-related diffs. :)

Obtained from: NetBSD, christos@netbsd.org, and me
1996-10-06 02:35:38 +00:00
Wolfram Schneider
e83201b43a delete doubled words, e.g.: "the the" -> "the" 1996-10-05 22:27:30 +00:00
Steve Price
6d29e75f84 Fix for PR# 1231, make(1) execution of ``.BEGIN'' does
not halt on error.  Thanks to Wolfram for reminding me. ;)

Also remove a unnecessary test for c == '\n', since the
loop (in ParseSkipLine) will not terminate unless
c == '\n' || c == EOF, and the EOF case is already
explicted handled by a return statement.
1996-09-25 02:55:49 +00:00
Steve Price
0e0e0239f0 Be sure to remove any newlines encountered when
parsing the input file in ParseSkipLine(...).
1996-09-23 17:21:34 +00:00
Steve Price
6bf3beb134 Fix for PR# 1095, make's continuation line handling buggy
when used with .elif.  Additional fixes include:

    - fix continuation line handling when using .for
    - plug up a memory leak
1996-09-22 02:28:36 +00:00
Steve Price
43bb0e149c Fix for PR#1230, make ``.for'' loops iterate backwards. 1996-09-21 04:00:22 +00:00
Steven Wallace
18e24ede6b Restore previous compatibility of ${.CURDIR}/obj.uname -m and
$(.CURDIR}/obj search while retaining compatability of new
prefix with cwd for the current source tree builds.
.TARGETOBJDIR has been removed from make and CANONICALOBJDIR set in
bsd.obj.mk

The builtin object directory searching is defined specifically as:

If MAKEOBJDIRPREFIX is defined, the search order is
${MAKEOBJDIRPREFIX}${.CURDIR}
${.CURDIR}

Else if MAKEOBJDIR is defined, the search order is
${MAKEOBJDIR}
${.CURDIR}

Otherwise, default to the search order
${.CURDIR}/obj.`uname -m`
$(.CURDIR}/obj
/usr/obj${.CURDIR}
${.CURDIR}

Reviewed by:	bde
1996-09-18 06:06:39 +00:00
Bruce Evans
d25a64252b Fixed handling of `!=' assignment. Don't warn if the shell's output is
null, but warn if there was an error reading it.
1996-09-12 03:03:25 +00:00
Bruce Evans
454f40052a Fixed a missing colon in `notyet' code. 1996-08-31 14:22:33 +00:00
Bruce Evans
274beb73fe Listed all the environment variables (MACHINE and PWD were missing).
Documented PWD.  MACHINE and MAKEOBJDIR are are still undocumented
except in main.c.  I will be changing MAKEOBJDIR back to its old
behaviour so that the comment in main.c actually applies.

Removed irrelevant misformatted text about make's name being argv[0].
1996-08-31 14:21:15 +00:00
Nate Williams
fe6ab298ab 'make' prints an extra leading `make: ' and extra trailing newline if
there is no target to make.

% make
make: make: no target to make.

%

Beause the function Punt() in main.c takes care of leading 'make:' and
trailing newline, so, there is no need to pass explicitly.

Submitted by:	enami@ba2.so-net.or.jp
Obtained from:	NetBSD GNATS
1996-07-23 18:55:21 +00:00
Bruce Evans
375633ec49 Added a -V option to print make's idea of the value of a variable.
Submitted by:	mark@linus.demon.co.uk (Mark Valentine)

Fixed bugs and inconsistencies in synopsis and usage message.
1996-07-17 11:02:43 +00:00
Jordan K. Hubbard
526195ad0d General -Wall warning cleanup, part I.
Submitted-By: Kent Vander Velden <graphix@iastate.edu>
1996-07-12 19:08:36 +00:00
Jordan K. Hubbard
c4d74c02f2 Put back the $PWD override behavior of revision 1.4. The concensus
*seems* to be that it was the right thing to do.
1996-07-01 22:55:57 +00:00
Jordan K. Hubbard
664a482fd0 Remove code which overrode the opinion of getcwd() with an often bogus
value for $PWD.
1996-06-27 21:59:25 +00:00
Jordan K. Hubbard
cd9a2f5c28 Bring in my changes for removing the pestilent obj links (unless you
really want them) from /usr/src.  This is the final version of the
patches, incorporating the feedback I've received from -current.
1996-06-24 04:26:21 +00:00
Joerg Wunsch
be71712986 Fix a typo.
Submitted by:	tgm@netcom.com (Thomas G. McWilliams)
1996-04-07 01:18:20 +00:00
Adam David
56c78cb71a Fix the :S modifier to substitute in each word of the variable, according
to the description in the manpage. g flag means "replace every occurence
in each word", and its absence means "replace first occurence in each word".
Previously, absence of the g flag was implemented to mean "replace first
occurence found in all words, and then stop replacing", which was incorrect.
1995-11-01 12:18:32 +00:00
Poul-Henning Kamp
0ad2ff70ee Stop using gnumalloc. 1995-09-22 14:14:32 +00:00
Andrey A. Chernov
2f22cc074c Back out prev. NetBSD fix, it cause skipping some error constructions,
don't delete initial space from line instead
1995-06-24 17:34:15 +00:00
Andrey A. Chernov
33e5f8f7b0 Don't make error on ^<spaces>\n
Obtained from: NetBSD
1995-06-24 17:23:31 +00:00
Andrey A. Chernov
fa19ca391b Fix parsing SYSV/GNU "include" 1995-06-18 13:08:18 +00:00
Andrey A. Chernov
76da55f6bc NetBSD fixes: declare more prototypes, move .OPTIONAL in alphabet
order, prevent suffix rule, if direct or children dependances exists,
forget to free v->name in var.c
My fixes: fix famous ^\t\n bug, correct free order in str_end
Reviewed by: bde
Obtained from: NetBSD, me
1995-06-18 12:34:14 +00:00
Andrey A. Chernov
6ed40291ad Allow additional parsing of SYSV/GNU make "include" directive, it covers
90% of problems in ports Makefiles
1995-06-16 22:46:38 +00:00
Rodney W. Grimes
7799f52a32 Remove trailing whitespace. 1995-05-30 06:41:30 +00:00
Jordan K. Hubbard
9f574f9a90 Bring in a number of changes from NetBSD's make, fixing quite a few
problems in the process:

1. Quoting should work properly now.  In particular, Chet's reported bash
   make problem has gone away.
2. A lot of memory that just wasn't being free'd after use is now freed.
   This should cause make to take up a LOT less memory when dealing with
   archive targets.
3. Give proper credit to Adam de Boor in a number of files.
Obtained from: NetBSD (and Adam de Boor)
1995-01-23 21:03:17 +00:00
David Greenman
14810c626c Use gnumalloc. 1994-08-29 17:01:06 +00:00
Sean Eric Fagan
7267a81cea Fix a problem with passing quoted strings down to commands.
Reviewed by:	Sean Eric Fagan
1994-08-24 21:14:27 +00:00
Rodney W. Grimes
9b50d90275 BSD 4.4 Lite Usr.bin Sources 1994-05-27 12:33:43 +00:00