From c6b3d38a156dd624760a8eb1bb374affd43b4f2a Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Thu, 20 Nov 2008 11:27:31 +0000 Subject: New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles. Many #include lines adjusted to conform to the new standards. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657 --- firmware/Makefile | 57 --------------------------------------- firmware/decompressor/Makefile | 1 + firmware/export/config-mrobe500.h | 3 +-- firmware/export/debug.h | 3 ++- firmware/firmware.make | 39 +++++++++++++++++++++++++++ 5 files changed, 43 insertions(+), 60 deletions(-) delete mode 100644 firmware/Makefile create mode 100644 firmware/firmware.make (limited to 'firmware') diff --git a/firmware/Makefile b/firmware/Makefile deleted file mode 100644 index 0b80cf22e3..0000000000 --- a/firmware/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# __________ __ ___. -# Open \______ \ ____ ____ | | _\_ |__ _______ ___ -# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -# \/ \/ \/ \/ \/ -# $Id$ -# - -INCLUDES=$(TARGET_INC) -Iinclude -I$(FIRMDIR) -Iexport -Icommon -Idrivers -I$(BUILDDIR) - -CFLAGS = $(INCLUDES) $(GCCOPTS) $(TARGET) $(BUILDDATE) $(EXTRA_DEFINES) \ - -DMEM=${MEMORYSIZE} - -# Limits for the built-in sysfont: ASCII for bootloaders, ISO8859-1 for normal builds -ifneq (,$(findstring -DBOOTLOADER,$(EXTRA_DEFINES))) - MAXCHAR = 127 -else - MAXCHAR = 255 -endif - -# This sets up 'SRC' based on the files mentioned in SOURCES -include $(TOOLSDIR)/makesrc.inc - -SOURCES = $(SRC) -OBJS2 := $(patsubst %.c, $(OBJDIR)/%.o, $(SRC)) $(OBJDIR)/sysfont.o -OBJS = $(patsubst %.S, $(OBJDIR)/%.o, $(OBJS2)) -DIRS:=. drivers common -OUTPUT = $(BUILDDIR)/librockbox.a -DEPFILE = $(OBJDIR)/dep-firmware - -all: $(OUTPUT) $(EXTRA_TARGETS) - -dep: $(DEPFILE) - -$(OUTPUT): $(BUILDDIR)/sysfont.h $(OBJS) $(DEPFILE) - $(call PRINTS,AR+RANLIB $(@F))$(AR) ruv $@ $(OBJS) >/dev/null 2>&1 - $(SILENT)$(RANLIB) $@ - -include $(TOOLSDIR)/make.inc - -clean: - $(call PRINTS,cleaning firmware)rm -f $(OBJS) $(OUTPUT) $(OBJDIR)/sysfont.c $(DEPFILE) - $(SILENT)rm -rf $(OBJDIR)/drivers $(OBJDIR)/common - -# Special targets -$(OBJDIR)/thread.o: thread.c export/thread.h - $(call PRINTS,CC thread.c)$(CC) -c -O -fomit-frame-pointer $(CFLAGS) $< -o $@ - -$(BUILDDIR)/sysfont.h: ../fonts/08-Schumacher-Clean.bdf - $(call PRINTS,Create sysfont.h)$(TOOLSDIR)/convbdf -l $(MAXCHAR) -h -o $@ $< - -$(OBJDIR)/sysfont.o: ../fonts/08-Schumacher-Clean.bdf - $(call PRINTS,CONVBDF)$(TOOLSDIR)/convbdf -l $(MAXCHAR) -c -o $(OBJDIR)/sysfont.c $< - $(call PRINTS,CC sysfont.c)$(CC) $(CFLAGS) -c $(OBJDIR)/sysfont.c -o $@ - --include $(DEPFILE) diff --git a/firmware/decompressor/Makefile b/firmware/decompressor/Makefile index 33b6affc6d..30bb04e480 100644 --- a/firmware/decompressor/Makefile +++ b/firmware/decompressor/Makefile @@ -27,6 +27,7 @@ $(OBJDIR)/compressed.elf : $(OBJS) $(LINKFILE) $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJS) -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/compressed.map $(LINKFILE): $(LDS) + $(SILENT)mkdir -p $(dir $@) $(call PRINTS,Build LDS file)cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) -E -P $(ROMBUILD) - >$@ $(OBJDIR)/decompressor.o : decompressor.c $(OBJDIR)/uclimage.c diff --git a/firmware/export/config-mrobe500.h b/firmware/export/config-mrobe500.h index 572d018328..5f89a9667d 100644 --- a/firmware/export/config-mrobe500.h +++ b/firmware/export/config-mrobe500.h @@ -147,8 +147,7 @@ /* Define this if you have a Motorola SCF5249 */ #define CONFIG_CPU DM320 -/* Define this if you want to use coldfire's i2c interface */ -//#define CONFIG_I2C I2C_S3C2440 +#define CONFIG_I2C I2C_DM320 /* define this if the hardware can be powered off while charging */ #define HAVE_POWEROFF_WHILE_CHARGING diff --git a/firmware/export/debug.h b/firmware/export/debug.h index dd65c3d7be..f9f93fdcd9 100644 --- a/firmware/export/debug.h +++ b/firmware/export/debug.h @@ -28,6 +28,7 @@ extern void debugf(const char* fmt,...) ATTRIBUTE_PRINTF(1, 2); extern void ldebugf(const char* file, int line, const char *fmt, ...) ATTRIBUTE_PRINTF(3, 4); +#ifndef CODEC #ifdef __GNUC__ /* */ @@ -57,5 +58,5 @@ void breakpoint(void); #endif /* GCC */ - +#endif /* CODEC */ #endif diff --git a/firmware/firmware.make b/firmware/firmware.make new file mode 100644 index 0000000000..992df26141 --- /dev/null +++ b/firmware/firmware.make @@ -0,0 +1,39 @@ +# __________ __ ___. +# Open \______ \ ____ ____ | | _\_ |__ _______ ___ +# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +# \/ \/ \/ \/ \/ +# $Id: Makefile 19082 2008-11-10 23:54:24Z zagor $ +# + +INCLUDES += -I$(FIRMDIR) -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers + +FIRMLIB_SRC += $(call preprocess, $(FIRMDIR)/SOURCES) +FIRMLIB_SRC += $(ROOTDIR)/sysfont.o +FIRMLIB_OBJ := $(call c2obj, $(FIRMLIB_SRC)) +OTHER_SRC += $(FIRMLIB_SRC) + +FIRMLIB = $(BUILDDIR)/firmware/libfirmware.a + +SYSFONT = $(ROOTDIR)/fonts/08-Schumacher-Clean.bdf + +CLEANOBJS += $(BUILDDIR)/sysfont.* + +# Limits for the built-in sysfont: ASCII for bootloaders, ISO8859-1 for normal builds +ifneq (,$(findstring -DBOOTLOADER,$(EXTRA_DEFINES))) + MAXCHAR = 127 +else + MAXCHAR = 255 +endif + +$(FIRMLIB): $(FIRMLIB_OBJ) + $(call PRINTS,AR $(@F))$(AR) rs $@ $^ >/dev/null 2>&1 + +$(BUILDDIR)/sysfont.h: $(SYSFONT) $(TOOLS) + $(call PRINTS,CONVBDF $(subst $(ROOTDIR)/,,$<))$(TOOLSDIR)/convbdf -l $(MAXCHAR) -h -o $@ $< + +$(BUILDDIR)/sysfont.o: $(SYSFONT) $(BUILDDIR)/sysfont.h + $(call PRINTS,CONVBDF $(subst $(ROOTDIR)/,,$<))$(TOOLSDIR)/convbdf -l $(MAXCHAR) -c -o $(BUILDDIR)/sysfont.c $< + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$(BUILDDIR)/sysfont.c))$(CC) $(CFLAGS) -c $(BUILDDIR)/sysfont.c -o $@ + -- cgit v1.2.3