?RCS: $Id$ ?RCS: ?RCS: Copyright (c) 1991-1997, 2004-2006, 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 4.0. ?RCS: ?RCS: $Log: d_open3.U,v $ ?RCS: Revision 3.0.1.2 1997/02/28 15:37:12 ram ?RCS: patch61: added ?F: metalint hint ?RCS: ?RCS: Revision 3.0.1.1 1995/07/25 13:58:26 ram ?RCS: patch56: added knowledge of the O_NONBLOCK symbol ?RCS: ?RCS: Revision 3.0 1993/08/18 12:06:44 ram ?RCS: Baseline for dist 3.0 netwide release. ?RCS: ?MAKE:d_open3: test +cc cat +cppflags h_fcntl h_sysfile rm Setvar Findhdr Warn ?MAKE: -pick add $@ %< ?X: It would be easy to separate the h_O_stuff from this. ?X: Is there a reason to do so? -- HMS ?S:d_open3: ?S: This variable conditionally defines the HAS_OPEN3 manifest constant, ?S: which indicates to the C program that the 3 argument version of ?S: the open(2) function is available. ?S:. ?C:HAS_OPEN3 (OPEN3): ?C: This manifest constant lets the C program know that the three ?C: argument form of open(2) is available. ?C:. ?H:#$d_open3 HAS_OPEN3 /**/ ?H:. ?W:%<:O_RDONLY O_WRONLY O_RDWR O_NDELAY O_APPEND O_SYNC O_CREAT O_TRUNC ?W:%<:O_EXCL O_NONBLOCK ?F:!open3 ?LINT:set d_open3 ?LINT:change h_fcntl h_sysfile : Locate the flags for 'open()' echo " " $cat >open3.c <<'EOCP' #include #ifdef I_FCNTL #include #endif #ifdef I_SYS_FILE #include #endif int main() { if(O_RDONLY); #ifdef O_TRUNC exit(0); #else exit(1); #endif } EOCP : check sys/file.h first to get FREAD on Sun if $test `./findhdr sys/file.h` && \ $cc $cppflags "-DI_SYS_FILE" -o open3 open3.c >/dev/null 2>&1 ; then h_sysfile=true; echo " defines the O_* constants..." >&4 if ./open3; then echo "and you have the 3 argument form of open()." >&4 val="$define" else echo "but not the 3 argument form of open(). Oh, well." >&4 val="$undef" fi elif $test `./findhdr fcntl.h` && \ $cc "-DI_FCNTL" -o open3 open3.c >/dev/null 2>&1 ; then h_fcntl=true; echo " defines the O_* constants..." >&4 if ./open3; then echo "and you have the 3 argument form of open()." >&4 val="$define" else echo "but not the 3 argument form of open(). Oh, well." >&4 val="$undef" fi else val="$undef" ./warn "I can't find the O_* constant definitions! You got problems." fi set d_open3 eval $setvar $rm -f open3*