summaryrefslogtreecommitdiffstats
path: root/rules
diff options
context:
space:
mode:
Diffstat (limited to 'rules')
-rw-r--r--rules/Kconfig6
-rw-r--r--rules/bare_metal.in6
-rw-r--r--rules/bare_metal_stellaris.in13
-rw-r--r--rules/sw-ek-lm3s3748.in19
-rw-r--r--rules/sw-ek-lm3s3748.make124
5 files changed, 168 insertions, 0 deletions
diff --git a/rules/Kconfig b/rules/Kconfig
index 35c47284e..7166aa1ea 100644
--- a/rules/Kconfig
+++ b/rules/Kconfig
@@ -104,3 +104,9 @@ menu "Graphics & Multimedia "
source "generated/graphics_and_multimedia.in"
endmenu
+comment "------------------------------------"
+
+menu "Bare Metal "
+source "generated/bare_metal.in"
+endmenu
+
diff --git a/rules/bare_metal.in b/rules/bare_metal.in
new file mode 100644
index 000000000..afee59ac7
--- /dev/null
+++ b/rules/bare_metal.in
@@ -0,0 +1,6 @@
+## SECTION=bare_metal
+
+menu "Stellaris "
+source "generated/bare_metal_stellaris.in"
+endmenu
+
diff --git a/rules/bare_metal_stellaris.in b/rules/bare_metal_stellaris.in
new file mode 100644
index 000000000..f98a7462a
--- /dev/null
+++ b/rules/bare_metal_stellaris.in
@@ -0,0 +1,13 @@
+## SECTION=bare_metal_stellaris
+
+config STELLARIS_GNU_TARGET
+ string
+ prompt "stellaris gnu target"
+ default "arm-cortexm3-eabi"
+ help
+ configure the stellaris gnu target
+
+config STELLARIS_CC
+ string
+ default "${PTXCONF_STELLARIS_GNU_TARGET}-gcc"
+
diff --git a/rules/sw-ek-lm3s3748.in b/rules/sw-ek-lm3s3748.in
new file mode 100644
index 000000000..b9009a392
--- /dev/null
+++ b/rules/sw-ek-lm3s3748.in
@@ -0,0 +1,19 @@
+## SECTION=bare_metal_stellaris
+
+config SW_EK_LM3S3748
+ tristate
+ prompt "sw-ek-lm3s3748"
+ help
+ Software Development Kit for the Stellaris LM3S3748.
+
+if SW_EK_LM3S3748
+
+config SW_EK_LM3S3748_BOOTLOADER
+ bool
+ prompt "bootloader
+ help
+ Build the DFU (Device Firmware Update) bootloader for the
+ LM3S3748.
+
+endif
+
diff --git a/rules/sw-ek-lm3s3748.make b/rules/sw-ek-lm3s3748.make
new file mode 100644
index 000000000..e5988d96f
--- /dev/null
+++ b/rules/sw-ek-lm3s3748.make
@@ -0,0 +1,124 @@
+# -*-makefile-*-
+# $Id$
+#
+# Copyright (C) 2009 by Robert Schwebel <r.schwebel@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+ifdef PTXCONF_SW_EK_LM3S3748
+ifneq ($(shell test -h $(PTXDIST_WORKSPACE)/selected_toolchain_stellaris && echo ok),ok)
+ $(warning *** selected_toolchain_stellaris must point to a valid stellaris toolchain)
+ $(error )
+endif
+ifneq ($(shell test -x $(PTXDIST_WORKSPACE)/selected_toolchain_stellaris/$(PTXCONF_STELLARIS_CC) && echo ok),ok)
+ $(warning *** $(PTXDIST_WORKSPACE)/selected_toolchain_stellaris/$(PTXCONF_STELLARIS_CC) not found)
+ $(error )
+endif
+endif
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_SW_EK_LM3S3748) += sw-ek-lm3s3748
+
+#
+# Paths and names
+#
+SW_EK_LM3S3748_VERSION := 4423
+SW_EK_LM3S3748 := SW-EK-LM3S3748-$(SW_EK_LM3S3748_VERSION)
+SW_EK_LM3S3748_SUFFIX := tar.bz2
+SW_EK_LM3S3748_URL := http://www.pengutronix.de/software/ptxdist/temporary-src/$(SW_EK_LM3S3748).$(SW_EK_LM3S3748_SUFFIX)
+SW_EK_LM3S3748_SOURCE := $(SRCDIR)/$(SW_EK_LM3S3748).$(SW_EK_LM3S3748_SUFFIX)
+SW_EK_LM3S3748_DIR := $(BUILDDIR)/$(SW_EK_LM3S3748)
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+$(SW_EK_LM3S3748_SOURCE):
+ @$(call targetinfo)
+ @$(call get, SW_EK_LM3S3748)
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/sw-ek-lm3s3748.extract:
+ @$(call targetinfo)
+ @$(call clean, $(SW_EK_LM3S3748_DIR))
+ @$(call extract, SW_EK_LM3S3748)
+ @$(call patchin, SW_EK_LM3S3748)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+SW_EK_LM3S3748_MAKEVARS := \
+ PREFIX=$(PTXDIST_WORKSPACE)/selected_toolchain_stellaris/$(PTXCONF_STELLARIS_GNU_TARGET)
+
+$(STATEDIR)/sw-ek-lm3s3748.prepare:
+ @$(call targetinfo)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/sw-ek-lm3s3748.compile:
+ @$(call targetinfo)
+ # build static libraries
+ cd $(SW_EK_LM3S3748_DIR) && $(SW_EK_LM3S3748_PATH) $(MAKE) \
+ $(SW_EK_LM3S3748_MAKEVARS) $(PARALLELMFLAGS_BROKEN)
+ # build bootloader
+ifdef PTXCONF_SW_EK_LM3S3748_BOOTLOADER
+ cd $(SW_EK_LM3S3748_DIR)/boards/ek-lm3s3748/boot_usb/ && $(MAKE) \
+ $(SW_EK_LM3S3748_MAKEVARS) $(PARALLELMFLAGS_BROKEN)
+endif
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/sw-ek-lm3s3748.install:
+ @$(call targetinfo)
+ # install static libraries
+ mkdir -p $(PTXDIST_PLATFORMDIR)/sysroot-stellaris/lib
+ cp $(SW_EK_LM3S3748_DIR)/usblib/gcc/libusb.a \
+ $(PTXDIST_PLATFORMDIR)/sysroot-stellaris/lib/libusb.a
+ cp $(SW_EK_LM3S3748_DIR)/grlib/gcc/libgr.a \
+ $(PTXDIST_PLATFORMDIR)/sysroot-stellaris/lib/libgr.a
+ cp $(SW_EK_LM3S3748_DIR)/driverlib/gcc/libdriver.a \
+ $(PTXDIST_PLATFORMDIR)/sysroot-stellaris/lib/libdriver.a
+ # install header files
+ mkdir -p $(PTXDIST_PLATFORMDIR)/sysroot-stellaris/include
+ cd $(SW_EK_LM3S3748_DIR) && \
+ for i in `find . -name "*.h"`; do \
+ mkdir -p $(PTXDIST_PLATFORMDIR)/sysroot-stellaris/include/`dirname $$i`; \
+ cp $$i $(PTXDIST_PLATFORMDIR)/sysroot-stellaris/include/$$i; \
+ done
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/sw-ek-lm3s3748.targetinstall:
+ @$(call targetinfo)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+sw-ek-lm3s3748_clean:
+ rm -rf $(STATEDIR)/sw-ek-lm3s3748.*
+ rm -rf $(PKGDIR)/sw-ek-lm3s3748_*
+ rm -rf $(SW_EK_LM3S3748_DIR)
+
+# vim: syntax=make