diff options
Diffstat (limited to 'apps/plugins/puzzles/src/compile')
-rwxr-xr-x | apps/plugins/puzzles/src/compile | 348 |
1 files changed, 0 insertions, 348 deletions
diff --git a/apps/plugins/puzzles/src/compile b/apps/plugins/puzzles/src/compile deleted file mode 100755 index 2ab71e4ea1..0000000000 --- a/apps/plugins/puzzles/src/compile +++ /dev/null | |||
@@ -1,348 +0,0 @@ | |||
1 | #! /bin/sh | ||
2 | # Wrapper for compilers which do not understand '-c -o'. | ||
3 | |||
4 | scriptversion=2016-01-11.22; # UTC | ||
5 | |||
6 | # Copyright (C) 1999-2017 Free Software Foundation, Inc. | ||
7 | # Written by Tom Tromey <tromey@cygnus.com>. | ||
8 | # | ||
9 | # This program is free software; you can redistribute it and/or modify | ||
10 | # it under the terms of the GNU General Public License as published by | ||
11 | # the Free Software Foundation; either version 2, or (at your option) | ||
12 | # any later version. | ||
13 | # | ||
14 | # This program is distributed in the hope that it will be useful, | ||
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | # GNU General Public License for more details. | ||
18 | # | ||
19 | # You should have received a copy of the GNU General Public License | ||
20 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
21 | |||
22 | # As a special exception to the GNU General Public License, if you | ||
23 | # distribute this file as part of a program that contains a | ||
24 | # configuration script generated by Autoconf, you may include it under | ||
25 | # the same distribution terms that you use for the rest of that program. | ||
26 | |||
27 | # This file is maintained in Automake, please report | ||
28 | # bugs to <bug-automake@gnu.org> or send patches to | ||
29 | # <automake-patches@gnu.org>. | ||
30 | |||
31 | nl=' | ||
32 | ' | ||
33 | |||
34 | # We need space, tab and new line, in precisely that order. Quoting is | ||
35 | # there to prevent tools from complaining about whitespace usage. | ||
36 | IFS=" "" $nl" | ||
37 | |||
38 | file_conv= | ||
39 | |||
40 | # func_file_conv build_file lazy | ||
41 | # Convert a $build file to $host form and store it in $file | ||
42 | # Currently only supports Windows hosts. If the determined conversion | ||
43 | # type is listed in (the comma separated) LAZY, no conversion will | ||
44 | # take place. | ||
45 | func_file_conv () | ||
46 | { | ||
47 | file=$1 | ||
48 | case $file in | ||
49 | / | /[!/]*) # absolute file, and not a UNC file | ||
50 | if test -z "$file_conv"; then | ||
51 | # lazily determine how to convert abs files | ||
52 | case `uname -s` in | ||
53 | MINGW*) | ||
54 | file_conv=mingw | ||
55 | ;; | ||
56 | CYGWIN*) | ||
57 | file_conv=cygwin | ||
58 | ;; | ||
59 | *) | ||
60 | file_conv=wine | ||
61 | ;; | ||
62 | esac | ||
63 | fi | ||
64 | case $file_conv/,$2, in | ||
65 | *,$file_conv,*) | ||
66 | ;; | ||
67 | mingw/*) | ||
68 | file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` | ||
69 | ;; | ||
70 | cygwin/*) | ||
71 | file=`cygpath -m "$file" || echo "$file"` | ||
72 | ;; | ||
73 | wine/*) | ||
74 | file=`winepath -w "$file" || echo "$file"` | ||
75 | ;; | ||
76 | esac | ||
77 | ;; | ||
78 | esac | ||
79 | } | ||
80 | |||
81 | # func_cl_dashL linkdir | ||
82 | # Make cl look for libraries in LINKDIR | ||
83 | func_cl_dashL () | ||
84 | { | ||
85 | func_file_conv "$1" | ||
86 | if test -z "$lib_path"; then | ||
87 | lib_path=$file | ||
88 | else | ||
89 | lib_path="$lib_path;$file" | ||
90 | fi | ||
91 | linker_opts="$linker_opts -LIBPATH:$file" | ||
92 | } | ||
93 | |||
94 | # func_cl_dashl library | ||
95 | # Do a library search-path lookup for cl | ||
96 | func_cl_dashl () | ||
97 | { | ||
98 | lib=$1 | ||
99 | found=no | ||
100 | save_IFS=$IFS | ||
101 | IFS=';' | ||
102 | for dir in $lib_path $LIB | ||
103 | do | ||
104 | IFS=$save_IFS | ||
105 | if $shared && test -f "$dir/$lib.dll.lib"; then | ||
106 | found=yes | ||
107 | lib=$dir/$lib.dll.lib | ||
108 | break | ||
109 | fi | ||
110 | if test -f "$dir/$lib.lib"; then | ||
111 | found=yes | ||
112 | lib=$dir/$lib.lib | ||
113 | break | ||
114 | fi | ||
115 | if test -f "$dir/lib$lib.a"; then | ||
116 | found=yes | ||
117 | lib=$dir/lib$lib.a | ||
118 | break | ||
119 | fi | ||
120 | done | ||
121 | IFS=$save_IFS | ||
122 | |||
123 | if test "$found" != yes; then | ||
124 | lib=$lib.lib | ||
125 | fi | ||
126 | } | ||
127 | |||
128 | # func_cl_wrapper cl arg... | ||
129 | # Adjust compile command to suit cl | ||
130 | func_cl_wrapper () | ||
131 | { | ||
132 | # Assume a capable shell | ||
133 | lib_path= | ||
134 | shared=: | ||
135 | linker_opts= | ||
136 | for arg | ||
137 | do | ||
138 | if test -n "$eat"; then | ||
139 | eat= | ||
140 | else | ||
141 | case $1 in | ||
142 | -o) | ||
143 | # configure might choose to run compile as 'compile cc -o foo foo.c'. | ||
144 | eat=1 | ||
145 | case $2 in | ||
146 | *.o | *.[oO][bB][jJ]) | ||
147 | func_file_conv "$2" | ||
148 | set x "$@" -Fo"$file" | ||
149 | shift | ||
150 | ;; | ||
151 | *) | ||
152 | func_file_conv "$2" | ||
153 | set x "$@" -Fe"$file" | ||
154 | shift | ||
155 | ;; | ||
156 | esac | ||
157 | ;; | ||
158 | -I) | ||
159 | eat=1 | ||
160 | func_file_conv "$2" mingw | ||
161 | set x "$@" -I"$file" | ||
162 | shift | ||
163 | ;; | ||
164 | -I*) | ||
165 | func_file_conv "${1#-I}" mingw | ||
166 | set x "$@" -I"$file" | ||
167 | shift | ||
168 | ;; | ||
169 | -l) | ||
170 | eat=1 | ||
171 | func_cl_dashl "$2" | ||
172 | set x "$@" "$lib" | ||
173 | shift | ||
174 | ;; | ||
175 | -l*) | ||
176 | func_cl_dashl "${1#-l}" | ||
177 | set x "$@" "$lib" | ||
178 | shift | ||
179 | ;; | ||
180 | -L) | ||
181 | eat=1 | ||
182 | func_cl_dashL "$2" | ||
183 | ;; | ||
184 | -L*) | ||
185 | func_cl_dashL "${1#-L}" | ||
186 | ;; | ||
187 | -static) | ||
188 | shared=false | ||
189 | ;; | ||
190 | -Wl,*) | ||
191 | arg=${1#-Wl,} | ||
192 | save_ifs="$IFS"; IFS=',' | ||
193 | for flag in $arg; do | ||
194 | IFS="$save_ifs" | ||
195 | linker_opts="$linker_opts $flag" | ||
196 | done | ||
197 | IFS="$save_ifs" | ||
198 | ;; | ||
199 | -Xlinker) | ||
200 | eat=1 | ||
201 | linker_opts="$linker_opts $2" | ||
202 | ;; | ||
203 | -*) | ||
204 | set x "$@" "$1" | ||
205 | shift | ||
206 | ;; | ||
207 | *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) | ||
208 | func_file_conv "$1" | ||
209 | set x "$@" -Tp"$file" | ||
210 | shift | ||
211 | ;; | ||
212 | *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) | ||
213 | func_file_conv "$1" mingw | ||
214 | set x "$@" "$file" | ||
215 | shift | ||
216 | ;; | ||
217 | *) | ||
218 | set x "$@" "$1" | ||
219 | shift | ||
220 | ;; | ||
221 | esac | ||
222 | fi | ||
223 | shift | ||
224 | done | ||
225 | if test -n "$linker_opts"; then | ||
226 | linker_opts="-link$linker_opts" | ||
227 | fi | ||
228 | exec "$@" $linker_opts | ||
229 | exit 1 | ||
230 | } | ||
231 | |||
232 | eat= | ||
233 | |||
234 | case $1 in | ||
235 | '') | ||
236 | echo "$0: No command. Try '$0 --help' for more information." 1>&2 | ||
237 | exit 1; | ||
238 | ;; | ||
239 | -h | --h*) | ||
240 | cat <<\EOF | ||
241 | Usage: compile [--help] [--version] PROGRAM [ARGS] | ||
242 | |||
243 | Wrapper for compilers which do not understand '-c -o'. | ||
244 | Remove '-o dest.o' from ARGS, run PROGRAM with the remaining | ||
245 | arguments, and rename the output as expected. | ||
246 | |||
247 | If you are trying to build a whole package this is not the | ||
248 | right script to run: please start by reading the file 'INSTALL'. | ||
249 | |||
250 | Report bugs to <bug-automake@gnu.org>. | ||
251 | EOF | ||
252 | exit $? | ||
253 | ;; | ||
254 | -v | --v*) | ||
255 | echo "compile $scriptversion" | ||
256 | exit $? | ||
257 | ;; | ||
258 | cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ | ||
259 | icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) | ||
260 | func_cl_wrapper "$@" # Doesn't return... | ||
261 | ;; | ||
262 | esac | ||
263 | |||
264 | ofile= | ||
265 | cfile= | ||
266 | |||
267 | for arg | ||
268 | do | ||
269 | if test -n "$eat"; then | ||
270 | eat= | ||
271 | else | ||
272 | case $1 in | ||
273 | -o) | ||
274 | # configure might choose to run compile as 'compile cc -o foo foo.c'. | ||
275 | # So we strip '-o arg' only if arg is an object. | ||
276 | eat=1 | ||
277 | case $2 in | ||
278 | *.o | *.obj) | ||
279 | ofile=$2 | ||
280 | ;; | ||
281 | *) | ||
282 | set x "$@" -o "$2" | ||
283 | shift | ||
284 | ;; | ||
285 | esac | ||
286 | ;; | ||
287 | *.c) | ||
288 | cfile=$1 | ||
289 | set x "$@" "$1" | ||
290 | shift | ||
291 | ;; | ||
292 | *) | ||
293 | set x "$@" "$1" | ||
294 | shift | ||
295 | ;; | ||
296 | esac | ||
297 | fi | ||
298 | shift | ||
299 | done | ||
300 | |||
301 | if test -z "$ofile" || test -z "$cfile"; then | ||
302 | # If no '-o' option was seen then we might have been invoked from a | ||
303 | # pattern rule where we don't need one. That is ok -- this is a | ||
304 | # normal compilation that the losing compiler can handle. If no | ||
305 | # '.c' file was seen then we are probably linking. That is also | ||
306 | # ok. | ||
307 | exec "$@" | ||
308 | fi | ||
309 | |||
310 | # Name of file we expect compiler to create. | ||
311 | cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` | ||
312 | |||
313 | # Create the lock directory. | ||
314 | # Note: use '[/\\:.-]' here to ensure that we don't use the same name | ||
315 | # that we are using for the .o file. Also, base the name on the expected | ||
316 | # object file name, since that is what matters with a parallel build. | ||
317 | lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d | ||
318 | while true; do | ||
319 | if mkdir "$lockdir" >/dev/null 2>&1; then | ||
320 | break | ||
321 | fi | ||
322 | sleep 1 | ||
323 | done | ||
324 | # FIXME: race condition here if user kills between mkdir and trap. | ||
325 | trap "rmdir '$lockdir'; exit 1" 1 2 15 | ||
326 | |||
327 | # Run the compile. | ||
328 | "$@" | ||
329 | ret=$? | ||
330 | |||
331 | if test -f "$cofile"; then | ||
332 | test "$cofile" = "$ofile" || mv "$cofile" "$ofile" | ||
333 | elif test -f "${cofile}bj"; then | ||
334 | test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" | ||
335 | fi | ||
336 | |||
337 | rmdir "$lockdir" | ||
338 | exit $ret | ||
339 | |||
340 | # Local Variables: | ||
341 | # mode: shell-script | ||
342 | # sh-indentation: 2 | ||
343 | # eval: (add-hook 'write-file-hooks 'time-stamp) | ||
344 | # time-stamp-start: "scriptversion=" | ||
345 | # time-stamp-format: "%:y-%02m-%02d.%02H" | ||
346 | # time-stamp-time-zone: "UTC0" | ||
347 | # time-stamp-end: "; # UTC" | ||
348 | # End: | ||