diff options
author | Björn Stenberg <bjorn@haxx.se> | 2008-11-20 11:27:31 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2008-11-20 11:27:31 +0000 |
commit | c6b3d38a156dd624760a8eb1bb374affd43b4f2a (patch) | |
tree | 493eba929e2396d86cf4f077709aa09fe172cd35 /apps/plugins/chessbox | |
parent | f66c30346783a400a029bedcd60ab67c81c34a07 (diff) |
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
Diffstat (limited to 'apps/plugins/chessbox')
-rw-r--r-- | apps/plugins/chessbox/Makefile | 114 | ||||
-rw-r--r-- | apps/plugins/chessbox/SOURCES | 4 | ||||
-rw-r--r-- | apps/plugins/chessbox/chessbox.c | 2 | ||||
-rw-r--r-- | apps/plugins/chessbox/chessbox.make | 58 |
4 files changed, 63 insertions, 115 deletions
diff --git a/apps/plugins/chessbox/Makefile b/apps/plugins/chessbox/Makefile deleted file mode 100644 index 4efb40df4c..0000000000 --- a/apps/plugins/chessbox/Makefile +++ /dev/null @@ -1,114 +0,0 @@ -# __________ __ ___. -# Open \______ \ ____ ____ | | _\_ |__ _______ ___ -# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -# \/ \/ \/ \/ \/ -# $Id$ -# - -INCLUDES = -I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ - -I$(BUILDDIR)/pluginbitmaps -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) \ - -I$(BUILDDIR) -CFLAGS = $(INCLUDES) $(GCCOPTS) -O2 $(TARGET) $(EXTRA_DEFINES) \ - -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN - -ifdef APPEXTRA - INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA))) -endif - -LINKFILE := $(OBJDIR)/link.lds -DEPFILE = $(OBJDIR)/dep-chessbox -SRC = chessbox.c gnuchess.c opening.c chessbox_pgn.c - -SOURCES = $(SRC) -OBJS := $(SRC:%.c=$(OBJDIR)/%.o) -DIRS = . - -ifndef SIMVER -ifneq (,$(strip $(foreach tgt,RECORDER ONDIO,$(findstring $(tgt),$(TARGET))))) - LDS := archos.lds - OUTPUT = $(OUTDIR)/chessbox.ovl -else ## iRiver target - LDS := ../plugin.lds - OUTPUT = $(OUTDIR)/chessbox.rock -endif -else ## simulators - OUTPUT = $(OUTDIR)/chessbox.rock -endif - -all: $(OUTPUT) - -ifndef SIMVER -$(OBJDIR)/chessbox.elf: $(OBJS) $(LINKFILE) $(BITMAPLIBS) - $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) -o $@ $(OBJS) -L$(BUILDDIR) -lplugin -lgcc \ - $(LINKBITMAPS) -T$(LINKFILE) -Wl,--gc-sections -Wl,-Map,$(OBJDIR)/chessbox.map - -$(OUTPUT): $(OBJDIR)/chessbox.elf - $(call PRINTS,OBJCOPY $(@F))$(OC) -O binary $< $@ -else - -ifeq ($(SIMVER), x11) -################################################### -# This is the X11 simulator version - -$(OUTPUT): $(OBJS) - $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) $(SHARED_FLAG) $(OBJS) -L$(BUILDDIR) -lplugin $(LINKBITMAPS) -o $@ -ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN) -# 'x' must be kept or you'll have "Win32 error 5" -# $ fgrep 5 /usr/include/w32api/winerror.h | head -1 -# #define ERROR_ACCESS_DENIED 5L -else - @chmod -x $@ -endif - -else # end of x11-simulator -ifeq ($(SIMVER), sdl) -################################################### -# This is the SDL simulator version - -$(OUTPUT): $(OBJS) - $(call PRINTS,LD $(@F))$(CC) $(CFLAGS) $(SHARED_FLAG) $(OBJS) -L$(BUILDDIR) -lplugin $(LINKBITMAPS) -o $@ -ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN) -# 'x' must be kept or you'll have "Win32 error 5" -# $ fgrep 5 /usr/include/w32api/winerror.h | head -1 -# #define ERROR_ACCESS_DENIED 5L -else - @chmod -x $@ -endif - -else # end of sdl-simulator -################################################### -# This is the win32 simulator version -DLLTOOLFLAGS = --export-all -DLLWRAPFLAGS = -s --entry _DllMain@12 --target=i386-mingw32 -mno-cygwin - -$(OUTPUT): $(OBJS) - $(call PRINTS,DLL $(@F))$(DLLTOOL) $(DLLTOOLFLAGS) -z $(OBJDIR)/$*.def $(OBJS) - $(SILENT)$(DLLWRAP) $(DLLWRAPFLAGS) --def $(OBJDIR)/$*.def $(OBJS) \ - $(BUILDDIR)/libplugin.a $(BITMAPLIBS) -o $@ -ifeq ($(findstring CYGWIN,$(UNAME)),CYGWIN) -# 'x' must be kept or you'll have "Win32 error 5" -# $ fgrep 5 /usr/include/w32api/winerror.h | head -1 -# #define ERROR_ACCESS_DENIED 5L -else - @chmod -x $@ -endif -endif # end of win32-simulator -endif -endif # end of simulator section - - -include $(TOOLSDIR)/make.inc - -# MEMORYSIZE should be passed on to this makefile with the chosen memory size -# given in number of MB -$(LINKFILE): $(LDS) - $(call PRINTS,build $(@F))cat $< | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) \ - $(DEFINES) -E -P - >$@ - -clean: - $(call PRINTS,cleaning chessbox)rm -rf $(OBJDIR)/chessbox - $(SILENT)rm -f $(OBJDIR)/chessbox.* $(DEPFILE) - --include $(DEPFILE) diff --git a/apps/plugins/chessbox/SOURCES b/apps/plugins/chessbox/SOURCES new file mode 100644 index 0000000000..067e3f084a --- /dev/null +++ b/apps/plugins/chessbox/SOURCES @@ -0,0 +1,4 @@ +chessbox.c +gnuchess.c +opening.c +chessbox_pgn.c diff --git a/apps/plugins/chessbox/chessbox.c b/apps/plugins/chessbox/chessbox.c index f34bdbf24a..f8db7d9b7f 100644 --- a/apps/plugins/chessbox/chessbox.c +++ b/apps/plugins/chessbox/chessbox.c @@ -43,7 +43,7 @@ extern const fb_data chessbox_pieces[]; PLUGIN_HEADER /* Tile size defined by the assigned bitmap */ -#include "chessbox_pieces.h" +#include "pluginbitmaps/chessbox_pieces.h" #define TILE_WIDTH BMPWIDTH_chessbox_pieces #define TILE_HEIGHT (BMPHEIGHT_chessbox_pieces/26) diff --git a/apps/plugins/chessbox/chessbox.make b/apps/plugins/chessbox/chessbox.make new file mode 100644 index 0000000000..d42984c771 --- /dev/null +++ b/apps/plugins/chessbox/chessbox.make @@ -0,0 +1,58 @@ +# __________ __ ___. +# Open \______ \ ____ ____ | | _\_ |__ _______ ___ +# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +# \/ \/ \/ \/ \/ +# $Id: Makefile 19082 2008-11-10 23:54:24Z zagor $ +# + +CHESSBOX_SRCDIR = $(APPSDIR)/plugins/chessbox +CHESSBOX_OBJDIR = $(BUILDDIR)/apps/plugins/chessbox + +CHESSBOX_SRC := $(call preprocess, $(CHESSBOX_SRCDIR)/SOURCES) +CHESSBOX_OBJ := $(call c2obj, $(CHESSBOX_SRC)) + +OTHER_SRC += $(CHESSBOX_SRC) + +ifndef SIMVER +ifneq (,$(strip $(foreach tgt,RECORDER ONDIO,$(findstring $(tgt),$(TARGET))))) + ## archos recorder targets + CHESSBOX_INLDS := $(CHESSBOX_SRCDIR)/archos.lds + ROCKS += $(CHESSBOX_OBJDIR)/chessbox.ovl +else + ### all other targets + CHESSBOX_INLDS := $(APPSDIR)/plugins/plugin.lds + ROCKS += $(CHESSBOX_OBJDIR)/chessbox.rock +endif + CHESSBOX_OVLFLAGS = -T$(CHESSBOX_OUTLDS) -Wl,--gc-sections -Wl,-Map,$*.map + CHESSBOX_OUTLDS = $(CHESSBOX_OBJDIR)/chessbox.lds +else + ### simulator + ROCKS += $(CHESSBOX_OBJDIR)/chessbox.rock + CHESSBOX_OVLFLAGS = $(SHARED_FLAG) # <-- from Makefile +endif + +ifeq ($(CPU),sh) +# sh need to retain its' -Os +CHESSBOXFLAGS = $(PLUGINFLAGS) +else +CHESSBOXFLAGS = $(filter-out -O%,$(PLUGINFLAGS)) -O2 +endif + +$(CHESSBOX_OUTLDS): $(CHESSBOX_INLDS) $(CHESSBOX_OBJ) + $(call PRINTS,PP $(<F))$(call preprocess2file,$<,$@) + +$(CHESSBOX_OBJDIR)/chessbox.rock: $(CHESSBOX_OBJ) $(CHESSBOX_OUTLDS) $(PLUGINBITMAPLIB) + +$(CHESSBOX_OBJDIR)/chessbox.ovl: $(CHESSBOX_OBJ) $(CHESSBOX_OUTLDS) $(PLUGINBITMAPLIB) + $(SILENT)$(CC) $(PLUGINFLAGS) -o $(CHESSBOX_OBJDIR)/$*.elf \ + $(filter %.o, $^) \ + $(filter %.a, $^) \ + -lgcc $(CHESSBOX_OVLFLAGS) + $(call PRINTS,LD $(@F))$(OC) -O binary $(CHESSBOX_OBJDIR)/$*.elf $@ + +# special pattern rule for compiling chessbox with extra flags +$(CHESSBOX_OBJDIR)/%.o: $(CHESSBOX_SRCDIR)/%.c $(PLUGINBITMAPLIB) $(CHESSBOX_SRCDIR)/chessbox.make + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) -I$(dir $<) $(CHESSBOXFLAGS) -c $< -o $@ |