Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/tools/gcc Now that we know what sources are needed to build ...



details:   https://anonhg.NetBSD.org/src/rev/67284b8b3a77
branches:  trunk
changeset: 749458:67284b8b3a77
user:      uebayasi <uebayasi%NetBSD.org@localhost>
date:      Mon Nov 30 09:50:59 2009 +0000

description:
Now that we know what sources are needed to build a given library, we need
the rules how to build those sources.  Generate makefiles defining ${COPTS},
${CPPFLAGS}, and ${SRCS} (== template).

Note that ${CPPFLAGS} is actually dfined as _CPPFLAGS like
        _CPPFLAGS.tmp___gcc_bcmp.c=-DL__gcc_bcmp
and used to generate wrapper files (e.g. tmp___gcc_bcmp.c).  Otherwise it's
automagically passed to ${CC} by bsd.*.mk.

diffstat:

 tools/gcc/mknative-gcc |  43 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 41 insertions(+), 2 deletions(-)

diffs (72 lines):

diff -r 73843657c82d -r 67284b8b3a77 tools/gcc/mknative-gcc
--- a/tools/gcc/mknative-gcc    Mon Nov 30 09:34:39 2009 +0000
+++ b/tools/gcc/mknative-gcc    Mon Nov 30 09:50:59 2009 +0000
@@ -1,5 +1,5 @@
 #!/bin/sh
-#      $NetBSD: mknative-gcc,v 1.37 2009/11/30 09:33:36 uebayasi Exp $
+#      $NetBSD: mknative-gcc,v 1.38 2009/11/30 09:50:59 uebayasi Exp $
 #
 # Shell script for generating all the constants needed for a native
 # platform build of src/gnu/dist/gcc.
@@ -236,6 +236,40 @@
        sed -e 's,^,    ,; s,$, \\,'
 }
 
+_lookup_objs () {
+       local _obj=$1; local _key=$2
+
+       eval grep \^$_obj\\\     \$_TOP/\${libgcc_db_objs_${_key}} | cut -f2
+}
+
+get_libgcc_gen_srcs_tmpsrcs () {
+       cut -f1 $_TOP/${libgcc_db_objs_libs} | \
+       while read _obj; do
+               printf 'SRCS.tmp_%s=%s\n' \
+                       "$( _lookup_objs $_obj srcs )" \
+                       "$( _lookup_objs $_obj tmpsrcs )"
+       done | \
+       sed -e 's,\$(\(.*\)),${G_\1},'
+}
+
+get_libgcc_gen_srcs_cppflags () {
+       cut -f1 $_TOP/${libgcc_db_objs_libs} | \
+       while read _obj; do
+               printf '_CPPFLAGS.tmp_%s=%s\n' \
+                       "$( _lookup_objs $_obj srcs )" \
+                       "$( _lookup_objs $_obj cppflags | xargs )"
+       done
+}
+
+get_libgcc_gen_srcs_copts () {
+       cut -f1 $_TOP/${libgcc_db_objs_libs} | \
+       while read _obj; do
+               printf 'COPTS.tmp_%s=%s\n' \
+                       "$( _lookup_objs $_obj srcs )" \
+                       "$( _lookup_objs $_obj copts | xargs )"
+       done
+}
+
 get_libgcc_new_generate () {
        for _lib in libgcc_s.so libgcc.a libgcc_eh.a libgcov.a; do
                for _tmp in tmpsrcs tmpfpsrcs tmpasmsrcs; do
@@ -246,6 +280,11 @@
                get_libgcc_gen_srcs $_lib | \
                write_mk ${_machine_arch_subdir}/${_lib%.*}.srcs.mk
        done
+
+       for _arg in tmpsrcs cppflags copts; do
+               eval get_libgcc_gen_srcs_${_arg} | \
+               eval writefile \$libgcc_srcs_mk_${_arg}
+       done
 }
 
 #####
@@ -268,7 +307,7 @@
        get_libgcc_new_analyze
 
        libgcc_srcs_mk=${_machine_arch_subdir}/srcs.mk
-       libgcc_srcs_mk_tmpsrc=${_machine_arch_subdir}/srcs.tmpsrc.mk
+       libgcc_srcs_mk_tmpsrcs=${_machine_arch_subdir}/srcs.tmpsrcs.mk
        libgcc_srcs_mk_cppflags=${_machine_arch_subdir}/srcs.cppflags.mk
        libgcc_srcs_mk_copts=${_machine_arch_subdir}/srcs.copts.mk
 



Home | Main Index | Thread Index | Old Index