summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-01-11 14:32:49 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-08-10 09:05:45 +0200
commit80ba573f27728630c0c7b53e463fec44063a66c2 (patch)
tree41ab5d92520972b8be8779ca1461995705daa538
parent0daa8ab825fe76a6fbb7460580326d53eff07ccd (diff)
Support custom Makefiles
-rw-r--r--c/src/make/Makefile.am6
-rw-r--r--c/src/make/bsp.mk.in62
-rw-r--r--c/src/make/configure.ac1
3 files changed, 69 insertions, 0 deletions
diff --git a/c/src/make/Makefile.am b/c/src/make/Makefile.am
index d0383df8ed..c162d6b981 100644
--- a/c/src/make/Makefile.am
+++ b/c/src/make/Makefile.am
@@ -20,6 +20,12 @@ rtems_bsp_DATA = Makefile.inc
rtems_bsp_makedir = $(rtems_bspdir)/make
rtems_bsp_make_DATA = bsp.cfg target.cfg
+rtems_make_customdir = $(prefix)/make/custom
+rtems_make_custom_DATA = @RTEMS_BSP@.mk
+
+@RTEMS_BSP@.mk: bsp.mk
+ cp bsp.mk @RTEMS_BSP@.mk
+
bsp.cfg: bsp.cfg.in Makefile
sed \
-e "s|[@]HAS_MP[@]|$(HAS_MP)|" \
diff --git a/c/src/make/bsp.mk.in b/c/src/make/bsp.mk.in
new file mode 100644
index 0000000000..a71dcf985e
--- /dev/null
+++ b/c/src/make/bsp.mk.in
@@ -0,0 +1,62 @@
+RTEMS_API = @RTEMS_API@
+RTEMS_CPU = @RTEMS_CPU@
+RTEMS_SHARE = $(RTEMS_ROOT)/share/rtems$(RTEMS_API)
+PROJECT_ROOT = $(RTEMS_ROOT)/$(RTEMS_CPU)-rtems$(RTEMS_API)/$(RTEMS_BSP)
+PROJECT_INCLUDE = $(PROJECT_ROOT)/lib/include
+PROJECT_LIB = $(PROJECT_ROOT)/lib
+BUILDDIR = b-$(RTEMS_BSP)
+
+prefix = $(RTEMS_ROOT)
+exec_prefix = $(RTEMS_ROOT)/$(RTEMS_CPU)-rtems$(RTEMS_API)
+
+include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
+
+DEPFLAGS = -MT $@ -MD -MP -MF $(basename $@).d
+SYSFLAGS = -B $(PROJECT_LIB) -specs bsp_specs -qrtems
+WARNFLAGS = -Wall -Wextra -Wconversion -Wformat-security -Wformat=2 -Wshadow -Wcast-qual -Wcast-align -Wredundant-decls -Werror
+CWARNFLAGS = $(WARNFLAGS) -Wstrict-prototypes -Wbad-function-cast
+OPTFLAGS = $(CFLAGS_OPTIMIZE_V)
+
+CFLAGS = $(DEPFLAGS) $(SYSFLAGS) $(CWARNFLAGS) $(CPU_CFLAGS) $(OPTFLAGS)
+CXXFLAGS = $(DEPFLAGS) $(SYSFLAGS) $(WARNFLAGS) $(CPU_CFLAGS) $(OPTFLAGS)
+LINKFLAGS = $(SYSFLAGS) $(CPU_CFLAGS) $(LDFLAGS) $(OPTFLAGS)
+ASFLAGS = $(CPU_CFLAGS)
+
+CCLINK = $(CC) $(LINKFLAGS) -Wl,-Map,$(basename $@).map
+CXXLINK = $(CXX) $(LINKFLAGS) -Wl,-Map,$(basename $@).map
+
+$(BUILDDIR)/%.o: %.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
+
+$(BUILDDIR)/%.o: %.S
+ $(CC) $(CPPFLAGS) -DASM $(CFLAGS) -c $< -o $@
+
+$(BUILDDIR)/%.o: %.cc
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
+
+$(BUILDDIR)/%.o: %.cpp
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
+
+$(BUILDDIR)/%.o: %.s
+ $(AS) $(ASFLAGS) $< -o $@
+
+AR = @AR@
+AS = @AS@
+CC = @CC@
+CXX = @CXX@
+LD = @LD@
+NM = @NM@
+OBJCOPY = @OBJCOPY@
+RANLIB = @RANLIB@
+SIZE = @SIZE@
+STRIP = @STRIP@
+export AR
+export AS
+export CC
+export CXX
+export LD
+export NM
+export OBJCOPY
+export RANLIB
+export SIZE
+export STRIP
diff --git a/c/src/make/configure.ac b/c/src/make/configure.ac
index 10c47a06d8..60001ea47f 100644
--- a/c/src/make/configure.ac
+++ b/c/src/make/configure.ac
@@ -79,5 +79,6 @@ AC_CONFIG_LINKS([leaf.cfg:leaf.cfg])
# Explicitly list all Makefiles here
AC_CONFIG_FILES([Makefile
+bsp.mk
])
AC_OUTPUT