diff options
Diffstat (limited to 'mcon/U/d_setpgrp.U')
-rw-r--r-- | mcon/U/d_setpgrp.U | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/mcon/U/d_setpgrp.U b/mcon/U/d_setpgrp.U new file mode 100644 index 0000000..42f69c5 --- /dev/null +++ b/mcon/U/d_setpgrp.U @@ -0,0 +1,115 @@ +?RCS: $Id: d_setpgrp.U,v 3.0.1.3 1997/02/28 15:44:16 ram Exp $ +?RCS: +?RCS: Copyright (c) 1991-1993, Raphael Manfredi +?RCS: +?RCS: You may redistribute only under the terms of the Artistic Licence, +?RCS: as specified in the README file that comes with the distribution. +?RCS: You may reuse parts of this distribution only within the terms of +?RCS: that same Artistic Licence; a copy of which may be found at the root +?RCS: of the source tree for dist 3.0. +?RCS: +?RCS: $Log: d_setpgrp.U,v $ +?RCS: Revision 3.0.1.3 1997/02/28 15:44:16 ram +?RCS: patch61: obsoleted USE_BSDGRP in favor of USE_BSD_SETPGRP +?RCS: patch61: another unit now also defines a USE_BSD_GETPGRP +?RCS: patch61: fallback for test program failure improved +?RCS: +?RCS: Revision 3.0.1.2 1995/07/25 13:59:30 ram +?RCS: patch56: re-arranged compile line to include ldflags before objects +?RCS: +?RCS: Revision 3.0.1.1 1994/10/29 16:15:37 ram +?RCS: patch36: added 'ldflags' to the test compile line (ADO) +?RCS: patch36: call ./usg explicitely instead of relying on PATH +?RCS: +?RCS: Revision 3.0 1993/08/18 12:07:09 ram +?RCS: Baseline for dist 3.0 netwide release. +?RCS: +?MAKE:d_setpgrp d_bsdsetpgrp: cat rm +cc +libs +ccflags \ + +ldflags Inlibc Guess Setvar i_unistd +?MAKE: -pick add $@ %< +?S:d_setpgrp: +?S: This variable conditionally defines HAS_SETPGRP if setpgrp() is +?S: available to set the current process group. +?S:. +?S:d_bsdsetpgrp (d_bsdpgrp): +?S: This variable conditionally defines USE_BSD_SETPGRP if +?S: setpgrp needs two arguments whereas USG one needs none. +?S: See also d_setpgid for a POSIX interface. +?S:. +?C:HAS_SETPGRP (SETPGRP): +?C: This symbol, if defined, indicates that the setpgrp routine is +?C: available to set the current process group. +?C:. +?C:USE_BSD_SETPGRP (USE_BSDPGRP BSDPGRP): +?C: This symbol, if defined, indicates that setpgrp needs two +?C: arguments whereas USG one needs none. See also HAS_SETPGID +?C: for a POSIX interface. +?C:. +?H:#$d_setpgrp HAS_SETPGRP /**/ +?H:#$d_bsdsetpgrp USE_BSD_SETPGRP /**/ +?H:. +?T:xxx +?LINT:set d_setpgrp d_bsdsetpgrp +: see if setpgrp exists +set setpgrp d_setpgrp +eval $inlibc + +@if USE_BSD_SETPGRP || d_bsdsetpgrp +case "$d_setpgrp" in +"$define") + echo " " + echo "Checking to see which flavor of setpgrp is in use..." + $cat >set.c <<EOP +#$i_unistd I_UNISTD +#include <sys/types.h> +#ifdef I_UNISTD +# include <unistd.h> +#endif +main() +{ + if (getuid() == 0) { + printf("(I see you are running Configure as super-user...)\n"); + setuid(1); + } +#ifdef TRY_BSD_PGRP + if (-1 == setpgrp(1, 1)) + exit(0); +#else + if (setpgrp() != -1) + exit(0); +#endif + exit(1); +} +EOP + if $cc -DTRY_BSD_PGRP $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then + echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4 + val="$define" + elif $cc $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then + echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4 + val="$undef" + else + echo "(I can't seem to compile and run the test program.)" + if ./usg; then + xxx="a USG one, i.e. you use setpgrp()." + else + # SVR4 systems can appear rather BSD-ish. + case "$i_unistd" in + $undef) + xxx="a BSD one, i.e. you use setpgrp(pid,pgrp)." + val="$define" + ;; + $define) + xxx="probably a USG one, i.e. you use setpgrp()." + val="$undef" + ;; + esac + fi + echo "Assuming your setpgrp is $xxx" >&4 + fi + ;; +*) val="$undef";; +esac +set d_bsdsetpgrp +eval $setvar +$rm -f set set.c +@end |