From 2dd2154e6f48b9f72d3291e6ba53948cfdda8eb2 Mon Sep 17 00:00:00 2001
From: inmarket <andrewh@inmarket.com.au>
Date: Mon, 6 Oct 2014 18:06:43 +1000
Subject: Add eCos to the new build system - untested!

---
 .../eCos-Synthetic-Framebuffer/example/Makefile    | 192 +++++----------------
 .../eCos-Synthetic-Framebuffer/example/readme.txt  |   5 +-
 tools/gmake_scripts/os_ecos.mk                     |  33 ++++
 3 files changed, 74 insertions(+), 156 deletions(-)
 create mode 100644 tools/gmake_scripts/os_ecos.mk

diff --git a/boards/base/eCos-Synthetic-Framebuffer/example/Makefile b/boards/base/eCos-Synthetic-Framebuffer/example/Makefile
index e30e1c92..af590f16 100644
--- a/boards/base/eCos-Synthetic-Framebuffer/example/Makefile
+++ b/boards/base/eCos-Synthetic-Framebuffer/example/Makefile
@@ -1,165 +1,51 @@
-#
-#       !!!! Do NOT edit this makefile with an editor which replace tabs by spaces !!!!
-#
-##############################################################################################
-#
-# On command line:
-#
-# make INSTALL_DIR=/path/to/ecos/install all = Create project
-#
-# make clean = Clean project files.
-#
-# To rebuild project do "make clean" and "make all".
-#
+# Possible Targets:	all clean Debug cleanDebug Release cleanRelease
 
 ##############################################################################################
-# Start of default section
-#
-
-INSTALL_DIR=$$(INSTALL_DIR) # override on make command line
-
-include $(INSTALL_DIR)/include/pkgconf/ecos.mak
-
-CC           = $(ECOS_COMMAND_PREFIX)gcc
-AS           = $(CC) -x assembler-with-cpp
-CXX          = $(CC)
-LD           = $(CC)
-CFLAGS       = -I$(INSTALL_DIR)/include
-CXXFLAGS     = $(CFLAGS) -g
-LDFLAGS      = -nostartfiles -L$(INSTALL_DIR)/lib -Ttarget.ld
-
-# List all default C defines here, like -D_DEBUG=1
-DDEFS = 
-
-# List all default ASM defines here, like -D_DEBUG=1
-DADEFS =
-
-# List all default directories to look for include files here
-DINCDIR =
-
-# List the default directory to look for the libraries here
-DLIBDIR =
-
-# List all default libraries here
-DLIBS =
-
-#
-# End of default section
-##############################################################################################
+# Settings
+#
+
+# General settings
+	# See $(GFXLIB)/tools/gmake_scripts/readme.txt for the list of variables
+	OPT_OS					= ecos
+	OPT_LINK_OPTIMIZE		= yes
+	OPT_CPU					= x86
+
+# uGFX settings
+	# See $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk for the list of variables
+	GFXLIB					= ../uGFX
+	GFXBOARD				= eCos-Synthetic-Framebuffer
+	GFXDEMO					= modules/gdisp/basics
+
+# ECOS settings
+ifeq ($(OPT_OS),ecos)
+	# See $(GFXLIB)/tools/gmake_scripts/os_ecos.mk for the list of variables
+	FREERTOS			= ../eCos
+	ECOS_LDSCRIPT		= target.ld
+endif
 
 ##############################################################################################
-# Start of user section
+# Set these for your project
 #
 
-# Define project name here
-PROJECT = ugfx_over_ecos
-
-# Imported source files and paths for uGFX
-GFXLIB = ../ugfx
-
-include ${GFXLIB}/gfx.mk
-include ${GFXLIB}/boards/base/eCos-Synthetic-Framebuffer/board.mk
-
-# Where is our source code - alter these for your project.
-# Either just include the demo makefile or add your own definitions
-include $(GFXLIB)/demos/modules/gdisp/basics/demo.mk
-
-#MYFILES =
-#MYCSRC  =
-#MYDEFS  =
+ARCH     = $(ECOS_COMMAND_PREFIX)
+SRCFLAGS = -ggdb -O0
+CFLAGS   =
+CXXFLAGS = -fno-rtti
+ASFLAGS  =
+LDFLAGS  =
 
-# List all user C define here, like -D_DEBUG=1
-UDEFS = $(MYDEFS) $(GFXDEFS)
+SRC      =
+OBJS     =
+DEFS     =
+LIBS     =
+INCPATH  =
+LIBPATH  =
 
-# Define ASM defines here
-UADEFS =
-
-# List C source files here
-SRC  = $(GFXSRC) \
-       $(MYCSRC)
-
-# List ASM source files here
-ASRC =
-
-# List all user directories here
-UINCDIR = $(MYFILES) $(GFXINC)
-
-# List the user directory to look for the libraries here
-ULIBDIR =
-
-# List all user libraries here
-ULIBS =
-
-# Define optimisation level here
-OPT = -ggdb -O0 -fomit-frame-pointer
-
-#
-# End of user defines
 ##############################################################################################
-
-INCDIR  = $(patsubst %,-I%,$(DINCDIR) $(UINCDIR))
-LIBDIR  = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR))
-DEFS    = $(DDEFS) $(UDEFS)
-ADEFS   = $(DADEFS) $(UADEFS)
-OBJS    = $(ASRC:.s=.o) $(SRC:.c=.o)
-LIBS    = $(DLIBS) $(ULIBS)
-
-ASFLAGS = -Wa,-amhls=$(<:.s=.lst) $(ADEFS)
-CPFLAGS = $(OPT) -Wall -Wextra -Wstrict-prototypes -fverbose-asm $(DEFS) 
-
-ifeq ($(HOST_OSX),yes)
-  ifeq ($(OSX_SDK),)
-    OSX_SDK = /Developer/SDKs/MacOSX10.7.sdk
-  endif
-  ifeq ($(OSX_ARCH),)
-    OSX_ARCH = -mmacosx-version-min=10.3 -arch i386
-  endif
-
-  CPFLAGS += -isysroot $(OSX_SDK) $(OSX_ARCH)
-  LDFLAGS = -Wl -Map=$(PROJECT).map,-syslibroot,$(OSX_SDK),$(LIBDIR)
-  LIBS += $(OSX_ARCH)
-else
-  # Linux, or other
-  CPFLAGS += -m32 -Wa,-alms=$(<:.c=.lst) -I$(INSTALL_DIR)/include
-  LDFLAGS = -g -nostdlib -m32 -Wl,-Map=$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR) -nostartfiles -L$(INSTALL_DIR)/lib -Ttarget.ld
-endif
-
-# Generate dependency information
-CPFLAGS += -MD -MP -MF .dep/$(@F).d
-
-#
-# makefile rules
-#
-
-all: $(OBJS) $(PROJECT)
-
-%.o : %.c
-	$(CC) -c $(CPFLAGS) -I . $(INCDIR) $< -o $@
-
-%.o : %.s
-	$(AS) -c $(ASFLAGS) $< -o $@
-
-$(PROJECT): $(OBJS)
-	$(CC) $(OBJS) $(LDFLAGS) $(LIBS) -o $@
-
-gcov:
-	-mkdir gcov
-	$(COV) -u $(subst /,\,$(SRC))
-	-mv *.gcov ./gcov
-
-clean:                                      
-	-rm -f $(OBJS)
-	-rm -f $(PROJECT)
-	-rm -f $(PROJECT).map
-	-rm -f $(SRC:.c=.c.bak)
-	-rm -f $(SRC:.c=.lst)
-	-rm -f $(ASRC:.s=.s.bak)
-	-rm -f $(ASRC:.s=.lst)
-	-rm -fR .dep
-
-#
-# Include the dependency files, should be the last of the makefile
+# These should be at the end
 #
--include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
 
+include $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk
+include $(GFXLIB)/tools/gmake_scripts/os_$(OPT_OS).mk
+include $(GFXLIB)/tools/gmake_scripts/compiler_gcc.mk
 # *** EOF ***
diff --git a/boards/base/eCos-Synthetic-Framebuffer/example/readme.txt b/boards/base/eCos-Synthetic-Framebuffer/example/readme.txt
index ca841f5b..6fd1f6ef 100644
--- a/boards/base/eCos-Synthetic-Framebuffer/example/readme.txt
+++ b/boards/base/eCos-Synthetic-Framebuffer/example/readme.txt
@@ -2,6 +2,5 @@ Copy these files into your own project directory and alter them to suite.
 
 Notes:
 
-1/ Look at the MYFILES definition and the MYCSRC definition.
-2/ To run please install eCos synthetic framebuffer according to the documentation.
-3/ Call application ./ugfx_over_ecos -io
\ No newline at end of file
+1/ To run please install eCos synthetic framebuffer according to the documentation.
+2/ Call application ./ugfx_over_ecos -io
\ No newline at end of file
diff --git a/tools/gmake_scripts/os_ecos.mk b/tools/gmake_scripts/os_ecos.mk
new file mode 100644
index 00000000..b1b74554
--- /dev/null
+++ b/tools/gmake_scripts/os_ecos.mk
@@ -0,0 +1,33 @@
+#
+# This file is subject to the terms of the GFX License. If a copy of
+# the license was not distributed with this file, you can obtain one at:
+#
+#             http://ugfx.org/license.html
+#
+
+# See readme.txt for the make API
+
+# Requirements:
+#
+# ECOS:  			The location of the eCos code		eg ECOS=../eCos
+#
+
+# Optional:
+#
+# ECOS_LDSCRIPT		The loader script - default is ""
+#
+
+PATHLIST += ECOS
+
+# Not sure if this variable is needed by the ecos make.
+INSTALL_DIR=$(ECOS)
+
+include $(ECOS)/include/pkgconf/ecos.mak
+
+INCPATH		+= $(ECOS)/include
+LIBPATH		+= $(ECOS)/lib
+LDFLAGS		+= -nostdlib
+
+ifeq ($(LDSCRIPT),)
+  LDSCRIPT= $(ECOS_LDSCRIPT)
+endif
-- 
cgit v1.2.3