source: rtems/testsuites/smptests/configure.ac @ 2afb22b

5
Last change on this file since 2afb22b was 2afb22b, checked in by Chris Johns <chrisj@…>, on 12/23/17 at 07:18:56

Remove make preinstall

A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

  • The make preinstall step itself needs time and disk space.
  • Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error.
  • There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult.
  • The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit.
  • An introduction of a new build system is difficult.
  • Include paths specified by the -B option are system headers. This may suppress warnings.
  • The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

  • cpukit/include
  • cpukit/score/cpu/@RTEMS_CPU@/include
  • cpukit/libnetworking

The new BSP include directories are:

  • bsps/include
  • bsps/@RTEMS_CPU@/include
  • bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.

  • Property mode set to 100644
File size: 2.6 KB
Line 
1## Process this file with autoconf to produce a configure script.
2
3AC_PREREQ([2.69])
4AC_INIT([rtems-c-src-tests-smptests],[_RTEMS_VERSION],[https://devel.rtems.org/newticket])
5AC_CONFIG_SRCDIR([smp01])
6AC_CONFIG_HEADER([config.h])
7RTEMS_TOP([../..],[..])
8RTEMS_SOURCE_TOP
9RTEMS_BUILD_TOP
10
11RTEMS_CANONICAL_TARGET_CPU
12
13AM_INIT_AUTOMAKE([no-define foreign 1.12.2])
14AM_MAINTAINER_MODE
15
16RTEMS_ENABLE_CXX
17
18RTEMS_ENV_RTEMSBSP
19
20RTEMS_PROJECT_ROOT
21
22RTEMS_PROG_CC_FOR_TARGET
23
24RTEMS_PROG_CXX_FOR_TARGET
25RTEMS_CANONICALIZE_TOOLS
26
27RTEMS_CHECK_CPUOPTS([RTEMS_POSIX_API])
28
29RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
30RTEMS_CHECK_CPUOPTS([RTEMS_MULTIPROCESSING])
31RTEMS_CHECK_CXX(RTEMS_BSP)
32RTEMS_CHECK_CPUOPTS([RTEMS_NETWORKING])
33RTEMS_CHECK_CPUOPTS([RTEMS_SMP])
34
35AM_CONDITIONAL(SMPTESTS,test "$rtems_cv_RTEMS_SMP" = "yes")
36
37AM_CONDITIONAL([HAS_POSIX],[test x"${rtems_cv_RTEMS_POSIX_API}" = xyes])
38
39# These are SMP related and were added to newlib by RTEMS.
40AC_CHECK_DECLS([pthread_attr_setaffinity_np],[],[],[[
41  #define _GNU_SOURCE
42  #include <pthread.h>]])
43AC_CHECK_DECLS([pthread_attr_getaffinity_np],[],[],[[
44  #define _GNU_SOURCE
45  #include <pthread.h>]])
46AC_CHECK_DECLS([pthread_setaffinity_np],[],[],[[
47  #define _GNU_SOURCE
48  #include <pthread.h>]])
49AC_CHECK_DECLS([pthread_getaffinity_np],[],[],[[
50  #define _GNU_SOURCE
51  #include <pthread.h>]])
52AC_CHECK_DECLS([pthread_getattr_np],[],[],[[
53  #define _GNU_SOURCE
54  #include <pthread.h>]])
55
56# Explicitly list all Makefiles here
57AC_CONFIG_FILES([Makefile
58smp01/Makefile
59smp02/Makefile
60smp03/Makefile
61smp05/Makefile
62smp07/Makefile
63smp08/Makefile
64smp09/Makefile
65smpaffinity01/Makefile
66smpatomic01/Makefile
67smpcache01/Makefile
68smpcapture01/Makefile
69smpcapture02/Makefile
70smpclock01/Makefile
71smpfatal01/Makefile
72smpfatal02/Makefile
73smpfatal03/Makefile
74smpfatal04/Makefile
75smpfatal05/Makefile
76smpfatal06/Makefile
77smpfatal08/Makefile
78smpipi01/Makefile
79smpload01/Makefile
80smplock01/Makefile
81smpmigration01/Makefile
82smpmigration02/Makefile
83smpmrsp01/Makefile
84smpmutex01/Makefile
85smpmutex02/Makefile
86smppsxaffinity01/Makefile
87smppsxaffinity02/Makefile
88smppsxmutex01/Makefile
89smppsxsignal01/Makefile
90smpschedaffinity01/Makefile
91smpschedaffinity02/Makefile
92smpschedaffinity03/Makefile
93smpschedaffinity04/Makefile
94smpschedaffinity05/Makefile
95smpschededf01/Makefile
96smpschededf02/Makefile
97smpschededf03/Makefile
98smpschedsem01/Makefile
99smpscheduler01/Makefile
100smpscheduler02/Makefile
101smpscheduler03/Makefile
102smpscheduler04/Makefile
103smpscheduler05/Makefile
104smpscheduler06/Makefile
105smpscheduler07/Makefile
106smpsignal01/Makefile
107smpstrongapa01/Makefile
108smpswitchextension01/Makefile
109smpthreadlife01/Makefile
110smpunsupported01/Makefile
111smpwakeafter01/Makefile
112])
113AC_OUTPUT
Note: See TracBrowser for help on using the repository browser.