]>
Commit | Line | Data |
---|---|---|
a61fdf0a A |
1 | ## |
2 | # Copyright (c) 2006 Apple Computer, Inc. All rights reserved. | |
3 | # | |
4 | # @APPLE_LICENSE_HEADER_START@ | |
5 | # | |
6 | # This file contains Original Code and/or Modifications of Original Code | |
7 | # as defined in and that are subject to the Apple Public Source License | |
8 | # Version 2.0 (the 'License'). You may not use this file except in | |
9 | # compliance with the License. Please obtain a copy of the License at | |
10 | # http://www.opensource.apple.com/apsl/ and read it before using this | |
11 | # file. | |
12 | # | |
13 | # The Original Code and all software distributed under the License are | |
14 | # distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | |
15 | # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | |
16 | # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | |
17 | # FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | |
18 | # Please see the License for the specific language governing rights and | |
19 | # limitations under the License. | |
20 | # | |
21 | # @APPLE_LICENSE_HEADER_END@ | |
22 | ## | |
23 | TESTROOT = ../.. | |
24 | include ${TESTROOT}/include/common.makefile | |
25 | LLVMGCC = /usr/local/bin/llvm-gcc | |
26 | LLVMGXX = /usr/local/bin/llvm-g++ | |
27 | # | |
28 | # Test the we set the stack execution bit properly. | |
29 | ||
30 | run: | |
31 | @if [ -f /usr/local/bin/llvm-gcc ] ; then \ | |
32 | $(MAKE) all ; \ | |
33 | else \ | |
34 | ${PASS_IFF} /usr/bin/true ; \ | |
35 | fi | |
36 | ||
37 | all: zero one two three four five six seven eight nine ten eleven twelve thirteen | |
38 | ||
39 | ||
40 | zero: | |
41 | # | |
42 | # llvm : a.c : Dfoo3 | |
43 | # llvm : b.c : Dfoo2 | |
44 | # MachO : main.c : Ufoo2, Ufoo3 | |
45 | # | |
46 | #echo "Zero..." | |
47 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a.c -c -o a-${ARCH}.o ${OTHER} | |
48 | ${LLVMGCC} ${CCFLAGS} --emit-llvm b.c -c -o b-${ARCH}.o | |
49 | ${LLVMGCC} ${CCFLAGS} main.c -c -o main-${ARCH}.o | |
50 | ${LLVMGCC} ${CCFLAGS} a-${ARCH}.o b-${ARCH}.o main-${ARCH}.o -o main-${ARCH} | |
51 | ${PASS_IFF_GOOD_MACHO} main-${ARCH} | |
52 | ${PASS_IFF} ./main-${ARCH} | |
53 | ||
54 | one: | |
55 | # | |
56 | # llvm : a1.c : Dfoo3, Ufoo4 | |
57 | # llvm : b1.c : Dfoo2, Ufoo4 | |
58 | # MachO : main1.c : Dfoo4, Ufoo2, Ufoo3 | |
59 | # | |
60 | #echo "One..." | |
61 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a1.c -c -o a1-${ARCH}.o | |
62 | ${LLVMGCC} ${CCFLAGS} --emit-llvm b1.c -c -o b1-${ARCH}.o | |
63 | ${LLVMGCC} ${CCFLAGS} main1.c -c -o main1-${ARCH}.o | |
64 | ${LLVMGCC} ${CCFLAGS} a1-${ARCH}.o b1-${ARCH}.o main1-${ARCH}.o -o main1-${ARCH} | |
65 | ${PASS_IFF_GOOD_MACHO} main1-${ARCH} | |
66 | ${PASS_IFF} ./main1-${ARCH} | |
67 | ||
68 | two: | |
69 | # | |
70 | # llvm : a2.c : Dfoo3, Ufoo4 | |
71 | # llvm : b2.c : Dfoo2, Dfoo4 | |
72 | # MachO : main2.c : Ufoo2, Ufoo3 | |
73 | # | |
74 | #echo "Two..." | |
75 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a2.c -c -o a2-${ARCH}.o | |
76 | ${LLVMGCC} ${CCFLAGS} --emit-llvm b2.c -c -o b2-${ARCH}.o | |
77 | ${LLVMGCC} ${CCFLAGS} main2.c -c -o main2-${ARCH}.o | |
78 | ${LLVMGCC} ${CCFLAGS} a2-${ARCH}.o b2-${ARCH}.o main2-${ARCH}.o -o main2-${ARCH} | |
79 | ${PASS_IFF_GOOD_MACHO} main2-${ARCH} | |
80 | ${PASS_IFF} ./main2-${ARCH} | |
81 | ||
82 | three: | |
83 | # | |
84 | # llvm : a3.c : Dfoo1, Dbar | |
85 | # llvm : b3.c : Dfoo2, Ubar | |
86 | # MachO : main3.c : Ufoo1, Ufoo2, Ubar | |
87 | # | |
88 | #echo "Three..." | |
89 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a3.c -c -o a3-${ARCH}.o | |
90 | ${LLVMGCC} ${CCFLAGS} --emit-llvm b3.c -c -o b3-${ARCH}.o | |
91 | ${LLVMGCC} ${CCFLAGS} main3.c -c -o main3-${ARCH}.o | |
92 | ${LLVMGCC} ${CCFLAGS} a3-${ARCH}.o b3-${ARCH}.o main3-${ARCH}.o -o main3-${ARCH} | |
93 | ${PASS_IFF_GOOD_MACHO} main3-${ARCH} | |
94 | ${PASS_IFF} ./main3-${ARCH} | |
95 | ||
96 | four: | |
97 | # | |
98 | # llvm : a4.c : Dfoo3, Ufoo4 | |
99 | # llvm : b4.c : Dfoo2, DLmyfoo, Ufoo4 | |
100 | # MachO : main4.c : Dfoo4, Ufoo2, Ufoo3 | |
101 | # | |
102 | #echo "Four..." | |
103 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a4.c -c -o a4-${ARCH}.o | |
104 | ${LLVMGCC} ${CCFLAGS} --emit-llvm b4.c -c -o b4-${ARCH}.o | |
105 | ${LLVMGCC} ${CCFLAGS} main4.c -c -o main4-${ARCH}.o | |
106 | ${LLVMGCC} ${CCFLAGS} a4-${ARCH}.o b4-${ARCH}.o main4-${ARCH}.o -o main4-${ARCH} | |
107 | ${PASS_IFF_GOOD_MACHO} main4-${ARCH} | |
108 | ${PASS_IFF} ./main4-${ARCH} | |
109 | ||
110 | five: | |
111 | # | |
112 | # llvm : a5.c : Dfoo1, Ufoo2, Ufoo3 | |
113 | # llvm : b5.c : Dfoo2 | |
114 | # MachO : main5.c : Dfoo3, Ufoo1 | |
115 | # | |
116 | #echo "Five..." | |
117 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a5.c -c -o a5-${ARCH}.o | |
118 | ${LLVMGCC} ${CCFLAGS} --emit-llvm b5.c -c -o b5-${ARCH}.o | |
119 | ${LLVMGCC} ${CCFLAGS} main5.c -c -o main5-${ARCH}.o | |
120 | ${LLVMGCC} ${CCFLAGS} a5-${ARCH}.o b5-${ARCH}.o main5-${ARCH}.o -o main5-${ARCH} -Wl,-dead_strip | |
121 | ${PASS_IFF_GOOD_MACHO} main5-${ARCH} | |
122 | ${PASS_IFF} ./main5-${ARCH} | |
123 | ${OTOOL} -tV main5-${ARCH} | grep foo3 | ${PASS_IFF_EMPTY} | |
124 | ||
125 | six: | |
126 | # | |
127 | # llvm : a6.c : Dfoo1, Dfoo2 | |
128 | # MachO : main6.c : Ufoo1 | |
129 | # | |
130 | #echo "Six..." | |
131 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a6.c -c -o a6-${ARCH}.o | |
132 | ${LLVMGCC} ${CCFLAGS} main6.c -c -o main6-${ARCH}.o | |
133 | ${LLVMGCC} ${CCFLAGS} a6-${ARCH}.o main6-${ARCH}.o -o main6-${ARCH} -Wl,-dead_strip | |
134 | ${PASS_IFF_GOOD_MACHO} main6-${ARCH} | |
135 | ${PASS_IFF} ./main6-${ARCH} | |
136 | ${OTOOL} -tV main6-${ARCH} | grep foo2 | ${PASS_IFF_EMPTY} | |
137 | ||
138 | seven: | |
139 | # | |
140 | # llvm : a7.c : Dfoo1, Dfoo2, Ufoo3 | |
141 | # llvm : b7.c : Dfoo3, ufoo2 | |
142 | # MachO : main7.c : Ufoo1 | |
143 | # | |
144 | #echo "Seven..." | |
145 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a7.c -c -o a7-${ARCH}.o | |
146 | ${LLVMGCC} ${CCFLAGS} --emit-llvm b7.c -c -o b7-${ARCH}.o | |
147 | ${LLVMGCC} ${CCFLAGS} main7.c -c -o main7-${ARCH}.o | |
148 | ${LLVMGCC} ${CCFLAGS} a7-${ARCH}.o b7-${ARCH}.o main7-${ARCH}.o -o main7-${ARCH} | |
149 | ${PASS_IFF_GOOD_MACHO} main7-${ARCH} | |
150 | ${PASS_IFF} ./main7-${ARCH} | |
151 | ||
152 | eight: | |
153 | # | |
154 | # llvm : a8.c : Dfoo1, Dfoo2 | |
155 | # MachO : main8.c : Ufoo1 | |
156 | # | |
157 | #echo "Eight..." | |
158 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a8.c -c -o a8-${ARCH}.o | |
159 | ${LLVMGCC} ${CCFLAGS} main8.c -c -o main8-${ARCH}.o | |
160 | ${LLVMGCC} ${CCFLAGS} a8-${ARCH}.o main8-${ARCH}.o -o main8-${ARCH} -Wl,-dead_strip | |
161 | ${PASS_IFF} ./main8-${ARCH} | |
162 | ${OTOOL} -tV main8-${ARCH} | grep foo2 | ${PASS_IFF_EMPTY} | |
163 | ${OTOOL} -tV main8-${ARCH} | grep unnamed_2_1 | ${PASS_IFF_EMPTY} | |
164 | ||
165 | nine: | |
166 | # | |
167 | # llvm : a9.c : Dfoo1, Dfoo2, Dfoo3, Ufoo3, Ufoo4 | |
168 | # MachO : main9.c : Ufoo1, Dfoo4 | |
169 | # | |
170 | #echo "Nine..." | |
171 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a9.c -c -o a9-${ARCH}.o | |
172 | ${LLVMGCC} ${CCFLAGS} main9.c -c -o main9-${ARCH}.o | |
173 | ${LLVMGCC} ${CCFLAGS} a9-${ARCH}.o main9-${ARCH}.o -o main9-${ARCH} -Wl,-dead_strip | |
174 | ${PASS_IFF} ./main9-${ARCH} | |
175 | ${OTOOL} -tV main9-${ARCH} | grep foo2 | ${PASS_IFF_EMPTY} | |
176 | ${OTOOL} -tV main9-${ARCH} | grep foo4 | ${PASS_IFF_EMPTY} | |
177 | ${OTOOL} -tV main9-${ARCH} | grep unnamed_2_1 | ${PASS_IFF_EMPTY} | |
178 | ||
179 | ten: | |
180 | # | |
181 | # llvm : a10.c | |
182 | # llvm : b10.c | |
183 | # MachO : main10.c | |
184 | # | |
185 | #echo "Ten..." | |
186 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a10.c -c -o a10-${ARCH}.o | |
187 | ${LLVMGCC} ${CCFLAGS} --emit-llvm b10.c -c -o b10-${ARCH}.o | |
188 | ${LLVMGCC} ${CCFLAGS} main10.c -c -o main10-${ARCH}.o | |
189 | ${LLVMGCC} ${CCFLAGS} a10-${ARCH}.o b10-${ARCH}.o main10-${ARCH}.o -o main10-${ARCH} | |
190 | ${PASS_IFF_GOOD_MACHO} main10-${ARCH} | |
191 | ||
192 | eleven: | |
193 | # | |
194 | # llvm : a11.c | |
195 | # MachO : main11.c | |
196 | # | |
197 | #echo "Eleven..." | |
198 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a11.c -c -o a11-${ARCH}.o | |
199 | ${LLVMGCC} ${CCFLAGS} main11.c -c -o main11-${ARCH}.o | |
200 | ${LLVMGCC} ${CCFLAGS} a11-${ARCH}.o main11-${ARCH}.o -o main11-${ARCH} | |
201 | ${PASS_IFF_GOOD_MACHO} main11-${ARCH} | |
202 | ./main11-${ARCH} >& /dev/null | |
203 | ||
204 | twelve: | |
205 | # | |
206 | # llvm : a12.c | |
207 | # MachO : main12.c | |
208 | # | |
209 | #echo "Tweleve..." | |
210 | ${LLVMGCC} ${CCFLAGS} --emit-llvm a12.c -c -o a12-${ARCH}.o | |
211 | ${LLVMGCC} ${CCFLAGS} main12.c -c -o main12-${ARCH}.o | |
212 | ${LLVMGCC} ${CCFLAGS} a12-${ARCH}.o main12-${ARCH}.o -o main12-${ARCH} | |
213 | ${PASS_IFF_GOOD_MACHO} main12-${ARCH} | |
214 | ./main12-${ARCH} | |
215 | ||
216 | thirteen: | |
217 | # | |
218 | # llvm : a13.cc | |
219 | # MachO : main13.cc | |
220 | # | |
221 | # echo "Thirteen..." | |
222 | ${LLVMGCC} ${CXXFLAGS} --emit-llvm a13.cc -c -o a13-${ARCH}.o | |
223 | ${LLVMGCC} ${CXXFLAGS} main13.cc -c -o main13-${ARCH}.o | |
224 | ${LLVMGXX} a13-${ARCH}.o main13-${ARCH}.o -o main13-${ARCH} | |
225 | ${PASS_IFF_GOOD_MACHO} main13-${ARCH} | |
226 | ||
227 | ||
228 | clean: | |
229 | rm -rf *.o main*-* big.* |