?RCS: $Id$ ?RCS: ?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi ?RCS: ?RCS: You may redistribute only under the terms of the Artistic License, ?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 License; a copy of which may be found at the root ?RCS: of the source tree for dist 4.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 explicitly 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:. ?F:!set.c !set ?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 < #ifdef I_UNISTD # include #endif int 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