summaryrefslogtreecommitdiff
path: root/mcon/U/d_getpgrp.U
diff options
context:
space:
mode:
Diffstat (limited to 'mcon/U/d_getpgrp.U')
-rw-r--r--mcon/U/d_getpgrp.U103
1 files changed, 39 insertions, 64 deletions
diff --git a/mcon/U/d_getpgrp.U b/mcon/U/d_getpgrp.U
index 4e99d39..ea29328 100644
--- a/mcon/U/d_getpgrp.U
+++ b/mcon/U/d_getpgrp.U
@@ -1,11 +1,11 @@
-?RCS: $Id: d_getpgrp.U 1 2006-08-24 12:32:52Z rmanfredi $
+?RCS: $Id: d_getpgrp.U 167 2013-05-08 17:58:00Z rmanfredi $
?RCS:
?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
?RCS:
-?RCS: You may redistribute only under the terms of the Artistic Licence,
+?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 Licence; a copy of which may be found at the root
+?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_getpgrp.U,v $
@@ -15,8 +15,7 @@
?RCS: Revision 3.0 1993/08/18 12:06:15 ram
?RCS: Baseline for dist 3.0 netwide release.
?RCS:
-?MAKE:d_getpgrp d_bsdgetpgrp: Guess Inlibc Setvar cat rm \
- +cc +ccflags +ldflags +libs i_unistd
+?MAKE:d_getpgrp d_bsdgetpgrp: Trylink Setvar cat i_unistd
?MAKE: -pick add $@ %<
?S:d_getpgrp:
?S: This variable conditionally defines HAS_GETPGRP if getpgrp() is
@@ -32,77 +31,53 @@
?C:.
?C:USE_BSD_GETPGRP:
?C: This symbol, if defined, indicates that getpgrp needs one
-?C: arguments whereas USG one needs none.
+?C: arguments whereas the USG one needs none.
?C:.
?H:#$d_getpgrp HAS_GETPGRP /**/
?H:#$d_bsdgetpgrp USE_BSD_GETPGRP /**/
?H:.
-?F:!set !set.c
-?T:xxx
?LINT:set d_getpgrp d_bsdgetpgrp
: see if getpgrp exists
-set getpgrp d_getpgrp
-eval $inlibc
-
-@if USE_BSD_GETPGRP || d_bsdgetpgrp
-case "$d_getpgrp" in
-"$define")
- echo " "
- echo "Checking to see which flavor of getpgrp is in use..."
- $cat >set.c <<EOP
-#$i_unistd I_UNISTD
+$cat >try.c <<EOC
#include <sys/types.h>
+#$i_unistd I_UNISTD
#ifdef I_UNISTD
-# include <unistd.h>
+#include <unistd.h>
#endif
-int main()
+int main(void)
{
- if (getuid() == 0) {
- printf("(I see you are running Configure as super-user...)\n");
- setuid(1);
- }
-#ifdef TRY_BSD_PGRP
- if (getpgrp(1) == 0)
- exit(0);
-#else
- if (getpgrp() > 0)
- exit(0);
+ static pid_t ret, pid;
+ ret |= getpgrp(pid);
+ return ret ? 0 : 1;
+}
+EOC
+cyn="whether you have a BSD-like getpgrp()"
+set d_bsdgetpgrp
+eval $trylink
+
+case "$d_bsdgetpgrp" in
+$define)
+ val="$define"
+ set d_getpgrp
+ eval $setvar
+ ;;
+*)
+ $cat >try.c <<EOC
+#include <sys/types.h>
+#$i_unistd I_UNISTD
+#ifdef I_UNISTD
+#include <unistd.h>
#endif
- exit(1);
+int main(void)
+{
+ static pid_t ret;
+ ret |= getpgrp();
+ return ret ? 0 : 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 getpgrp(pid) instead of getpgrp()." >&4
- val="$define"
- elif $cc $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then
- echo "You have to use getpgrp() instead of getpgrp(pid)." >&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 getpgrp()."
- else
- # SVR4 systems can appear rather BSD-ish.
- case "$i_unistd" in
- $undef)
- xxx="a BSD one, i.e. you use getpgrp(pid)."
- val="$define"
- ;;
- $define)
- xxx="probably a USG one, i.e. you use getpgrp()."
- val="$undef"
- ;;
- esac
- fi
- echo "Assuming your getpgrp is $xxx" >&4
- fi
+EOC
+ cyn="whether you have a USG-like getpgrp() instead"
+ set d_getpgrp
+ eval $trylink
;;
-*) val="$undef";;
esac
-set d_bsdgetpgrp
-eval $setvar
-$rm -f set set.c
-@end