Commit Graph

28 Commits

Author SHA1 Message Date
rillig
a4123952e2 make(1): fix documentation of POSIX configuration
Empty commands are always allowed, whether in POSIX mode or not.
2020-12-11 22:53:08 +00:00
rillig
fd30830cf1 make(1): remove DEFMAXLOCAL and DEFMAXJOBS
These have been hard-wired all the time.  The word LOCAL doesn't make
sense anymore since the code for running jobs remotely has gone.
2020-12-11 22:48:31 +00:00
rillig
84085cca68 make(1): use space instead of tab for preprocessor directives 2020-11-29 09:27:40 +00:00
rillig
8288993505 make(1): clean up headers, no functional change 2020-10-19 23:43:55 +00:00
rillig
687be6e519 make(1): remove USE_IOVEC
When a system call in a child process failed, there was no guarantee
that the error message would be written completely.  Using writev
correctly is harder than building the string in a buffer and then
writing it in the traditional way.

According to POSIX 2004, using memory allocation or even calling
write(2) from the child process invokes undefined behavior.  The
remaining code from make has done all this for several years now,
successfully, therefore adding one more of that won't hurt.

Make still tries to write the error message atomically by passing the
whole buffer at once to write(2), just as in the previous writev(2)
implementation.
2020-10-18 08:01:23 +00:00
rillig
c5520b1066 make(1): fix punctuation and add paragraphs in config.h comments 2020-09-27 17:17:01 +00:00
rillig
93677eff47 make(1): mark LIBSUFF and RECHECK as independent build options 2020-09-01 17:40:34 +00:00
christos
3ba1aa3bc8 Add a gmake inspired export command 2012-03-31 00:12:24 +00:00
apb
d15c1edea0 Make it easier for the build environment (such as a configure script)
to override the default shell:

* Rename _BASENAME_DEFSHELL to DEFSHELL_CUSTOM, because it's no longer
  always a basename, it might be a full path;
* Rename DEFSHELL to DEFSHELL_INDEX, because it's actually an index into
  an array;
* Provide symbolic names for the possible values if DEFSHELL_INDEX;
* Document how the build environment may set DEFSHELL_INDEX or
  DEFSHELL_CUSTOM to choose the default shell;
* Move the fallback definition of DEFSHELL_INDEX from config.h to job.c,
  because it's used only in job.c.

Discussed with sjg.
2007-10-14 20:22:53 +00:00
apb
cd195008c6 Allow make(1) to be built with something other than "sh" as the
shell.  To use this, build with -D_PATH_DEFSHELLDIR=\"/path/to/dir\"
-D_BASENAME_DEFSHELL=\"shell\".

* Change the order of entries in shells[].  Now DEFSHELL defaults to 0,
  and shells[0] describes the default shell.  This will be "sh" in the
  usual case.

* If _BASENAME_DEFSHELL is defined, insert an additional entry above
  "sh" in the shells[] array, making this new entry shells[0].  The
  new entry is assumed to refer to an sh-compatible shell with a
  non-standard name.  (Tested using _PATH_DEFSHELLDIR="/usr/pkg/bin" and
  _BASENAME_DEFSHELL="bash".)

* In the shells[] entry for "sh", test defined(MAKE_NATIVE) &&
  defined(__NetBSD__) to decide whether we can use the "q" flag.

OK sjg, christos
2006-10-09 20:44:35 +00:00
dsl
4a7a153be0 Rip out the code for not 'USE_PGRP', I can't imagine it being useful!
My guess is that it is compat code for before the pgrp stuff was added.
2006-10-09 13:49:59 +00:00
ross
42dbdbd46a Simplify build, no functional changes.
Instead of adding MAKE_BOOTSTRAP for hosted environments, i.e., when
you want things simple, instead add MAKE_NATIVE to get those hugely
important features like __RCSID().

It's now possible to build make on some hosts with: cc *.c */*.c
2004-05-07 00:04:38 +00:00
agc
89aaa1bb64 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22365, verified by myself.
2003-08-07 11:13:06 +00:00
sjg
3716ad7f49 Allow .SHELL: to control the shell used by compat mode too.
Add a shell spec for ksh - a nice portable posix shell.
Document .SHELL:
2003-08-01 00:39:52 +00:00
tv
4cdd7a39ce Bleh, make the conditional work *correctly* this time (...teaches me not to
try distilling down parenthesized booleans without caffeine).
2002-01-16 03:40:29 +00:00
tv
f740a6705b Fix typo in previous. 2002-01-16 03:37:03 +00:00
tv
2724818d75 Don't look at archive timestamps if MAKE_BOOTSTRAP is set. (I'm not
entirely sure that this is useful *at all* these days, since it's been
turned off for ELF since ELF was brought in....)
2002-01-16 03:36:15 +00:00
christos
d0c243e9e5 better error messages on exec* failures. From Simon Burge. 2001-05-29 17:37:51 +00:00
christos
94df9ca047 Define USE_PGRP so that we send signals to our job's process group instead
of only pid.
1999-05-03 12:01:14 +00:00
christos
a004ae7f41 PR/4140: David A. Holland: use svr4 style archives for ELF environments 1997-09-26 13:29:05 +00:00
mellon
64b4faf663 Don't look at archive information on platforms that run ELF binaries 1997-04-26 07:11:14 +00:00
christos
aa49881371 - Merge in FreeBSD and Lite2 changes.
- Fix bug where a non-archive target with a .a suffix would always
  be considered to be out of date, since it does not have a TOC.
1996-11-06 17:58:58 +00:00
christos
5c1983c016 - Move -D flags from Makefile to config.h and explain what they do. Add
-Wall -Wno-unused to CFLAGS. Add new define SYSVVARSUB to enable SysV
  style variable substitutions and enable them.
- Add SunOS style command substitutions via SUNSHCMD
- Fix core dump with '{variable = value'
1996-05-28 23:34:35 +00:00
christos
b941a324f5 Support SVR4 style archives. 1996-02-04 20:34:41 +00:00
christos
b5f782e810 - $NetBSD$ rcsids
- Fixed so that .[A-Z]* targets that do not match keywords are ignored as
  Posix mandates
- Added .PHONY target keyword
1995-06-14 15:18:37 +00:00
cgd
3db59563ee fixes/improvements from Christos Zoulas <christos@deshaw.com>. 1994-03-05 00:34:29 +00:00
mycroft
e9d867ef50 Add RCS identifiers. 1993-08-01 17:54:45 +00:00
cgd
61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00