This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
[PATCH][Newlib][libgloss] - Semihosting v2 general build changes (1 / 5)
- From: Tamar Christina <Tamar dot Christina at arm dot com>
- To: "newlib at sourceware dot org" <newlib at sourceware dot org>
- Cc: nd <nd at arm dot com>, "jjohnstn at redhat dot com" <jjohnstn at redhat dot com>
- Date: Mon, 3 Jul 2017 16:53:34 +0000
- Subject: [PATCH][Newlib][libgloss] - Semihosting v2 general build changes (1 / 5)
- Authentication-results: sourceware.org; auth=none
- Authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com;
- Nodisclaimer: True
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
Hi All,
This patch adds the general build system changes needed
in order to compile and create the new libraries for Semihosting v2.
This works by creating a similar recursive make target that is modeled
after the existing multilib makefile config-ml.in.
OK for master?
PS. I do not have commit rights so if OK can someone apply for me?
Thanks,
Tamar
libgloss/
2017-07-03 Tamar Christina <tamar.christina@arm.com>
* multi-build.in (multi-do): New.
diff --git a/libgloss/multi-build.in b/libgloss/multi-build.in
new file mode 100644
index 0000000000000000000000000000000000000000..0bd12cfd95769d9ec193936b2781bc5cc4db7809
--- /dev/null
+++ b/libgloss/multi-build.in
@@ -0,0 +1,61 @@
+PWD_COMMAND=$${PWDCMD-pwd}
+
+# FIXME: There should be an @-sign in front of the `if'.
+# Leave out until this is tested a bit more.
+multi-do:
+ if [ -z "$(MULTIDIRS)" ]; then \
+ true; \
+ else \
+ rootpre=`${PWD_COMMAND}`/; export rootpre; \
+ srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \
+ lib=`echo "$${rootpre}" | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; export lib; \
+ compiler="$(CC)"; \
+ for dir in $(MULTIDIRS); do \
+ if [ "$${dir}" = "." ]; then \
+ true; \
+ else \
+ destpre=`echo $${rootpre}/$${dir}`/; export destpre; \
+ if ! test -d $${destpre} ; then \
+ mkdir -p $${destpre}; \
+ cp config.status $${destpre}; \
+ cd $${destpre}; \
+ $(SHELL) config.status; \
+ sed -e "s:^MULTIDIRS\s*+=.*$$:MULTIDIRS = :" \
+ -e "s:^MULTILIBNAME\s*=.*$$:MULTILIBNAME = MULTIDIR_$${dir}_NAME:" \
+ -e "s:^MULTI_FLAGS_FOR_TARGET\s*=.*$$:MULTI_FLAGS_FOR_TARGET = MULTIDIR_$${dir}_FLAGS:" \
+ -e "s:^objdir\s*=.*$$:objdir = ..:" \
+ Makefile > Makefile.tem; \
+ rm -f Makefile; \
+ mv Makefile.tem Makefile; \
+ else \
+ cd $${destpre}; \
+ fi; \
+ if ($(MAKE) $(FLAGS_TO_PASS) \
+ CFLAGS="$(CFLAGS)" \
+ CCASFLAGS="$(CCASFLAGS)" \
+ FCFLAGS="$(FCFLAGS)" \
+ FFLAGS="$(FFLAGS)" \
+ ADAFLAGS="$(ADAFLAGS)" \
+ prefix="$(prefix)" \
+ exec_prefix="$(exec_prefix)" \
+ GCJFLAGS="$(GCJFLAGS)" \
+ GOCFLAGS="$(GOCFLAGS)" \
+ CXXFLAGS="$(CXXFLAGS)" \
+ LIBCFLAGS="$(LIBCFLAGS)" \
+ LIBCXXFLAGS="$(LIBCXXFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" \
+ MULTIFLAGS="" \
+ DESTDIR="" \
+ SOURCE="${srcdir}/" \
+ INSTALL="$(INSTALL)" \
+ INSTALL_DATA="$(INSTALL_DATA)" \
+ INSTALL_PROGRAM="$(INSTALL_PROGRAM)" \
+ INSTALL_SCRIPT="$(INSTALL_SCRIPT)" \
+ $(DO)); then \
+ cd $${rootpre}; \
+ else \
+ exit 1; \
+ fi; \
+ fi; \
+ done; \
+ fi