summaryrefslogtreecommitdiff
path: root/mcon/U/d_setpgrp.U
diff options
context:
space:
mode:
Diffstat (limited to 'mcon/U/d_setpgrp.U')
-rw-r--r--mcon/U/d_setpgrp.U115
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