From 6b8f0b0267eacf8837bdb60fb6be162a07cd7cff Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Wed, 14 Dec 2011 22:00:06 +0000 Subject: [PATCH] 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 | 33 ++++++++----- rbutil/mkmpioboot/Makefile | 98 ++++---------------------------------- 2 files changed, 29 insertions(+), 102 deletions(-) diff --git a/rbutil/libtools.make b/rbutil/libtools.make index 1e5a297f79..d9ead7072d 100644 --- a/rbutil/libtools.make +++ b/rbutil/libtools.make @@ -58,19 +58,13 @@ all: $(BINARY) OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(notdir $(SOURCES)))) LIBOBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(notdir $(LIBSOURCES)))) -$(OBJDIR)%.o: %.c - @echo CC $< - $(SILENT)mkdir -p $(dir $@) - $(SILENT)$(CROSS)$(CC) $(CFLAGS) -c -o $@ $< - -lib$(OUTPUT)$(RBARCH).a: $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a -lib$(OUTPUT)$(RBARCH): $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a - -$(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a: $(LIBOBJS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) - @echo AR $(notdir $@) - $(SILENT)mkdir -p $(dir $@) - $(SILENT)$(AR) rucs $@ $^ +# 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)) @@ -79,6 +73,21 @@ $(BINARY): $(OBJS) $(EXTRADEPS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) # 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 + +$(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a: $(LIBOBJS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) + @echo AR $(notdir $@) + $(SILENT)mkdir -p $(dir $@) + $(SILENT)$(AR) rucs $@ $^ + # 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)\" +CFLAGS = -I../../tools/ucl/include -Wall -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) - -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