diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2011-12-14 22:00:06 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2011-12-14 22:00:06 +0000 |
commit | 6b8f0b0267eacf8837bdb60fb6be162a07cd7cff (patch) | |
tree | a5da49a7e8a60ac2a7f3fbdcf3b72a53b5b11dde | |
parent | 29937388fd372bc2e36a5dd317deea526fee4812 (diff) | |
download | rockbox-6b8f0b0267eacf8837bdb60fb6be162a07cd7cff.tar.gz rockbox-6b8f0b0267eacf8837bdb60fb6be162a07cd7cff.zip |
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
-rw-r--r-- | rbutil/libtools.make | 25 | ||||
-rw-r--r-- | 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 |