[PATCH 4/6] bsps: Move version.c and use bspopts.h
sebastian.huber at embedded-brains.de
Wed Apr 4 07:23:43 UTC 2018
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 cry.
> 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:
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 perl.
> 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
> -BSP_SUBDIRS="$BSP_SUBDIRS make"
> +## 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>
>> #ifndef RTEMS_VERSION
>> #error "Missing RTEMS_VERSION"
>> @@ -23,4 +25,5 @@
>> const char _RTEMS_version =
>> - "rtems-" RTEMS_VERSION " (" CPU_NAME "/" CPU_MODEL_NAME "/" RTEMS_BSP ")";
>> + "rtems-" RTEMS_VERSION " (" CPU_NAME "/" CPU_MODEL_NAME "/"
>> + RTEMS_XSTRING( RTEMS_BSP ) ")";
>> 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)
>> BSP_SUBDIRS="$BSP_SUBDIRS lib/libbsp"
>> BSP_SUBDIRS="$BSP_SUBDIRS libchip"
>> -BSP_SUBDIRS="$BSP_SUBDIRS support"
>> BSP_SUBDIRS="$BSP_SUBDIRS wrapup"
>> # 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
>> -AM_CPPFLAGS += -DRTEMS_BSP=\"@RTEMS_BSP@\"
>> -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.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel