On 04/04/18 04:23, Chris Johns wrote:
Hi Sebastian,

I do like the use of shared.am to add sources to a BSP. It hides what is being
built and at this point in time I actually feel a clear view in one place is
better than another level of indirection.

Do you have more sources you wish to add this way?

Yes, see patch 6. I would like to add the libchip stuff as well and later more sources, e.g. bootcard.c.

I sense a number of the shared BSP automake decls could be moving.

As stated before I have a dislike of the includes in the build system because
they are chaotic and abused. This is not our fault, it is what we inherited.
They are hiding too many things and it makes it hard to figure out what is
happening. I am currently struggling to understand what is being done by
automake and what we do in a number of places and that is not great and this is
largely due to all the includes and overloaded use of file names with different
functionality, ie local.am.

Upon review of the above and my other comments I wonder if the name 'shared.am'
and the location in the BSP Makefile.am file makes it look like a build
infrastructure file and this is what I am struggling with rather than the
purpose of the change. When I saw another file next to local.am I had a little 

What if the include is positioned before the build infrastructure related
includes (with some white space) and files given a specific name, for example:

  include $(srcdir)/../../../../../../bsps/shared/source-version.am

I would like to simplify the BSP build area to use only one Makefile.am (c/src/lib/libbsp/@RTEMS_CPU@/@RTEMS_BSP_FAMILY@/Makefile.am and no libraries wrapup, etc. I would like to reduce also the copy and paste in these Makefile.am. What about:

include $(srcdir)/../../../../../../bsps/shared/shared-sources.am

In general *-sources.am for files which contain

libbsp_a_SOURCES += ...


If you plan to add others it does require updating the related BSP Makefile.am
files but I doubt this is a big issue other than during these refactoring tasks.

Also can we please decide on which automake we are going to use and sort that
out before we push any more major changes? It would save needing to retest and
maybe fix issues exposed with an update. That would be a wasted effort. I
currently doubt the cpukit and BSP tree will have a problem as it stands with
some changes and my testing seems to confirm this but the testsuite needs work.
If you wish to move the BSP source and maybe change the number of configure's
run I feel having a clear direction set is important.

I am not sure if we should touch the Automake version at the moment. I would rather try to simplify the build system with the current Automake version first. I think we need only three Makefile.am and two configure.ac:

Makefile.am (builds also cpukit, uses AM_CONDITIONAL for cpukit/score/cpu/*)
testsuites/Makefile.am (uses AM_CONDITIONAL for each test)

Repeating my comments here ...

I feel we need to update automake to mitigate the dependency risk older versions
of automake have or may have with other dependent host programs, for example 

An example of a breakage with the latest automake is:

diff --git a/c/src/configure.ac b/c/src/configure.ac
index ff7c7752ed..705fd4af54 100644
--- a/c/src/configure.ac
+++ b/c/src/configure.ac
@@ -125,8 +125,11 @@ RTEMS_BSP_CONFIG_SUBDIR(
    [test x"$multilib" = xno])

  ## Note: the order of the directories below is essential
+## Note note: this whole implementation is a bad hack and is broken
+## in the latest automake as would be expected, the order of post commands
+## has changed so as a result we need to use the "hack" and not the documented
+## standard way.

  # Is there code where there should be for this BSP?

This is fragile stuff. Just check the comment in the file containing


On 03/04/2018 23:27, Sebastian Huber wrote:
This patch is a part of the BSP source reorganization.

Update #3285.
Update #3375.
  c/src/support/version.c => bsps/shared/rtems-version.c |  5 ++++-
  bsps/shared/shared.am                                  |  1 +
  c/src/configure.ac                                     |  2 --
  c/src/support/Makefile.am                              | 10 ----------
  c/src/wrapup/Makefile.am                               |  2 --
  5 files changed, 5 insertions(+), 15 deletions(-)
  rename c/src/support/version.c => bsps/shared/rtems-version.c (83%)
  delete mode 100644 c/src/support/Makefile.am

diff --git a/c/src/support/version.c b/bsps/shared/rtems-version.c
similarity index 83%
rename from c/src/support/version.c
rename to bsps/shared/rtems-version.c
index 4caf0bd3f7..16f74070bc 100644
--- a/c/src/support/version.c
+++ b/bsps/shared/rtems-version.c
@@ -9,6 +9,8 @@
#include <rtems/system.h> +#include <bspopts.h>
  #error "Missing RTEMS_VERSION"
@@ -23,4 +25,5 @@
const char _RTEMS_version[] =
+  "rtems-" RTEMS_VERSION " (" CPU_NAME "/" CPU_MODEL_NAME "/"
diff --git a/bsps/shared/shared.am b/bsps/shared/shared.am
index e69de29bb2..854710d804 100644
--- a/bsps/shared/shared.am
+++ b/bsps/shared/shared.am
@@ -0,0 +1 @@
+libbsp_a_SOURCES += ../../../../../../bsps/shared/rtems-version.c
diff --git a/c/src/configure.ac b/c/src/configure.ac
index ff7c7752ed..508f20f18e 100644
--- a/c/src/configure.ac
+++ b/c/src/configure.ac
@@ -134,7 +134,6 @@ AC_SUBST(libbsp_cpu_subdir,$RTEMS_CPU)
# Build testsuites
@@ -168,7 +167,6 @@ AC_CONFIG_FILES([Makefile],
diff --git a/c/src/support/Makefile.am b/c/src/support/Makefile.am
deleted file mode 100644
index 66c81546c2..0000000000
--- a/c/src/support/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-include $(top_srcdir)/automake/compile.am
-noinst_LIBRARIES = libsupport.a
-libsupport_a_SOURCES = version.c
-libsupport_a_CPPFLAGS = $(AM_CPPFLAGS)
-include $(top_srcdir)/automake/local.am
diff --git a/c/src/wrapup/Makefile.am b/c/src/wrapup/Makefile.am
index a52b90df6f..42d283ab6a 100644
--- a/c/src/wrapup/Makefile.am
+++ b/c/src/wrapup/Makefile.am
@@ -13,8 +13,6 @@ TMPINSTALL_FILES = $(PROJECT_LIB)/librtemsbsp.a
CLEANFILES = o-optimize/librtemsbsp.a -SRCS = ../support/libsupport.a
  SRCS += ../lib/libbsp/@RTEMS_CPU@/@RTEMS_BSP_FAMILY@/libbsp.a
SRCS += ../libchip/libflash.a

Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

devel mailing list

Reply via email to