Print this page
10080 smatch Makefile changes for usr/src/cmd
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/cmd/ksh/Makefile.com
+++ new/usr/src/cmd/ksh/Makefile.com
1 1 #
2 2 # CDDL HEADER START
3 3 #
4 4 # The contents of this file are subject to the terms of the
5 5 # Common Development and Distribution License (the "License").
6 6 # You may not use this file except in compliance with the License.
7 7 #
8 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 # or http://www.opensolaris.org/os/licensing.
10 10 # See the License for the specific language governing permissions
11 11 # and limitations under the License.
12 12 #
13 13 # When distributing Covered Code, include this CDDL HEADER in each
14 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
↓ open down ↓ |
14 lines elided |
↑ open up ↑ |
15 15 # If applicable, add the following below this CDDL HEADER, with the
16 16 # fields enclosed by brackets "[]" replaced with your own identifying
17 17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 18 #
19 19 # CDDL HEADER END
20 20 #
21 21
22 22 #
23 23 # Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
24 24 #
25 +# Copyright (c) 2018, Joyent, Inc.
25 26
26 27 SHELL=/usr/bin/ksh93
27 28
28 29 PROG= ksh
29 30
30 31 USRKSH_ALIAS_LIST=ksh ksh93 rksh rksh93
31 32
32 33 OBJECTS= \
33 34 pmain.o
34 35
35 36 LIBSHELLBASE=../../../lib/libshell
36 37 LIBSHELLSRC=$(LIBSHELLBASE)/common/sh
37 38
38 39 SRCS= $(OBJECTS:%.o=$(LIBSHELLSRC)/%.c)
39 40
40 41 LDLIBS += -lshell
41 42
42 43 # Set common AST build flags (e.g., needed to support the math stuff).
43 44 include ../../../Makefile.ast
44 45
45 46 # 1. Make sure that the -D/-U defines in CFLAGS below are in sync
46 47 # with usr/src/lib/libshell/Makefile.com
47 48 # 2. We use "=" here since using $(CPPFLAGS.master) is very tricky in our
48 49 # case - it MUST come as the last element but future changes in -D options
49 50 # may then cause silent breakage in the AST sources because the last -D
50 51 # option specified overrides previous -D options so we prefer the current
51 52 # way to explicitly list each single flag.
52 53 CPPFLAGS = \
53 54 $(DTEXTDOM) $(DTS_ERRNO) \
54 55 $(LIBSHELLCPPFLAGS)
↓ open down ↓ |
20 lines elided |
↑ open up ↑ |
55 56
56 57 CFLAGS += \
57 58 $(ASTCFLAGS)
58 59 CFLAGS64 += \
59 60 $(ASTCFLAGS64)
60 61
61 62 # Workaround for CR#6628728 ("|memcntl()| prototype not available for C99/XPG6")
62 63 pmain.o := CERRWARN += -_gcc=-Wno-implicit-function-declaration
63 64 pmain.o := CERRWARN += -erroff=E_NO_IMPLICIT_DECL_ALLOWED
64 65
66 +# not linted
67 +SMATCH=off
68 +
65 69 .KEEP_STATE:
66 70
67 71 %.o: $(LIBSHELLSRC)/%.c
68 72 $(COMPILE.c) -c -o $@ $<
69 73 $(POST_PROCESS_O)
70 74
71 75 all: $(PROG)
72 76
73 77 # We explicitly delete "ksh" and "ksh93" to catch changes in
74 78 # BUILD_KSH93_AS_BINKSH (see Makefile.ksh93switch)
75 79 # and soft-link $(PROG) to ksh/ksh93 below because ksh93 test
76 80 # suite seems to require that ksh93 is available as "ksh" in
77 81 # ${PATH} (see comment about "io.sh" in Makefile.testshell).
78 82 $(PROG): $(OBJECTS)
79 83 $(RM) ksh ksh93
80 84 $(LINK.c) $(OBJECTS) -o $@ $(LDLIBS)
81 85 $(POST_PROCESS)
82 86 (set +o errexit ; \
83 87 [[ ! -x ksh93 ]] && ln $(PROG) ksh93 ; \
84 88 [[ ! -x ksh ]] && ln $(PROG) ksh ; \
85 89 true \
86 90 )
87 91
88 92 clean:
89 93 $(RM) $(OBJECTS)
90 94
91 95 # We explicitly delete "ksh" and "ksh93" to catch changes in
92 96 # BUILD_KSH93_AS_BINKSH (see Makefile.ksh93switch)
93 97 CLOBBERFILES += \
94 98 ksh \
95 99 ksh93
96 100
97 101 # Install rule for $(MACH)/Makefile (32bit)
98 102 INSTALL.ksh.32bit=@ \
99 103 (print "$(POUND_SIGN) Installing 32bit $(PROG) aliases $(USRKSH_ALIAS_LIST)" ; \
100 104 set -o xtrace ; \
101 105 for i in $(USRKSH_ALIAS_LIST) ; do \
102 106 [[ "$$i" == "$(PROG)" ]] && continue ; \
103 107 $(RM) "$(ROOTBIN32)/$$i" ; \
104 108 $(LN) "$(ROOTBIN32)/$(PROG)" "$(ROOTBIN32)/$$i" ; \
105 109 done \
106 110 )
107 111
108 112 # Install rule for $(MACH64)/Makefile (64bit)
109 113 INSTALL.ksh.64bit=@ \
110 114 (print "$(POUND_SIGN) Installing 64bit $(PROG) aliases $(USRKSH_ALIAS_LIST)" ; \
111 115 set -o xtrace ; \
112 116 for i in $(USRKSH_ALIAS_LIST) ; do \
113 117 [[ "$$i" == "$(PROG)" ]] && continue ; \
114 118 $(RM) "$(ROOTBIN64)/$$i" ; \
115 119 $(LN) "$(ROOTBIN64)/$(PROG)" "$(ROOTBIN64)/$$i" ; \
116 120 done \
117 121 )
118 122
119 123 #
120 124 # ksh is not lint-clean yet; fake up a target. (You can use
121 125 # "make lintcheck" to actually run lint; please send all lint fixes
122 126 # upstream (to AT&T) so the next update will pull them into ON.)
123 127 #
124 128 lint:
125 129 @ print "usr/src/cmd/ksh is not lint-clean: skipping"
126 130
127 131 include ../Makefile.testshell
↓ open down ↓ |
53 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX