Commit Graph

251 Commits

Author SHA1 Message Date
Roland McGrath
d78f2db327 Mon Mar 10 23:47:02 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* job.c (construct_command_argv_internal): Don't discard an
	explicit empty argument at the end of the command line.  In the
	slow case return immediately if the command line was empty.
1997-03-12 21:17:08 +00:00
Roland McGrath
cf2db2cf3c Sun Jul 14 12:59:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* job.c (construct_command_argv_internal): Fix up #else, #endifs.
1996-07-14 19:59:13 +00:00
Roland McGrath
bdc49369eb Sat Jun 22 14:56:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* job.c (reap_children): Don't call die if handling_fatal_signal.
	* job.c (start_job_command): Call block_sigs.
	(block_sigs): New function, broken out of start_job_command.
	(reap_children): Block fatal signals around removing dead child from
	chain and adjusting job_slots_used.
	* job.h: Declare block_sigs.
	* job.c (reap_children): Quiescent value of shell_function_pid is
	zero, not -1.
1996-06-22 21:42:10 +00:00
Roland McGrath
e0620ee179 Sat Jun 22 14:56:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* job.c (start_job_command): Call block_sigs.
	(block_sigs): New function, broken out of start_job_command.
	(reap_children): Block fatal signals around removing dead child from
	chain and adjusting job_slots_used.
	* job.c (reap_children): Quiescent value of shell_function_pid is
	zero, not -1.
1996-06-22 19:30:59 +00:00
Roland McGrath
e7a525c5d5 Wed May 15 10:14:14 CDT 1996 Rob Tulloh <tulloh@tivoli.com>
* dir.c: WIN32 does not support inode. For now, fully qualified
	pathname along with st_mtime will be keys for files.
	Fixed problem where vpath can be confused when files
	are added to a directory after the directory has already been
	read in. The code now attempts to reread the directory if it
	discovers that the datestamp on the directory has changed since
	it was cached by make. This problem only seems to occur on WIN32
	right now so it is lumped under port #ifdef WIN32.

	* function.c: WIN32: call subproc library (CreateProcess()) instead of
	fork/exec.

	* job.c: WIN32: Added the code to do fork/exec/waitpid style processing
	on WIN32 systems via calls to subproc library.

	* main.c: WIN32: Several things added here. First, there is code
	for dealing with PATH and SHELL defaults. Make tries to figure
	out if the user has %PATH% set in the environment and sets it to
	%Path% if it is not set already. Make also looks to see if sh.exe
	is anywhere to be found. Code path through job.c will change
	based on existence of a working Bourne shell. The checking for
	default shell is done twice: once before makefiles are read in
	and again after. Fall back to MSDOS style execution mode if no sh.exe
	is found. Also added some debug support that allows user to pause make
	with -D switch and attach a debugger. This is especially useful for
	debugging recursive calls to make where problems appear only in the
	sub-make.

	* make.h: WIN32: A few macros and header files for WIN32 support.

	* misc.c: WIN32: Added a function end_of_token_w32() to assist
	in parsing code in read.c.

	* read.c: WIN32: Fixes similar to MSDOS which allow colon to
	appear in filenames. Use of colon in filenames would otherwise
	confuse make.

	* remake.c: WIN32: Added include of io.h to eliminate compiler
	warnings. Added some code to default LIBDIR if it is not set
	on WIN32.

	* variable.c: WIN32: Added support for detecting Path/PATH
	and converting them to semicolon separated lists for make's
	internal use. New function sync_Path_environment()
	which is called in job.c and function.c before creating a new
	process. Caller must set Path in environment since we don't
	have fork() to do this for us.

	* vpath.c: WIN32: Added detection for filenames containing
	forward or backward slashes.

	* NMakefile: WIN32: Visual C compatible makefile for use with nmake.
	Use this to build GNU make the first time on Windows NT or Windows 95.

	* README.WIN32: WIN32: Contains some helpful notes.

	* build_w32.bat: WIN32: If you don't like nmake, use this the first
	time you build GNU make on Windows NT or Windows 95.

	* config.h.WIN32: WIN32 version of config.h

	* subproc.bat: WIN32: A bat file used to build the
	subproc library from the top-level NMakefile. Needed because
	WIndows 95 (nmake) doesn't allow you to cd in a make rule.

	* w32/include/dirent.h
	* w32/compat/dirent.c: WIN32: opendir, readdir, closedir, etc.

	* w32/include/pathstuff.h: WIN32: used by files needed functions
	defined in pathstuff.c (prototypes).

	* w32/include/sub_proc.h: WIN32: prototypes for subproc.lib functions.

	* w32/include/w32err.h: WIN32: prototypes for w32err.c.

	* w32/pathstuff.c: WIN32: File and Path/Path conversion functions.

	* w32/subproc/build.bat: WIN32: build script for subproc library
	if you don't wish to use nmake.

	* w32/subproc/NMakefile: WIN32: Visual C compatible makefile for use
	with nmake. Used to build subproc library.

	* w32/subproc/misc.c: WIN32: subproc library support code
	* w32/subproc/proc.h: WIN32: subproc library support code
	* w32/subproc/sub_proc.c: WIN32: subproc library source code
	* w32/subproc/w32err.c: WIN32: subproc library support code
1996-05-22 21:51:45 +00:00
Roland McGrath
e2d8bf4aa4 Sun May 12 19:19:43 1996 Aaron Digulla <digulla@fh-konstanz.de>
* job.c: No Pipes on Amiga, too
	(load_too_high) Neither on Amiga
	ENV variable on Amiga are in a special directory and are not
	passed as third argument to main().
1996-05-13 18:38:29 +00:00
Roland McGrath
e99a3aca7e Thu May 9 13:54:49 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* GNUmakefile (globfiles): Add AmigaDOS support files.
	(distfiles): Add $(amigafiles).
	(amigafiles): New variable.

Thu Nov  7 10:18:16 1995  Aaron Digulla   <digulla@fh-konstanz.de>

	* Added Amiga support in commands.c, dir.c, function.c,
	job.c, main.c, make.h, read.c, remake.c
	* commands.c: Amiga has neither SIGHUP nor SIGQUIT
	* dir.c: Amiga has filenames with Upper- and Lowercase,
	but "FileName" is the same as "filename". Added strieq()
	which is use to compare filenames. This is like streq()
	on all other systems. Also there is no such thing as
	"." under AmigaDOS.
	* function.c: On Amiga, the environment is not passed as envp,
	there are no pipes and Amiga can't fork. Use my own function
	to create a new child.
	* job.c: default_shell is "" (The system automatically chooses
	a shell for me). Have to use the same workaround as MSDOS for
	running batch commands. Added HAVE_SYS_PARAM_H. NOFILE isn't
	known on Amiga. Cloned code to run children from MSDOS. Own
	version of sh_chars[] and sh_cmds[]. No dup2() or dup() on Amiga.
	* main.c: Force stack to 20000 bytes. Read environment from ENV:
	device. On Amiga, exec_command() does return, so I exit()
	afterwards.
	* make.h: Added strieq() to compare filenames.
	* read.c: Amiga needs special extension to have passwd. Only
	one include-dir. "Makefile" and "makefile" are the same.
	Added "SMakefile".  Added special code to handle device names (xxx:)
	and "./" in rules.
	* remake.c: Only one lib-dir. Amiga link-libs are named "%s.lib"
	instead of "lib%s.a".
	* main.c, rule.c, variable.c: Avoid floats at all costs.
	* vpath.c: Get rid of as many alloca()s as possible.
1996-05-09 18:02:06 +00:00
Roland McGrath
9e443adaf6 Tue Mar 19 20:21:34 1996 Roland McGrath <roland@charlie-brown.gnu.ai.mit.edu>
Merged VMS port from Klaus Kaempf <kkaempf@didymus.rmi.de>.
	* make.h (PARAMS): New macro.
	* config.h-vms: New file.
	* makefile.com: New file.
	* makefile.vms: New file.
	* readme.vms: New file.
	* vmsdir.h: New file.
	* vmsfunctions.c: New file.
	* vmsify.c: New file.
	* file.h: Renamed to filedef.h to avoid conflict with VMS system hdr.
	* ar.c: Added prototypes and changes for VMS.
	* commands.c: Likewise.
	* commands.h: Likewise.
	* default.c: Likewise.
	* dep.h: Likewise.
	* dir.c: Likewise.
	* expand.c: Likewise.
	* file.c: Likewise.
	* function.c: Likewise.
	* implicit.c: Likewise.
	* job.c: Likewise.
	* job.h: Likewise.
	* main.c: Likewise.
	* make.h: Likewise.
	* misc.c: Likewise.
	* read.c: Likewise.
	* remake.c: Likewise.
	* remote-stub.c: Likewise.
	* rule.c: Likewise.
	* rule.h: Likewise.
	* variable.c: Likewise.
	* variable.h: Likewise.
	* vpath.c: Likewise.
	* compatMakefile (srcs): Rename file.h to filedef.h.
1996-03-20 14:57:41 +00:00
Roland McGrath
715363eb49 Don't declare unblock_sigs; job.h already does. 1996-01-12 23:09:23 +00:00
Roland McGrath
cb69b06199 (NGROUPS_MAX): Don't try to define this macro. 1996-01-06 21:24:34 +00:00
Roland McGrath
aaed50ac3f (reap_children): Call unblock_sigs after start_job_command. 1995-12-14 11:21:20 +00:00
Roland McGrath
dccc12dbee [HAVE_UNION_WAIT]: Include sys/wait.h.
(start_job_command): Pass new arg to `message'; fix inverted test in that
call.
1995-11-26 01:42:27 +00:00
Roland McGrath
ad61285598 (start_job_command): Pass null instead of "" to message; don't add newline. 1995-11-22 00:14:59 +00:00
Roland McGrath
10d6808977 (start_job_command): Use `message' to print the command, and call it with
an empty string if the command is silent.
1995-11-22 00:06:28 +00:00
Roland McGrath
af72fc38fe (getdtablesize): Remove decls and macros. 1995-08-17 19:08:36 +00:00
Roland McGrath
ee14af651f (child_error): Do nothing if IGNORED under -s. 1995-08-07 20:37:15 +00:00
Roland McGrath
9fd3c2453b (exec_command): Correctly use ARGV[0] for script name when running shell
directly.
1995-08-07 19:39:37 +00:00
Roland McGrath
2c27d8dbdc (child_execute_job): Close STDIN_FD and STDOUT_FD after dup'ing from them.
Don't try to close all excess descriptors; getdtablesize might return
a huge value.  Any open descriptors in the parent should have FD_CLOEXEC
set.
1995-08-01 18:46:37 +00:00
Roland McGrath
d02b26a4b8 (start_job_command): Set FD_CLOEXEC flag on BAD_STDIN descriptor. 1995-08-01 18:38:49 +00:00
Roland McGrath
5d82479d89 (job_next_command): Skip empty lines.
(new_job): Don't test the return of job_next_command.
Just let start_waiting_job handle the case of empty commands.
1995-04-26 21:15:25 +00:00
Roland McGrath
a146085382 (start_job_command, reap_children): Set update_status to 2 instead of 1
for failed commands.
1995-03-24 05:32:12 +00:00
Roland McGrath
3608635ec6 (search_path): Function removed (was already #if 0'd out). 1995-03-21 21:24:36 +00:00
Roland McGrath
595f7598ae (construct_command_argv_internal) [__MSDOS__]: Fix typos. 1995-03-09 01:08:14 +00:00
Roland McGrath
d7a043b46c (child_error): Use strsignal. 1995-02-22 03:17:54 +00:00
Roland McGrath
c5af4810ff (start_job_command): Remember to call notice_finsihed_file under -n when
not recursing.  To do this, consolidate that code under the empty command
case and goto there for the -n case.
1995-02-10 23:44:03 +00:00
Roland McGrath
3f506aaf90 [HAVE_SYSCONF_OPEN_MAX] (getdtablesize): Define as macro using sysconf. 1995-02-05 23:35:39 +00:00
Roland McGrath
258dad0f9a Fix nits in last change. 1995-01-15 16:32:10 +00:00
Roland McGrath
37358a9a82 (start_job_command): Save and restore environ around vfork call.
(search_path): Function #if 0'd out.
(exec_command): Use execvp instead of search_path.
1995-01-15 15:57:48 +00:00
Roland McGrath
7879457545 (construct_command_argv_internal): Handle " quoting too, when no
backslash, $ or ` characters appear inside the quotes.
1995-01-15 13:43:48 +00:00
Roland McGrath
b61a13463d (start_waiting_job): Use set_command_state. 1994-11-29 01:10:47 +00:00
Roland McGrath
c0163410d2 (start_job_command): When ARGV is nil, only set update_state and call
notice_finished_file if job_next_command returns zero.
1994-11-01 08:34:10 +00:00
Roland McGrath
8ad5af7c28 (start_job_command): Call notice_finished_file for empty command line. 1994-11-01 06:18:07 +00:00
Roland McGrath
cc8d6cf343 (start_job_command): In FLAGS initialization, OR in
CHILD->file->command_flags.
1994-10-24 22:50:01 +00:00
Roland McGrath
9807a2869f (reap_children): Call delete_child_targets for non-signal error if
.DELETE_ON_ERROR is a target.
1994-09-29 04:14:20 +00:00
Roland McGrath
c62ca42327 (reap_children): Don't change C->file->command_state when dying.
Test it only after calling start_job_command for a new command line.
When no more cmds, just set C->file->update_status.
(start_job_command): When the last line is empty or under -n, set
C->file->update_status.
(start_waiting_job): Grok cs_not_started after start_job_command as success.
(new_job): Set C->file->update_status when there are no cmds.
(job_next_command): When out of lines, don't set CHILD->file->update_status or
CHILD->file->command_state.
1994-09-26 23:02:40 +00:00
Roland McGrath
9e97330bcb (start_job_command): Whenever we set CHILD->file->update_status, call
notice_finished_file instead of just set_command_state.
1994-09-07 07:02:23 +00:00
Roland McGrath
ca5a872280 Changed all assignments of command_state members to calls to
set_command_state.
1994-09-07 00:04:49 +00:00
Roland McGrath
f663464925 (PATH_SEPARATOR_CHAR): Macro removed (now in make.h). 1994-07-25 23:28:08 +00:00
Roland McGrath
a2ab31ba62 [__MSDOS__]: Include <process.h>.
(PATH_SEPARATOR_CHAR): New macro; differing defns for [__MSDOS__] and not.
[__MSDOS__] (dos_pid, dos_status, dos_bname, dos_bename, dos_batch_file):
New variables.
(reap_children) [__MSDOS__]: Don't call wait; just examine those vars.
(unblock_sigs) [__MSDOS__]: Do nothing.
(start_job_command) [__MSDOS__]: Use spawnvpe instead of vfork and exec.
(load_too_high) [__MSDOS__]: Always return true.
(search_path) [__MSDOS__]: Check for : or / in FILE to punt.
Use PATH_SEPARATOR_CHAR instead of ':'.
(construct_command_argv_internal) [__MSDOS__]: Wholly different values for
sh_chars and sh_cmds.  Wholly new code to handle shell scripts.

Part of MSDOS/GO32 port from DJ Delorie <dj@ctron.com>.
1994-07-25 23:23:03 +00:00
Roland McGrath
535dcf6a22 (search_path): Use safe_stat in place of stat. 1994-07-04 21:54:18 +00:00
Roland McGrath
5bd9836fba (construct_command_argv_internal): After swallowing a backslash-newline
combination, if INSTRING is set goto string_char (new label) for normal
INSTRING handling code.
1994-06-24 09:40:13 +00:00
Roland McGrath
e83c7d40cd (construct_command_argv_internal): Swallow backslash-newline combinations
inside '' strings too.
1994-05-10 20:27:17 +00:00
Roland McGrath
dd841ded6f (construct_command_argv_internal): Notice newline inside '' string when
RESTP is non-null.
1994-04-25 23:31:55 +00:00
Roland McGrath
bca4e882ba (reap_children): Die with 2 for error.
(start_job_command): Set update_status to 2 for error.  Set it to 1 when we
would run a command and question_flag is set.
1994-04-21 02:00:20 +00:00
Roland McGrath
0f83ab90e3 entered into RCS 1993-10-14 19:08:36 +00:00
Roland McGrath
7f71af7974 Formerly job.c.~110~ 1993-09-28 18:18:15 +00:00
Roland McGrath
065ac461c5 Formerly job.c.~109~ 1993-09-20 22:33:18 +00:00
Roland McGrath
ec2751c045 Formerly job.c.~108~ 1993-09-17 04:37:54 +00:00
Roland McGrath
3c954a048b Formerly job.c.~107~ 1993-08-11 20:16:45 +00:00
Roland McGrath
1bafe5ed81 Formerly job.c.~106~ 1993-08-11 19:32:02 +00:00
Roland McGrath
5fc2539281 Formerly job.c.~105~ 1993-08-09 22:25:00 +00:00
Roland McGrath
86d4d7425b Formerly job.c.~104~ 1993-06-25 20:03:56 +00:00
Roland McGrath
6c6f210456 Formerly job.c.~103~ 1993-05-12 19:20:45 +00:00
Roland McGrath
9596950898 Formerly job.c.~102~ 1993-05-06 21:30:10 +00:00
Roland McGrath
6ee7823efe Formerly job.c.~101~ 1993-04-29 01:20:37 +00:00
Roland McGrath
f138f0eeff Formerly job.c.~100~ 1993-04-14 17:22:35 +00:00
Roland McGrath
2ed0333f3c Formerly job.c.~99~ 1993-04-08 22:08:11 +00:00
Roland McGrath
791928d60b Formerly job.c.~98~ 1993-04-07 21:10:12 +00:00
Roland McGrath
3f0a207eaf Formerly job.c.~97~ 1993-04-06 00:21:23 +00:00
Roland McGrath
580e2a7391 Formerly job.c.~96~ 1993-02-05 22:31:29 +00:00
Roland McGrath
573ddaf6da Formerly job.c.~95~ 1993-02-04 00:58:10 +00:00
Roland McGrath
8b738924b0 Formerly job.c.~94~ 1993-02-01 21:02:40 +00:00
Roland McGrath
dfaa02a8d5 Formerly job.c.~93~ 1993-01-31 22:54:06 +00:00
Roland McGrath
6090eb3125 Formerly job.c.~92~ 1993-01-22 22:31:27 +00:00
Roland McGrath
2370f79846 Formerly job.c.~91~ 1993-01-21 23:27:00 +00:00
Roland McGrath
44078a3441 Formerly job.c.~90~ 1993-01-19 00:32:39 +00:00
Roland McGrath
76ae16dee3 Formerly job.c.~89~ 1993-01-08 22:40:24 +00:00
Roland McGrath
5a4ab813f0 Formerly job.c.~88~ 1993-01-07 01:46:47 +00:00
Roland McGrath
5b45a568c0 Formerly job.c.~87~ 1993-01-05 23:41:29 +00:00
Roland McGrath
968e9fce6c Formerly job.c.~86~ 1992-11-23 20:04:25 +00:00
Roland McGrath
ecc3b33299 Formerly job.c.~85~ 1992-11-12 20:45:29 +00:00
Roland McGrath
eae9bb14a2 Formerly job.c.~84~ 1992-11-09 22:52:13 +00:00
Roland McGrath
6247727678 Formerly job.c.~83~ 1992-10-12 21:58:54 +00:00
Roland McGrath
a1849dfc5f Formerly job.c.~82~ 1992-09-09 20:32:56 +00:00
Roland McGrath
2ebdf6de85 Formerly job.c.~81~ 1992-08-20 18:20:20 +00:00
Roland McGrath
19142fcfd4 Formerly job.c.~80~ 1992-07-26 20:57:13 +00:00
Roland McGrath
dc2a270b71 Formerly job.c.~79~ 1992-07-07 23:12:46 +00:00
Roland McGrath
7dba11957a Formerly job.c.~78~ 1992-07-05 00:52:50 +00:00
Roland McGrath
8809c8ec38 Formerly job.c.~77~ 1992-07-01 00:52:45 +00:00
Roland McGrath
fec3694512 Formerly job.c.~76~ 1992-06-26 00:33:00 +00:00
Roland McGrath
7ab1580762 Formerly job.c.~75~ 1992-06-25 00:13:20 +00:00
Roland McGrath
5c2f4a7d88 Formerly job.c.~74~ 1992-06-15 22:10:36 +00:00
Roland McGrath
5780852aee Formerly job.c.~73~ 1992-06-15 21:47:25 +00:00
Roland McGrath
8407664cf6 Formerly job.c.~72~ 1992-06-12 23:41:40 +00:00
Roland McGrath
d3ea420650 Formerly job.c.~71~ 1992-06-12 00:21:48 +00:00
Roland McGrath
b6364d9ae4 Formerly job.c.~70~ 1992-06-11 05:25:28 +00:00
Roland McGrath
39f1bf9ce8 Formerly job.c.~69~ 1992-06-05 01:04:26 +00:00
Roland McGrath
ecfe56b932 Formerly job.c.~68~ 1992-05-14 20:42:25 +00:00
Roland McGrath
a5a036c101 Formerly job.c.~67~ 1992-05-13 22:28:01 +00:00
Roland McGrath
792819609a Formerly job.c.~66~ 1992-05-12 21:32:24 +00:00
Roland McGrath
d9dedc8f27 Formerly job.c.~65~ 1992-05-09 02:26:35 +00:00
Roland McGrath
48cabc8f9f Formerly job.c.~64~ 1992-05-05 22:04:08 +00:00
Roland McGrath
56f17eb659 Formerly job.c.~63~ 1992-04-30 21:50:23 +00:00
Roland McGrath
08ab2b7f94 Formerly job.c.~62~ 1992-04-29 21:11:44 +00:00
Roland McGrath
d724ba1739 Formerly job.c.~61~ 1992-04-29 01:10:14 +00:00
Roland McGrath
f959c6b5b5 Formerly job.c.~60~ 1992-04-22 01:52:14 +00:00
Roland McGrath
75448c19f4 Formerly job.c.~59~ 1992-04-21 07:59:32 +00:00
Roland McGrath
4ee750d034 Formerly job.c.~58~ 1992-04-15 06:02:36 +00:00
Roland McGrath
8da2a78834 Formerly job.c.~57~ 1992-03-10 22:15:30 +00:00
Roland McGrath
87178cb5a4 Formerly job.c.~56~ 1992-02-05 01:04:23 +00:00
Roland McGrath
d2e5ab8c57 Initial revision 1992-01-20 18:49:36 +00:00