From cdde25b597eb4047e9db27bb8bbcf938e4a43cfe Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 18 Feb 2005 13:47:17 +0000 Subject: Unified build system to use SOURCES for sim builds too, a single Makefile-look made by configure and various related adjustments. This has not yet been tested on cygwin. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6001 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/Makefile | 41 ++++++++++++++++++++++++++++++++++++++--- apps/plugins/lib/Makefile | 7 ++++--- 2 files changed, 42 insertions(+), 6 deletions(-) (limited to 'apps/plugins') diff --git a/apps/plugins/Makefile b/apps/plugins/Makefile index 0c90bde9b1..6af39327bc 100644 --- a/apps/plugins/Makefile +++ b/apps/plugins/Makefile @@ -24,16 +24,19 @@ LDS := plugin.lds LINKFILE := $(OBJDIR)/pluginlink.lds DEPFILE = $(OBJDIR)/dep-plugins -SRC := $(shell cat SOURCES | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) \ - $(INCLUDES) $(TARGET) $(DEFINES) -E -P -include "config.h" - ) +SRC := $(shell cat SOURCES | gcc -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) \ + $(TARGET) $(DEFINES) $(EXTRA_DEFINES) -E -P -include "config.h" - ) ROCKS := $(SRC:%.c=$(OBJDIR)/%.rock) SOURCES = $(SRC) ELFS := $(SRC:%.c=$(OBJDIR)/%.elf) OBJS := $(SRC:%.c=$(OBJDIR)/%.o) +# as created by the cross-compiler for win32: +DEFS := $(SRC:%.c=$(OBJDIR)/%.def) DIRS = . all: $(OBJDIR)/libplugin.a $(ROCKS) $(DEPFILE) +ifndef SIMVER $(OBJDIR)/%.elf: $(OBJDIR)/%.o $(LINKFILE) $(OBJDIR)/libplugin.a @echo "LD $@" @$(CC) $(GCCOPTS) -O -nostdlib -o $@ $< -L$(OBJDIR) $(CODECLIBS) -lplugin -lgcc -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/$*.map @@ -41,6 +44,37 @@ $(OBJDIR)/%.elf: $(OBJDIR)/%.o $(LINKFILE) $(OBJDIR)/libplugin.a $(OBJDIR)/%.rock : $(OBJDIR)/%.elf @echo "OBJCOPY $<" @$(OC) -O binary $< $@ +else + +ifeq ($(SIMVER), x11) +################################################### +# This is the X11 simulator version + +$(OBJDIR)/%.rock : $(OBJDIR)/%.o $(APPSDIR)/plugin.h + @echo "LD $@" + @$(CC) $(APPCFLAGS) -DPLUGIN -shared $< -L$(OBJDIR) -lplugin -o $@ +ifeq ($(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 +################################################### +# This is the win32 simulator version +DLLTOOLFLAGS = --export-all +DLLWRAPFLAGS = -s --entry _DllMain@12 --target=i386-mingw32 -mno-cygwin + +$(OBJDIR)/%.rock : $(OBJDIR)/%.o $(APPSDIR)/plugin.h + @echo "DLL $@" + @$(DLLTOOL) $(DLLTOOLFLAGS) -z $(OBJDIR)/$*.def $< + @$(DLLWRAP) $(DLLWRAPFLAGS) --def $(OBJDIR)/$*.def $< $(OBJDIR)/libplugin.a -o $@ + @chmod -x $@ +endif # end of win32-simulator + +endif # end of simulator section include $(TOOLSDIR)/make.inc @@ -56,7 +90,8 @@ $(LINKFILE): $(LDS) clean: @echo "cleaning plugins" - @rm -f $(ROCKS) $(LINKFILE) $(OBJDIR)/*.rock $(DEPFILE) $(ELFS) $(OBJS) + @rm -f $(ROCKS) $(LINKFILE) $(OBJDIR)/*.rock $(DEPFILE) $(ELFS) \ + $(OBJS) $(DEFS) @$(MAKE) -C lib clean -include $(DEPFILE) diff --git a/apps/plugins/lib/Makefile b/apps/plugins/lib/Makefile index b9daf737c4..b492bb578f 100644 --- a/apps/plugins/lib/Makefile +++ b/apps/plugins/lib/Makefile @@ -18,9 +18,9 @@ INCLUDES += -I$(APPSDIR)/$(APPEXTRA) endif CFLAGS = $(GCCOPTS) \ -$(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} +$(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} -DPLUGIN -SRC := $(shell cat SOURCES | $(CC) -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) -E -P -include "config.h" - ) +SRC := $(shell cat SOURCES | gcc -DMEMORYSIZE=$(MEMORYSIZE) $(INCLUDES) $(TARGET) $(DEFINES) $(EXTRA_DEFINES) -E -P -include "config.h" - ) SOURCES = $(SRC) OBJS := $(SRC:%.c=$(OBJDIR)/%.o) DEPFILE = $(OBJDIR)/dep-pluginlib @@ -31,8 +31,9 @@ OUTPUT = $(OBJDIR)/libplugin.a all: $(OUTPUT) $(OUTPUT): $(OBJS) - @echo "AR $@" + @echo "AR+RANLIB $@" @$(AR) ruv $@ $+ >/dev/null 2>&1 + @$(RANLIB) $@ include $(TOOLSDIR)/make.inc -- cgit v1.2.3