8 * You may not use this file except in compliance with the License.
9 *
10 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11 * or http://www.opensolaris.org/os/licensing.
12 * See the License for the specific language governing permissions
13 * and limitations under the License.
14 *
15 * When distributing Covered Code, include this CDDL HEADER in each
16 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17 * If applicable, add the following below this CDDL HEADER, with the
18 * fields enclosed by brackets "[]" replaced with your own identifying
19 * information: Portions Copyright [yyyy] [name of copyright owner]
20 *
21 * CDDL HEADER END
22 */
23 /*
24 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
25 * Use is subject to license terms.
26 */
27
28 #include <avo/intl.h>
29 #include <limits.h> /* MB_LEN_MAX */
30 #include <stdio.h>
31 #include <stdlib.h> /* wchar_t */
32 #include <string.h> /* strcmp() */
33 #include <nl_types.h> /* catgets() */
34 #include <sys/param.h> /* MAXPATHLEN */
35 #include <sys/types.h> /* time_t, caddr_t */
36 #include <vroot/vroot.h> /* pathpt */
37 #include <sys/time.h> /* timestruc_t */
38 #include <errno.h> /* errno */
39
40 #include <wctype.h>
41 #include <widec.h>
42
43
44 /*
45 * A type and some utilities for boolean values
46 */
47
48 #define false BOOLEAN_false
49 #define true BOOLEAN_true
50
51 typedef enum {
52 false = 0,
53 true = 1,
881 extern char mbs_buffer[];
882 extern Name path_name;
883 extern Boolean posix;
884 extern Name query;
885 extern Boolean query_mentioned;
886 extern Name hat;
887 extern Boolean reading_environment;
888 extern Name shell_name;
889 extern Boolean svr4;
890 extern Name target_arch;
891 extern Name target_mach;
892 extern Boolean tilde_rule;
893 extern wchar_t wcs_buffer[];
894 extern Boolean working_on_targets;
895 extern Name virtual_root;
896 extern Boolean vpath_defined;
897 extern Name vpath_name;
898 extern Boolean make_state_locked;
899 extern Boolean out_err_same;
900 extern pid_t childPid;
901 extern nl_catd libmksh_catd;
902
903 /*
904 * RFE 1257407: make does not use fine granularity time info available from stat.
905 * High resolution time comparison.
906 */
907
908 inline int
909 operator==(const timestruc_t &t1, const timestruc_t &t2) {
910 return ((t1.tv_sec == t2.tv_sec) && (t1.tv_nsec == t2.tv_nsec));
911 }
912
913 inline int
914 operator!=(const timestruc_t &t1, const timestruc_t &t2) {
915 return ((t1.tv_sec != t2.tv_sec) || (t1.tv_nsec != t2.tv_nsec));
916 }
917
918 inline int
919 operator>(const timestruc_t &t1, const timestruc_t &t2) {
920 if (t1.tv_sec == t2.tv_sec) {
921 return (t1.tv_nsec > t2.tv_nsec);
|
8 * You may not use this file except in compliance with the License.
9 *
10 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
11 * or http://www.opensolaris.org/os/licensing.
12 * See the License for the specific language governing permissions
13 * and limitations under the License.
14 *
15 * When distributing Covered Code, include this CDDL HEADER in each
16 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
17 * If applicable, add the following below this CDDL HEADER, with the
18 * fields enclosed by brackets "[]" replaced with your own identifying
19 * information: Portions Copyright [yyyy] [name of copyright owner]
20 *
21 * CDDL HEADER END
22 */
23 /*
24 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
25 * Use is subject to license terms.
26 */
27
28 #include <limits.h> /* MB_LEN_MAX */
29 #include <stdio.h>
30 #include <stdlib.h> /* wchar_t */
31 #include <string.h> /* strcmp() */
32 #include <sys/param.h> /* MAXPATHLEN */
33 #include <sys/types.h> /* time_t, caddr_t */
34 #include <vroot/vroot.h> /* pathpt */
35 #include <sys/time.h> /* timestruc_t */
36 #include <errno.h> /* errno */
37
38 #include <wctype.h>
39 #include <widec.h>
40
41
42 /*
43 * A type and some utilities for boolean values
44 */
45
46 #define false BOOLEAN_false
47 #define true BOOLEAN_true
48
49 typedef enum {
50 false = 0,
51 true = 1,
879 extern char mbs_buffer[];
880 extern Name path_name;
881 extern Boolean posix;
882 extern Name query;
883 extern Boolean query_mentioned;
884 extern Name hat;
885 extern Boolean reading_environment;
886 extern Name shell_name;
887 extern Boolean svr4;
888 extern Name target_arch;
889 extern Name target_mach;
890 extern Boolean tilde_rule;
891 extern wchar_t wcs_buffer[];
892 extern Boolean working_on_targets;
893 extern Name virtual_root;
894 extern Boolean vpath_defined;
895 extern Name vpath_name;
896 extern Boolean make_state_locked;
897 extern Boolean out_err_same;
898 extern pid_t childPid;
899
900 /*
901 * RFE 1257407: make does not use fine granularity time info available from stat.
902 * High resolution time comparison.
903 */
904
905 inline int
906 operator==(const timestruc_t &t1, const timestruc_t &t2) {
907 return ((t1.tv_sec == t2.tv_sec) && (t1.tv_nsec == t2.tv_nsec));
908 }
909
910 inline int
911 operator!=(const timestruc_t &t1, const timestruc_t &t2) {
912 return ((t1.tv_sec != t2.tv_sec) || (t1.tv_nsec != t2.tv_nsec));
913 }
914
915 inline int
916 operator>(const timestruc_t &t1, const timestruc_t &t2) {
917 if (t1.tv_sec == t2.tv_sec) {
918 return (t1.tv_nsec > t2.tv_nsec);
|