From daf9f65b9fb9822bc3bc80d63b66a612e085802a Mon Sep 17 00:00:00 2001 From: inmarket Date: Sun, 28 Sep 2014 01:42:30 +1000 Subject: New makefile structure. Also OSX board defintion --- boards/base/Linux-Framebuffer/board.mk | 1 + boards/base/Linux-Framebuffer/example/Makefile | 234 +++------------------- boards/base/Linux/board.mk | 1 + boards/base/Linux/example/Makefile | 234 +++------------------- boards/base/OSX/board.mk | 7 + boards/base/OSX/example/Makefile | 47 +++++ boards/base/OSX/example/readme.txt | 5 + boards/base/OSX/readme.txt | 7 + boards/base/Win32/board.mk | 4 +- boards/base/Win32/example/Makefile | 264 +++++-------------------- 10 files changed, 177 insertions(+), 627 deletions(-) create mode 100644 boards/base/OSX/board.mk create mode 100644 boards/base/OSX/example/Makefile create mode 100644 boards/base/OSX/example/readme.txt create mode 100644 boards/base/OSX/readme.txt (limited to 'boards/base') diff --git a/boards/base/Linux-Framebuffer/board.mk b/boards/base/Linux-Framebuffer/board.mk index 69be7ac1..a9acce0a 100644 --- a/boards/base/Linux-Framebuffer/board.mk +++ b/boards/base/Linux-Framebuffer/board.mk @@ -1,5 +1,6 @@ GFXINC += $(GFXLIB)/boards/base/Linux-Framebuffer GFXSRC += GFXDEFS += -DGFX_USE_OS_LINUX=TRUE +GFXLIBS += rt include $(GFXLIB)/drivers/gdisp/framebuffer/driver.mk diff --git a/boards/base/Linux-Framebuffer/example/Makefile b/boards/base/Linux-Framebuffer/example/Makefile index d5032f57..29b0a266 100644 --- a/boards/base/Linux-Framebuffer/example/Makefile +++ b/boards/base/Linux-Framebuffer/example/Makefile @@ -1,220 +1,44 @@ -# -# !!!! Do NOT edit this makefile with an editor which replace tabs by spaces !!!! -# -############################################################################################## -# -# On command line: -# -# make all = Create project -# -# make clean = Clean project files. -# -# To rebuild project do "make clean" and "make all". -# - -############################################################################################## -# Start of make control -# - -# Verbose compiling? -USE_VERBOSE_COMPILE=no - -# Generate listing files? -USE_LISTING=no - -# Your project name and executable file name - Optional, defaults to the project directory name -#PROJECT=uGFX +# Possible Targets: all clean Debug cleanDebug Release cleanRelease ############################################################################################## -# Start of default section +# Settings # -TRGT = -CC = $(TRGT)gcc -AS = $(TRGT)gcc -x assembler-with-cpp - -# 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 = +# See $(GFXLIB)/tools/gmake_scripts/readme.txt for the meaning of these variables +OPT_VERBOSE_COMPILE = no +OPT_GENERATE_LISTINGS = yes +OPT_GENERATE_MAP = yes +OPT_COPY_EXE = no +OPT_NATIVEOS = linux +OPT_OS = linux -# List the default directory to look for the libraries here -DLIBDIR = +# See $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk for the meaning of these variables +GFXLIB = ../uGFX +GFXBOARD = Linux-Framebuffer +#GFXDRIVERS = multiple/uGFXnet +GFXDEMO = modules/gdisp/basics -# List all default libraries here -DLIBS = -lrt - -# -# End of default section ############################################################################################## - -############################################################################################## -# Start of user section +# Set these for your project # -# Default project name is the project directory name -ifeq ($(PROJECT),) - PROJECT := $(notdir $(patsubst %/,%,$(dir $(abspath $(firstword $(MAKEFILE_LIST)))))) -endif - -# Imported source files and paths for uGFX -GFXLIB = ../ugfx -include ${GFXLIB}/gfx.mk -include ${GFXLIB}/boards/base/Linux-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 = my-project-directory -#MYCSRC = $(MYFILES)/main.c -#MYDEFS = - -# List all user C define here, like -D_DEBUG=1 -UDEFS = $(MYDEFS) $(GFXDEFS) - -# Define ASM defines here -UADEFS = - -# List C source files here -SRC = $(GFXSRC) \ - $(MYCSRC) +ARCH = +SRCFLAGS = -m32 -ggdb -O0 -fomit-frame-pointer -Wall -Wextra -Wstrict-prototypes -fverbose-asm +CFLAGS = +CXXFLAGS = +ASFLAGS = +LDFLAGS = -pthread -# List ASM source files here -ASRC = +SRC = +DEFS = +LIBS = +INCPATH = +LIBPATH = -# 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 ############################################################################################## - -I# Output directory and files -ifeq ($(MAKECMDGOALS),Debug) - BUILDDIR = bin/Debug -else ifeq ($(MAKECMDGOALS),Release) - BUILDDIR = bin/Release -else ifeq ($(MAKECMDGOALS),cleanDebug) - BUILDDIR = bin/Debug -else ifeq ($(MAKECMDGOALS),cleanRelease) - BUILDDIR = bin/Release -else ifeq ($(BUILDDIR),) - BUILDDIR = .build -else ifeq ($(BUILDDIR),.) - BUILDDIR = .build -endif - -OBJDIR = $(BUILDDIR)/obj -LSTDIR = $(BUILDDIR)/lst -MAPDIR = $(BUILDDIR)/map -DEPDIR = .dep - -INCDIR = $(patsubst %,-I%,$(DINCDIR) $(UINCDIR)) -LIBDIR = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR)) -DEFS = $(DDEFS) $(UDEFS) -ADEFS = $(DADEFS) $(UADEFS) -COBJ = $(addprefix $(OBJDIR)/, $(subst ../,_dot_dot/,$(SRC:.c=.o))) -AOBJ = $(addprefix $(OBJDIR)/, $(subst ../,_dot_dot/,$(ASRC:.s=.o))) -OBJS = $(AOBJ) $(COBJ) -LIBS = $(DLIBS) $(ULIBS) - -ASFLAGS = $(ADEFS) -CPFLAGS = $(OPT) -Wall -Wextra -Wstrict-prototypes -fverbose-asm $(DEFS) -LDFLAGS = -Wl,-Map=$(MAPDIR)/$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR) -ifeq ($(USE_LISTING),yes) - ASFLAGS += -Wa,-amhls=$(LSTDIR)/$(subst ../,_dot_dot/,$(<:.s=.lst)) - CPFLAGS += -Wa,-alms=$(LSTDIR)/$(subst ../,_dot_dot/,$(<:.c=.lst)) -endif - -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 - - LIBS += $(OSX_ARCH) - CPFLAGS += -isysroot $(OSX_SDK) $(OSX_ARCH) - LDFLAGS = -Wl -Map=$(MAPDIR)/$(PROJECT).map,-syslibroot,$(OSX_SDK),$(LIBDIR) -else - # Linux, or other - CPFLAGS += -m32 -endif - -# Generate dependency information -CPFLAGS += -MD -MP -MF $(DEPDIR)/$(@F).d - -# -# makefile rules -# - -Debug Release: all - -cleanDebug cleanRelease: clean - -all: $(BUILDDIR) $(OBJS) $(PROJECT) - -$(BUILDDIR) $(OBJDIR) $(LSTDIR) $(MAPDIR): - mkdir -p $(OBJDIR) - mkdir -p $(MAPDIR) -ifeq ($(USE_LISTING),yes) - mkdir -p $(LSTDIR) -endif -ifneq ($(USE_VERBOSE_COMPILE),yes) - @echo Compiler Options - $(CC) -c $(CPFLAGS) -I. $(INCDIR) main.c -o $(OBJDIR)/main.o - @echo -endif - -.SECONDEXPANSION: -$(OBJDIR)/%.o : $$(subst _dot_dot/,../,%.c) - @mkdir -p $(dir $@) -ifeq ($(USE_VERBOSE_COMPILE),yes) - @echo - $(CC) -c $(CPFLAGS) -I. $(INCDIR) $< -o $@ -else - @echo Compiling $< - @$(CC) -c $(CPFLAGS) -I. $(INCDIR) $< -o $@ -endif - -$(OBJDIR)/%.o : $$(subst _dot_dot/,../,%.s) - @mkdir -p $(dir $@) -ifeq ($(USE_VERBOSE_COMPILE),yes) - @echo - $(AS) -c $(ASFLAGS) -I. $(INCDIR) $< -o $@ -else - @echo Compiling $< - @$(AS) -c $(ASFLAGS) -I. $(INCDIR) $< -o $@ -endif - -$(PROJECT): $(OBJS) - $(CC) $(OBJS) $(LDFLAGS) $(LIBS) -o $@ - -gcov: - -mkdir gcov - $(COV) -u $(subst /,\,$(SRC)) - -mv *.gcov ./gcov - -clean: - -rm -fR $(BUILDDIR) - -rm -fR $(DEPDIR) - -# -# Include the dependency files, should be the last of the makefile +# These should be at the end # --include $(shell mkdir $(DEPDIR) 2>/dev/null) $(wildcard $(DEPDIR)/*) +include $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk +include $(GFXLIB)/tools/gmake_scripts/compiler_gcc.mk # *** EOF *** diff --git a/boards/base/Linux/board.mk b/boards/base/Linux/board.mk index 4334c2fc..49004bdd 100644 --- a/boards/base/Linux/board.mk +++ b/boards/base/Linux/board.mk @@ -1,6 +1,7 @@ GFXINC += $(GFXLIB)/boards/base/Linux GFXSRC += GFXDEFS += -DGFX_USE_OS_LINUX=TRUE +GFXLIBS += rt include $(GFXLIB)/drivers/multiple/X/driver.mk diff --git a/boards/base/Linux/example/Makefile b/boards/base/Linux/example/Makefile index 21343755..87b80434 100644 --- a/boards/base/Linux/example/Makefile +++ b/boards/base/Linux/example/Makefile @@ -1,220 +1,44 @@ -# -# !!!! Do NOT edit this makefile with an editor which replace tabs by spaces !!!! -# -############################################################################################## -# -# On command line: -# -# make all = Create project -# -# make clean = Clean project files. -# -# To rebuild project do "make clean" and "make all". -# - -############################################################################################## -# Start of make control -# - -# Verbose compiling? -USE_VERBOSE_COMPILE=no - -# Generate listing files? -USE_LISTING=no - -# Your project name and executable file name - Optional, defaults to the project directory name -#PROJECT=uGFX +# Possible Targets: all clean Debug cleanDebug Release cleanRelease ############################################################################################## -# Start of default section +# Settings # -TRGT = -CC = $(TRGT)gcc -AS = $(TRGT)gcc -x assembler-with-cpp - -# 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 = +# See $(GFXLIB)/tools/gmake_scripts/readme.txt for the meaning of these variables +OPT_VERBOSE_COMPILE = no +OPT_GENERATE_LISTINGS = yes +OPT_GENERATE_MAP = yes +OPT_COPY_EXE = no +OPT_NATIVEOS = linux +OPT_OS = linux -# List the default directory to look for the libraries here -DLIBDIR = +# See $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk for the meaning of these variables +GFXLIB = ../uGFX +GFXBOARD = Linux +#GFXDRIVERS = multiple/uGFXnet +GFXDEMO = modules/gdisp/basics -# List all default libraries here -DLIBS = -lX11 -pthread -lrt - -# -# End of default section ############################################################################################## - -############################################################################################## -# Start of user section +# Set these for your project # -# Default project name is the project directory name -ifeq ($(PROJECT),) - PROJECT := $(notdir $(patsubst %/,%,$(dir $(abspath $(firstword $(MAKEFILE_LIST)))))) -endif - -# Imported source files and paths for uGFX -GFXLIB = ../ugfx -include ${GFXLIB}/gfx.mk -include ${GFXLIB}/boards/base/Linux/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 = my-project-directory -#MYCSRC = $(MYFILES)/main.c -#MYDEFS = - -# List all user C define here, like -D_DEBUG=1 -UDEFS = $(MYDEFS) $(GFXDEFS) - -# Define ASM defines here -UADEFS = - -# List C source files here -SRC = $(GFXSRC) \ - $(MYCSRC) +ARCH = +SRCFLAGS = -m32 -ggdb -O0 -fomit-frame-pointer -Wall -Wextra -Wstrict-prototypes -fverbose-asm +CFLAGS = +CXXFLAGS = +ASFLAGS = +LDFLAGS = -pthread -# List ASM source files here -ASRC = +SRC = +DEFS = +LIBS = +INCPATH = +LIBPATH = -# 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 ############################################################################################## - -# Output directory and files -ifeq ($(MAKECMDGOALS),Debug) - BUILDDIR = bin/Debug -else ifeq ($(MAKECMDGOALS),Release) - BUILDDIR = bin/Release -else ifeq ($(MAKECMDGOALS),cleanDebug) - BUILDDIR = bin/Debug -else ifeq ($(MAKECMDGOALS),cleanRelease) - BUILDDIR = bin/Release -else ifeq ($(BUILDDIR),) - BUILDDIR = .build -else ifeq ($(BUILDDIR),.) - BUILDDIR = .build -endif - -OBJDIR = $(BUILDDIR)/obj -LSTDIR = $(BUILDDIR)/lst -MAPDIR = $(BUILDDIR)/map -DEPDIR = .dep - -INCDIR = $(patsubst %,-I%,$(DINCDIR) $(UINCDIR)) -LIBDIR = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR)) -DEFS = $(DDEFS) $(UDEFS) -ADEFS = $(DADEFS) $(UADEFS) -COBJ = $(addprefix $(OBJDIR)/, $(subst ../,_dot_dot/,$(SRC:.c=.o))) -AOBJ = $(addprefix $(OBJDIR)/, $(subst ../,_dot_dot/,$(ASRC:.s=.o))) -OBJS = $(AOBJ) $(COBJ) -LIBS = $(DLIBS) $(ULIBS) - -ASFLAGS = $(ADEFS) -CPFLAGS = $(OPT) -Wall -Wextra -Wstrict-prototypes -fverbose-asm $(DEFS) -LDFLAGS = -Wl,-Map=$(MAPDIR)/$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR) -ifeq ($(USE_LISTING),yes) - ASFLAGS += -Wa,-amhls=$(LSTDIR)/$(subst ../,_dot_dot/,$(<:.s=.lst)) - CPFLAGS += -Wa,-alms=$(LSTDIR)/$(subst ../,_dot_dot/,$(<:.c=.lst)) -endif - -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 - - LIBS += $(OSX_ARCH) - CPFLAGS += -isysroot $(OSX_SDK) $(OSX_ARCH) - LDFLAGS = -Wl -Map=$(MAPDIR)/$(PROJECT).map,-syslibroot,$(OSX_SDK),$(LIBDIR) -else - # Linux, or other - CPFLAGS += -m32 -endif - -# Generate dependency information -CPFLAGS += -MD -MP -MF $(DEPDIR)/$(@F).d - -# -# makefile rules -# - -Debug Release: all - -cleanDebug cleanRelease: clean - -all: $(BUILDDIR) $(OBJS) $(PROJECT) - -$(BUILDDIR) $(OBJDIR) $(LSTDIR) $(MAPDIR): - mkdir -p $(OBJDIR) - mkdir -p $(MAPDIR) -ifeq ($(USE_LISTING),yes) - mkdir -p $(LSTDIR) -endif -ifneq ($(USE_VERBOSE_COMPILE),yes) - @echo Compiler Options - $(CC) -c $(CPFLAGS) -I. $(INCDIR) main.c -o $(OBJDIR)/main.o - @echo -endif - -.SECONDEXPANSION: -$(OBJDIR)/%.o : $$(subst _dot_dot/,../,%.c) - @mkdir -p $(dir $@) -ifeq ($(USE_VERBOSE_COMPILE),yes) - @echo - $(CC) -c $(CPFLAGS) -I. $(INCDIR) $< -o $@ -else - @echo Compiling $< - @$(CC) -c $(CPFLAGS) -I. $(INCDIR) $< -o $@ -endif - -$(OBJDIR)/%.o : $$(subst _dot_dot/,../,%.s) - @mkdir -p $(dir $@) -ifeq ($(USE_VERBOSE_COMPILE),yes) - @echo - $(AS) -c $(ASFLAGS) -I. $(INCDIR) $< -o $@ -else - @echo Compiling $< - @$(AS) -c $(ASFLAGS) -I. $(INCDIR) $< -o $@ -endif - -$(PROJECT): $(OBJS) - $(CC) $(OBJS) $(LDFLAGS) $(LIBS) -o $@ - -gcov: - -mkdir gcov - $(COV) -u $(subst /,\,$(SRC)) - -mv *.gcov ./gcov - -clean: - -rm -fR $(BUILDDIR) - -rm -fR $(DEPDIR) - -# -# Include the dependency files, should be the last of the makefile +# These should be at the end # --include $(shell mkdir $(DEPDIR) 2>/dev/null) $(wildcard $(DEPDIR)/*) +include $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk +include $(GFXLIB)/tools/gmake_scripts/compiler_gcc.mk # *** EOF *** diff --git a/boards/base/OSX/board.mk b/boards/base/OSX/board.mk new file mode 100644 index 00000000..0d7da3f8 --- /dev/null +++ b/boards/base/OSX/board.mk @@ -0,0 +1,7 @@ +GFXINC += $(GFXLIB)/boards/base/OSX +GFXSRC += +GFXDEFS += -DGFX_USE_OS_OSX=TRUE +GFXLIBS += rt + +include $(GFXLIB)/drivers/multiple/X/driver.mk + diff --git a/boards/base/OSX/example/Makefile b/boards/base/OSX/example/Makefile new file mode 100644 index 00000000..d3502528 --- /dev/null +++ b/boards/base/OSX/example/Makefile @@ -0,0 +1,47 @@ +# Possible Targets: all clean Debug cleanDebug Release cleanRelease + +############################################################################################## +# Settings +# + +# See $(GFXLIB)/tools/gmake_scripts/readme.txt for the meaning of these variables +OPT_VERBOSE_COMPILE = no +OPT_GENERATE_LISTINGS = yes +OPT_GENERATE_MAP = yes +OPT_COPY_EXE = no +OPT_NATIVEOS = osx +OPT_OS = osx + +# See $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk for the meaning of these variables +GFXLIB = ../uGFX +GFXBOARD = OSX +#GFXDRIVERS = multiple/uGFXnet +GFXDEMO = modules/gdisp/basics + +############################################################################################## +# Set these for your project +# + +OSX_SDK = /Developer/SDKs/MacOSX10.7.sdk +OSX_ARCH = -mmacosx-version-min=10.3 -arch i386 + +ARCH = +SRCFLAGS = -m32 -ggdb -O0 -fomit-frame-pointer -Wall -Wextra -Wstrict-prototypes -fverbose-asm -isysroot $(OSX_SDK) $(OSX_ARCH) +CFLAGS = +CXXFLAGS = +ASFLAGS = +LDFLAGS = -pthread -Wl,-syslibroot,$(OSX_SDK) $(OSX_ARCH) + +SRC = +DEFS = +LIBS = +INCPATH = +LIBPATH = + +############################################################################################## +# These should be at the end +# + +include $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk +include $(GFXLIB)/tools/gmake_scripts/compiler_gcc.mk +# *** EOF *** diff --git a/boards/base/OSX/example/readme.txt b/boards/base/OSX/example/readme.txt new file mode 100644 index 00000000..aff58bb1 --- /dev/null +++ b/boards/base/OSX/example/readme.txt @@ -0,0 +1,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. diff --git a/boards/base/OSX/readme.txt b/boards/base/OSX/readme.txt new file mode 100644 index 00000000..df033cbe --- /dev/null +++ b/boards/base/OSX/readme.txt @@ -0,0 +1,7 @@ +This directory contains the interface for OSX using X. + +On this board uGFX currently supports: + - GDISP via the X driver + - GINPUT-touch via the X driver + +There is an example Makefile and project in the examples directory. diff --git a/boards/base/Win32/board.mk b/boards/base/Win32/board.mk index 69d09100..adcbaeaf 100644 --- a/boards/base/Win32/board.mk +++ b/boards/base/Win32/board.mk @@ -1,5 +1,5 @@ -GFXINC += $(GFXLIB)/boards/base/Win32 +GFXINC += GFXSRC += - +GFXLIBS += include $(GFXLIB)/drivers/multiple/Win32/driver.mk include $(GFXLIB)/drivers/gaudio/Win32/driver.mk diff --git a/boards/base/Win32/example/Makefile b/boards/base/Win32/example/Makefile index 7d54ac02..502cf1ac 100644 --- a/boards/base/Win32/example/Makefile +++ b/boards/base/Win32/example/Makefile @@ -1,239 +1,73 @@ -# -# !!!! Do NOT edit this makefile with an editor which replace tabs by spaces !!!! -# -############################################################################################## -# -# On command line: -# -# make 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 make control +# Settings # -# Turn ChibiOS simimulator on or off? -USE_CHIBIOS=no +# See $(GFXLIB)/tools/gmake_scripts/readme.txt for the meaning of these variables +OPT_VERBOSE_COMPILE = no +OPT_GENERATE_LISTINGS = yes +OPT_GENERATE_MAP = yes +OPT_COPY_EXE = no +OPT_NATIVEOS = win32 +OPT_OS = win32 -# Verbose compiling? -USE_VERBOSE_COMPILE=no - -# Generate listing files? -USE_LISTING=no +# See $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk for the meaning of these variables +GFXLIB = ../uGFX +GFXBOARD = Win32 +#GFXDRIVERS = multiple/uGFXnet +GFXDEMO = modules/gdisp/basics -# Your project name and executable file name - Optional, defaults to the project directory name -#PROJECT=uGFX +# Win32 - ChibiOS simulator +ifeq ($(OPT_OS),chibios) + # Required: Location of the ChibiOS code + CHIBIOS = ../ChibiOS +endif -# -# End of make control -############################################################################################## ############################################################################################## -# Start of default section +# Set these for your project # -CC = i686-pc-mingw32-gcc -g - -# List all default C defines here, like -D_DEBUG=1 -DDEFS = - -# List all default directories to look for include files here -DINCDIR = +ARCH = i686-pc-mingw32- +SRCFLAGS = -ggdb -O0 -fomit-frame-pointer -Wall -Wextra -Wstrict-prototypes -fverbose-asm +CFLAGS = +CXXFLAGS = +ASFLAGS = +LDFLAGS = -# List the default directory to look for the libraries here -DLIBDIR = - -# List all default libraries here -DLIBS = -lws2_32 -lgdi32 -lwinmm - -# Make sure this empty for now -SRC = - -# -# End of default section -############################################################################################## +SRC = +DEFS = +LIBS = +INCPATH = +LIBPATH = ############################################################################################## -# Start of user section +# Optional: Win32 - ChibiOS Simulator # -# Imported source files and paths for uGFX -GFXLIB = ../uGFX -include $(GFXLIB)/gfx.mk -include $(GFXLIB)/boards/base/Win32/board.mk - -# Imported source files and paths for ChibiOS -ifeq ($(USE_CHIBIOS),yes) - CHIBIOS = ../ChibiOS +ifeq ($(OPT_OS),chibios) include $(CHIBIOS)/boards/simulator/board.mk - include ${CHIBIOS}/os/hal/hal.mk - include ${CHIBIOS}/os/hal/platforms/Win32/platform.mk - include ${CHIBIOS}/os/ports/GCC/SIMIA32/port.mk - include ${CHIBIOS}/os/kernel/kernel.mk - DDEFS += -DSIMULATOR -DSHELL_USE_IPRINTF=FALSE - UINCDIR += $(PORTINC) $(KERNINC) $(TESTINC) \ + include $(CHIBIOS)/os/hal/hal.mk + include $(CHIBIOS)/os/hal/platforms/Win32/platform.mk + include $(CHIBIOS)/os/ports/GCC/SIMIA32/port.mk + include $(CHIBIOS)/os/kernel/kernel.mk + DEFS += SIMULATOR SHELL_USE_IPRINTF=FALSE + INCPATH += $(PORTINC) $(KERNINC) $(TESTINC) \ $(HALINC) $(PLATFORMINC) $(BOARDINC) - # ${CHIBIOS}/os/various - SRC += ${PORTSRC} \ - ${KERNSRC} \ - ${TESTSRC} \ - ${HALSRC} \ - ${PLATFORMSRC} \ - $(BOARDSRC) - GFXDEFS += -DGFX_USE_OS_CHIBIOS=TRUE -else - GFXDEFS += -DGFX_USE_OS_WIN32=TRUE + # $(CHIBIOS)/os/various + SRC += $(PORTSRC) \ + $(KERNSRC) \ + $(TESTSRC) \ + $(HALSRC) \ + $(PLATFORMSRC) \ + $(BOARDSRC) endif -# 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 = my-project-directory -#MYCSRC = $(MYFILES)/main.c -#MYDEFS = - -# List C source files here -SRC += ${GFXSRC} \ - ${MYCSRC} - -# List all user C define here, like -D_DEBUG=1 -UDEFS = ${GFXDEFS} - -# List all user directories here -UINCDIR = ${GFXINC} \ - ${MYFILES} - -# List the user directory to look for the libraries here -ULIBDIR = - -# List all user libraries here -ULIBS = - -# Define optimisation level here -#OPT = -ggdb -O2 -fomit-frame-pointer -OPT = -ggdb -O0 -fomit-frame-pointer - -# -# End of user defines ############################################################################################## - - -# Default project name is the project directory name -ifeq ($(PROJECT),) - PROJECT := $(notdir $(patsubst %/,%,$(dir $(abspath $(firstword $(MAKEFILE_LIST)))))) -endif - -# Output directory and files -ifeq ($(MAKECMDGOALS),Debug) - BUILDDIR = bin/Debug -else ifeq ($(MAKECMDGOALS),Release) - BUILDDIR = bin/Release -else ifeq ($(MAKECMDGOALS),cleanDebug) - BUILDDIR = bin/Debug -else ifeq ($(MAKECMDGOALS),cleanRelease) - BUILDDIR = bin/Release -else ifeq ($(BUILDDIR),) - BUILDDIR = .build -else ifeq ($(BUILDDIR),.) - BUILDDIR = .build -endif - -OBJDIR = $(BUILDDIR)/obj -LSTDIR = $(BUILDDIR)/lst -MAPDIR = $(BUILDDIR)/map -DEPDIR = .dep - -INCDIR = $(patsubst %,-I%,$(DINCDIR) $(UINCDIR)) -LIBDIR = $(patsubst %,-L%,$(DLIBDIR) $(ULIBDIR)) -DEFS = $(DDEFS) $(UDEFS) -ADEFS = $(DADEFS) $(UADEFS) -COBJ = $(addprefix $(OBJDIR)/, $(subst ../,_dot_dot/,$(SRC:.c=.o))) -AOBJ = $(addprefix $(OBJDIR)/, $(subst ../,_dot_dot/,$(ASRC:.s=.o))) -OBJS = $(AOBJ) $(COBJ) -LIBS = $(DLIBS) $(ULIBS) - -LDFLAGS = -Wl,-Map=$(MAPDIR)/$(PROJECT).map,--cref,--no-warn-mismatch $(LIBDIR) -CPFLAGS = $(OPT) -Wall -Wextra -Wstrict-prototypes -fverbose-asm $(DEFS) -ifeq ($(USE_LISTING),yes) - CPFLAGS += -Wa,-alms=$(LSTDIR)/$(<:.c=.lst) -endif - -# Generate dependency information -CPFLAGS += -MD -MP -MF $(DEPDIR)/$(@F).d - -# -# makefile rules -# - -Debug Release: all - -cleanDebug cleanRelease: clean - -all: $(BUILDDIR) $(OBJS) $(BUILDDIR)/$(PROJECT).exe MAKE_ALL_RULE_HOOK -#all: main.cp - -main.cp: $(MYCSRC) - $(CC) -c $(CPFLAGS) -E -P -I. $(INCDIR) $< -o $@ - -MAKE_ALL_RULE_HOOK: - -$(BUILDDIR) $(OBJDIR) $(LSTDIR): - mkdir -p $(OBJDIR) - mkdir -p $(MAPDIR) -ifeq ($(USE_LISTING),yes) - mkdir -p $(LSTDIR) -endif -ifneq ($(USE_VERBOSE_COMPILE),yes) - @echo Compiler Options - $(CC) -c $(CPFLAGS) -I. $(INCDIR) main.c -o $(OBJDIR)/main.o - @echo -endif - -.SECONDEXPANSION: -$(OBJDIR)/%.o : $$(subst _dot_dot/,../,%.c) - @mkdir -p $(dir $@) -ifeq ($(USE_VERBOSE_COMPILE),yes) - @echo - $(CC) -c $(CPFLAGS) -I. $(INCDIR) $< -o $@ -else - @echo Compiling $< - @$(CC) -c $(CPFLAGS) -I. $(INCDIR) $< -o $@ -endif - -$(OBJDIR)/%.o : $$(subst _dot_dot/,../,%.s) - @mkdir -p $(dir $@) -ifeq ($(USE_VERBOSE_COMPILE),yes) - @echo - $(AS) -c $(ASFLAGS) -I. $(INCDIR) $< -o $@ -else - @echo Compiling $< - @$(AS) -c $(ASFLAGS) -I. $(INCDIR) $< -o $@ -endif - -%.exe: $(OBJS) -ifeq ($(USE_VERBOSE_COMPILE),yes) - @echo - $(CC) $(OBJS) $(LDFLAGS) $(LIBS) -o $@ -else - @echo Linking $@ - @$(CC) $(OBJS) $(LDFLAGS) $(LIBS) -o $@ -endif - -gcov: - -mkdir gcov - $(COV) -u $(subst /,\,$(SRC)) - -mv *.gcov ./gcov - -clean: - -rm -fR $(BUILDDIR) - -rm -fR $(DEPDIR) - -# -# Include the dependency files, should be the last of the makefile +# These should be at the end # --include $(shell mkdir $(DEPDIR) 2>/dev/null) $(wildcard $(DEPDIR)/*) +include $(GFXLIB)/tools/gmake_scripts/library_ugfx.mk +include $(GFXLIB)/tools/gmake_scripts/compiler_gcc.mk # *** EOF *** -- cgit v1.2.3