Skip to content

Commit b12cf72

Browse files
committed
updated some build files
1 parent b4ed0e4 commit b12cf72

File tree

10 files changed

+9567
-5052
lines changed

10 files changed

+9567
-5052
lines changed

aux-build/compile

Lines changed: 226 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#! /bin/sh
2-
# Wrapper for compilers which do not understand `-c -o'.
2+
# Wrapper for compilers which do not understand '-c -o'.
33

4-
scriptversion=2009-10-06.20; # UTC
4+
scriptversion=2024-06-19.01; # UTC
55

6-
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
7-
# Foundation, Inc.
6+
# Copyright (C) 1999-2024 Free Software Foundation, Inc.
87
# Written by Tom Tromey <[email protected]>.
98
#
109
# This program is free software; you can redistribute it and/or modify
@@ -18,7 +17,7 @@ scriptversion=2009-10-06.20; # UTC
1817
# GNU General Public License for more details.
1918
#
2019
# You should have received a copy of the GNU General Public License
21-
# along with this program. If not, see <http://www.gnu.org/licenses/>.
20+
# along with this program. If not, see <https://www.gnu.org/licenses/>.
2221

2322
# As a special exception to the GNU General Public License, if you
2423
# distribute this file as part of a program that contains a
@@ -29,35 +28,244 @@ scriptversion=2009-10-06.20; # UTC
2928
# bugs to <[email protected]> or send patches to
3029
3130

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* | MSYS*)
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/* | msys/*)
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 | *.lo | *.[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+
32234
case $1 in
33235
'')
34-
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
236+
echo "$0: No command. Try '$0 --help' for more information." 1>&2
35237
exit 1;
36238
;;
37239
-h | --h*)
38240
cat <<\EOF
39241
Usage: compile [--help] [--version] PROGRAM [ARGS]
40242
41-
Wrapper for compilers which do not understand `-c -o'.
42-
Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
243+
Wrapper for compilers which do not understand '-c -o'.
244+
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
43245
arguments, and rename the output as expected.
44246
45247
If you are trying to build a whole package this is not the
46-
right script to run: please start by reading the file `INSTALL'.
248+
right script to run: please start by reading the file 'INSTALL'.
47249
48250
Report bugs to <[email protected]>.
251+
GNU Automake home page: <https://www.gnu.org/software/automake/>.
252+
General help using GNU software: <https://www.gnu.org/gethelp/>.
49253
EOF
50254
exit $?
51255
;;
52256
-v | --v*)
53-
echo "compile $scriptversion"
257+
echo "compile (GNU Automake) $scriptversion"
54258
exit $?
55259
;;
260+
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
261+
clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \
262+
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
263+
func_cl_wrapper "$@" # Doesn't return...
264+
;;
56265
esac
57266

58267
ofile=
59268
cfile=
60-
eat=
61269

62270
for arg
63271
do
@@ -66,8 +274,8 @@ do
66274
else
67275
case $1 in
68276
-o)
69-
# configure might choose to run compile as `compile cc -o foo foo.c'.
70-
# So we strip `-o arg' only if arg is an object.
277+
# configure might choose to run compile as 'compile cc -o foo foo.c'.
278+
# So we strip '-o arg' only if arg is an object.
71279
eat=1
72280
case $2 in
73281
*.o | *.obj)
@@ -94,10 +302,10 @@ do
94302
done
95303

96304
if test -z "$ofile" || test -z "$cfile"; then
97-
# If no `-o' option was seen then we might have been invoked from a
305+
# If no '-o' option was seen then we might have been invoked from a
98306
# pattern rule where we don't need one. That is ok -- this is a
99307
# normal compilation that the losing compiler can handle. If no
100-
# `.c' file was seen then we are probably linking. That is also
308+
# '.c' file was seen then we are probably linking. That is also
101309
# ok.
102310
exec "$@"
103311
fi
@@ -106,7 +314,7 @@ fi
106314
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
107315

108316
# Create the lock directory.
109-
# Note: use `[/\\:.-]' here to ensure that we don't use the same name
317+
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
110318
# that we are using for the .o file. Also, base the name on the expected
111319
# object file name, since that is what matters with a parallel build.
112320
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
@@ -135,9 +343,9 @@ exit $ret
135343
# Local Variables:
136344
# mode: shell-script
137345
# sh-indentation: 2
138-
# eval: (add-hook 'write-file-hooks 'time-stamp)
346+
# eval: (add-hook 'before-save-hook 'time-stamp)
139347
# time-stamp-start: "scriptversion="
140348
# time-stamp-format: "%:y-%02m-%02d.%02H"
141-
# time-stamp-time-zone: "UTC"
349+
# time-stamp-time-zone: "UTC0"
142350
# time-stamp-end: "; # UTC"
143351
# End:

0 commit comments

Comments
 (0)