| @@ -1,15 +1,15 @@ | | | @@ -1,15 +1,15 @@ |
1 | #!/bin/sh | | 1 | #!/bin/sh |
2 | # $NetBSD: mknative-gcc,v 1.36 2009/11/30 09:32:13 uebayasi Exp $ | | 2 | # $NetBSD: mknative-gcc,v 1.37 2009/11/30 09:33:36 uebayasi Exp $ |
3 | # | | 3 | # |
4 | # Shell script for generating all the constants needed for a native | | 4 | # Shell script for generating all the constants needed for a native |
5 | # platform build of src/gnu/dist/gcc. | | 5 | # platform build of src/gnu/dist/gcc. |
6 | # | | 6 | # |
7 | | | 7 | |
8 | # initialise | | 8 | # initialise |
9 | | | 9 | |
10 | _TMPDIR=$2 | | 10 | _TMPDIR=$2 |
11 | _TOP=$3 | | 11 | _TOP=$3 |
12 | _PLATFORM=$4 | | 12 | _PLATFORM=$4 |
13 | _VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` | | 13 | _VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` |
14 | _GNU_DIST=`cd ${_VPATH}; pwd` | | 14 | _GNU_DIST=`cd ${_VPATH}; pwd` |
15 | | | 15 | |
| @@ -187,42 +187,72 @@ get_libgcc_new_analyze () { | | | @@ -187,42 +187,72 @@ get_libgcc_new_analyze () { |
187 | get_libgcc_list_objs_libs | writefile ${libgcc_db_objs_libs} | | 187 | get_libgcc_list_objs_libs | writefile ${libgcc_db_objs_libs} |
188 | get_libgcc_list_objs_srcs | writefile ${libgcc_db_objs_srcs} | | 188 | get_libgcc_list_objs_srcs | writefile ${libgcc_db_objs_srcs} |
189 | get_libgcc_list_objs_tmpsrcs | writefile ${libgcc_db_objs_tmpsrcs} | | 189 | get_libgcc_list_objs_tmpsrcs | writefile ${libgcc_db_objs_tmpsrcs} |
190 | get_libgcc_list_objs_cppflags | writefile ${libgcc_db_objs_cppflags} | | 190 | get_libgcc_list_objs_cppflags | writefile ${libgcc_db_objs_cppflags} |
191 | get_libgcc_list_objs_copts | writefile ${libgcc_db_objs_copts} | | 191 | get_libgcc_list_objs_copts | writefile ${libgcc_db_objs_copts} |
192 | | | 192 | |
193 | for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do | | 193 | for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do |
194 | get_libgcc_list_tmpsrcs $_lib | | 194 | get_libgcc_list_tmpsrcs $_lib |
195 | done | | 195 | done |
196 | } | | 196 | } |
197 | | | 197 | |
198 | ##### | | 198 | ##### |
199 | | | 199 | |
| | | 200 | get_libgcc_gen_tmpsrcs_tmpsrcs () { |
| | | 201 | local _lib=$1 |
| | | 202 | |
| | | 203 | printf '\n' |
| | | 204 | printf 'TMPSRCS.%s = \\\n' $_lib |
| | | 205 | sed -e 's,^, ,; s,$, \\,' $_TOP/${libgcc_db_tmpsrcs}.tmpsrcs.${_lib%.*} |
| | | 206 | } |
| | | 207 | |
| | | 208 | get_libgcc_gen_tmpsrcs_tmpfpsrcs () { |
| | | 209 | local _lib=$1 |
| | | 210 | |
| | | 211 | printf '\n' |
| | | 212 | printf 'TMPFPSRCS.%s = \\\n' $_lib |
| | | 213 | sed -e 's,^, ,; s,$, \\,' $_TOP/${libgcc_db_tmpsrcs}.tmpfpsrcs.${_lib%.*} |
| | | 214 | } |
| | | 215 | |
| | | 216 | get_libgcc_gen_tmpsrcs_tmpasmsrcs () { |
| | | 217 | local _lib=$1 |
| | | 218 | |
| | | 219 | printf '\n' |
| | | 220 | printf 'TMPASMSRCS.%s = \\\n' $_lib |
| | | 221 | sed -e 's,^, ,; s,$, \\,' $_TOP/${libgcc_db_tmpsrcs}.tmpasmsrcs.${_lib%.*} | \ |
| | | 222 | sed -e 's,LIB1ASMSRC,G_&,' |
| | | 223 | } |
| | | 224 | |
200 | get_libgcc_gen_srcs () { | | 225 | get_libgcc_gen_srcs () { |
201 | local _lib=$1 | | 226 | local _lib=$1 |
202 | | | 227 | |
203 | printf '\n' | | 228 | printf '\n' |
204 | printf 'SRCS.%s = \\\n' $_lib | | 229 | printf 'SRCS.%s = \\\n' $_lib |
205 | { | | 230 | { |
206 | comm -23 $_TOP/${libgcc_db_funcs}.${_lib%.*} $_TOP/${libgcc_db_funcs}.S | \ | | 231 | comm -23 $_TOP/${libgcc_db_funcs}.${_lib%.*} $_TOP/${libgcc_db_funcs}.S | \ |
207 | sed -e 's,$,.c,; s,^,tmp_,' | | 232 | sed -e 's,$,.c,; s,^,tmp_,' |
208 | comm -12 $_TOP/${libgcc_db_funcs}.${_lib%.*} $_TOP/${libgcc_db_funcs}.S | \ | | 233 | comm -12 $_TOP/${libgcc_db_funcs}.${_lib%.*} $_TOP/${libgcc_db_funcs}.S | \ |
209 | sed -e 's,$,.S,; s,^,tmp_,' | | 234 | sed -e 's,$,.S,; s,^,tmp_,' |
210 | } | sort | \ | | 235 | } | sort | \ |
211 | sed -e 's,^, ,; s,$, \\,' | | 236 | sed -e 's,^, ,; s,$, \\,' |
212 | } | | 237 | } |
213 | | | 238 | |
214 | get_libgcc_new_generate () { | | 239 | get_libgcc_new_generate () { |
215 | for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do | | 240 | for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do |
| | | 241 | for _tmp in tmpsrcs tmpfpsrcs tmpasmsrcs; do |
| | | 242 | eval get_libgcc_gen_tmpsrcs_${_tmp} $_lib | \ |
| | | 243 | write_mk ${_machine_arch_subdir}/${_lib%.*}.tmpsrcs.${_tmp}.mk |
| | | 244 | done |
| | | 245 | |
216 | get_libgcc_gen_srcs $_lib | \ | | 246 | get_libgcc_gen_srcs $_lib | \ |
217 | write_mk ${_machine_arch_subdir}/${_lib%.*}.srcs.mk | | 247 | write_mk ${_machine_arch_subdir}/${_lib%.*}.srcs.mk |
218 | done | | 248 | done |
219 | } | | 249 | } |
220 | | | 250 | |
221 | ##### | | 251 | ##### |
222 | | | 252 | |
223 | get_libgcc_new () { | | 253 | get_libgcc_new () { |
224 | _subdir="$1" | | 254 | _subdir="$1" |
225 | | | 255 | |
226 | # List of generated files. | | 256 | # List of generated files. |
227 | | | 257 | |
228 | _machine_arch_subdir=gnu/lib/lib$_subdir/arch${_archsubdir}/$MACHINE_ARCH | | 258 | _machine_arch_subdir=gnu/lib/lib$_subdir/arch${_archsubdir}/$MACHINE_ARCH |