From 6b8f0b0267eacf8837bdb60fb6be162a07cd7cff Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Wed, 14 Dec 2011 22:00:06 +0000 Subject: mkmpioboot: use common Makefile. Extend common libtools.make with libucl dependency, which will be needed by other tools as well. Update mkmpioboot. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31259 a1c6a512-1295-4272-9138-f99709370657 --- rbutil/libtools.make | 25 ++++++++---- rbutil/mkmpioboot/Makefile | 98 ++++------------------------------------------ 2 files changed, 25 insertions(+), 98 deletions(-) diff --git a/rbutil/libtools.make b/rbutil/libtools.make index 1e5a297f79..d9ead7072d 100644 --- a/rbutil/libtools.make +++ b/rbutil/libtools.make @@ -58,11 +58,28 @@ all: $(BINARY) OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(notdir $(SOURCES)))) LIBOBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(notdir $(LIBSOURCES)))) +# additional link dependencies for the standalone executable +# extra dependencies: libucl +LIBUCL = libucl$(RBARCH).a +$(LIBUCL): $(OBJDIR)$(LIBUCL) + +$(OBJDIR)$(LIBUCL): + $(SILENT)$(MAKE) -C $(TOP)/../tools/ucl/src TARGET_DIR=$(OBJDIR) $@ + +# building the standalone executable +$(BINARY): $(OBJS) $(EXTRADEPS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) + @echo LD $@ +# $(SILENT)mkdir -p $(dir $@) +# EXTRADEPS need to be built into OBJDIR. + $(SILENT)$(CROSS)$(CC) $(CFLAGS) -o $(BINARY) $(OBJS) $(addprefix $(OBJDIR),$(EXTRADEPS)) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) + +# common rules $(OBJDIR)%.o: %.c @echo CC $< $(SILENT)mkdir -p $(dir $@) $(SILENT)$(CROSS)$(CC) $(CFLAGS) -c -o $@ $< +# lib rules lib$(OUTPUT)$(RBARCH).a: $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a lib$(OUTPUT)$(RBARCH): $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a @@ -71,14 +88,6 @@ $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a: $(LIBOBJS) $(addprefix $(OBJDIR),$(EXTRALI $(SILENT)mkdir -p $(dir $@) $(SILENT)$(AR) rucs $@ $^ - -# building the standalone executable -$(BINARY): $(OBJS) $(EXTRADEPS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) - @echo LD $@ -# $(SILENT)mkdir -p $(dir $@) -# EXTRADEPS need to be built into OBJDIR. - $(SILENT)$(CROSS)$(CC) $(CFLAGS) -o $(BINARY) $(OBJS) $(addprefix $(OBJDIR),$(EXTRADEPS)) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) - # some trickery to build ppc and i386 from a single call ifeq ($(RBARCH),) $(TARGET_DIR)lib$(OUTPUT)i386.a: diff --git a/rbutil/mkmpioboot/Makefile b/rbutil/mkmpioboot/Makefile index 8077bdceb6..8b560d6b29 100644 --- a/rbutil/mkmpioboot/Makefile +++ b/rbutil/mkmpioboot/Makefile @@ -5,101 +5,19 @@ # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ # \/ \/ \/ \/ \/ -#change for releases -ifndef APPVERSION -APPVERSION=`../../tools/version.sh ../../` -endif - +TARGET_DIR ?= $(shell pwd)/ # We use the UCL code available in the Rockbox tools/ directory -CFLAGS=-I../../tools/ucl/include -Wall -DVERSION=\"$(APPVERSION)\" - -ifndef V -SILENT = @ -endif - -ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN) -OUTPUT=mkmpioboot.exe -CFLAGS+=-mno-cygwin -else -ifeq ($(findstring MINGW,$(shell uname)),MINGW) -OUTPUT=mkmpioboot.exe -else -ifeq ($(findstring mingw,$(CC)),mingw) -OUTPUT=mkmpioboot.exe -else -OUTPUT=mkmpioboot -endif -endif -endif - -ifdef RBARCH -CFLAGS += -arch $(RBARCH) -OBJDIR = $(TARGET_DIR)build/$(RBARCH)/ -else -OBJDIR = $(TARGET_DIR)build/ -endif - -TARGET_DIR ?= $(shell pwd) +CFLAGS = -I../../tools/ucl/include -Wall -all: $(OUTPUT) +OUTPUT = mkmpioboot # inputs -LIBSOURCES := mkmpioboot.c -SOURCES := $(LIBSOURCES) main.c -OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(SOURCES))) -LIBOBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(LIBSOURCES))) -EXTRADEPS := $(LIBUCL) +LIBSOURCES = mkmpioboot.c +SOURCES = $(LIBSOURCES) main.c +EXTRADEPS = $(LIBUCL) + +include ../libtools.make # explicit dependencies $(OBJDIR)mkmpioboot.o: mkmpioboot.c mkmpioboot.h -$(OBJDIR)main.o: main.c - -$(OBJDIR)%.o: %.c - @echo CC $< $ - $(SILENT)mkdir -p $(dir $@) - $(SILENT)$(CC) $(CFLAGS) -c -o $@ $< - -libmkmpioboot$(RBARCH).a: $(TARGET_DIR)libmkmpioboot$(RBARCH).a - -$(TARGET_DIR)libmkmpioboot$(RBARCH).a: $(LIBOBJS) - @echo AR $(notdir $@) - $(SILENT)$(AR) rucs $@ $^ - -# building the standalone executable -$(OUTPUT): $(OBJS) $(EXTRADEPS) - @echo LD $@ - $(SILENT)$(CC) $(CFLAGS) -o $(OUTPUT) $(OBJS) $(EXTRADEPS) - -# some trickery to build ppc and i386 from a single call -ifeq ($(RBARCH),) -$(TARGET_DIR)libmkmpiobooti386.a: - make RBARCH=i386 TARGET_DIR=$(TARGET_DIR) libmkmpiobooti386.a - -$(TARGET_DIR)libmkmpiobootppc.a: - make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libmkmpiobootppc.a -endif - -libmkmpioboot-universal: $(TARGET_DIR)libmkmpiobooti386.a $(TARGET_DIR)libmkmpiobootppc.a - @echo lipo $(TARGET_DIR)libmkmpioboot.a - $(SILENT) rm -f $(TARGET_DIR)libmkmpioboot.a - $(SILENT)lipo -create $(TARGET_DIR)libmkmpiobootppc.a $(TARGET_DIR)libmkmpiobooti386.a -output $(TARGET_DIR)libmkmpioboot.a - -clean: - rm -f $(OBJS) $(OUTPUT) $(TARGET_DIR)libmkmpioboot*.a mkmpioboot.dmg - rm -rf mkmpioboot-* i386 ppc $(OBJDIR) - -mkmpioboot-i386: - $(MAKE) RBARCH=i386 - mv mkmpioboot mkmpioboot-i386 - -mkmpioboot-ppc: - $(MAKE) RBARCH=ppc - mv mkmpioboot mkmpioboot-ppc - -mkmpioboot-mac: mkmpioboot-i386 mkmpioboot-ppc - $(SILENT)lipo -create mkmpioboot-ppc mkmpioboot-i386 -output mkmpioboot-mac -mkmpioboot.dmg: mkmpioboot-mac - mkdir -p mkmpioboot-dmg - cp -p mkmpioboot-mac mkmpioboot-dmg - hdiutil create -srcfolder mkmpioboot-dmg mkmpioboot.dmg -- cgit v1.2.3