summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2011-12-14 22:00:06 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2011-12-14 22:00:06 +0000
commit6b8f0b0267eacf8837bdb60fb6be162a07cd7cff (patch)
treea5da49a7e8a60ac2a7f3fbdcf3b72a53b5b11dde
parent29937388fd372bc2e36a5dd317deea526fee4812 (diff)
downloadrockbox-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.make25
-rw-r--r--rbutil/mkmpioboot/Makefile98
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)
58OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(notdir $(SOURCES)))) 58OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(notdir $(SOURCES))))
59LIBOBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(notdir $(LIBSOURCES)))) 59LIBOBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(notdir $(LIBSOURCES))))
60 60
61# additional link dependencies for the standalone executable
62# extra dependencies: libucl
63LIBUCL = libucl$(RBARCH).a
64$(LIBUCL): $(OBJDIR)$(LIBUCL)
65
66$(OBJDIR)$(LIBUCL):
67 $(SILENT)$(MAKE) -C $(TOP)/../tools/ucl/src TARGET_DIR=$(OBJDIR) $@
68
69# building the standalone executable
70$(BINARY): $(OBJS) $(EXTRADEPS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS))
71 @echo LD $@
72# $(SILENT)mkdir -p $(dir $@)
73# EXTRADEPS need to be built into OBJDIR.
74 $(SILENT)$(CROSS)$(CC) $(CFLAGS) -o $(BINARY) $(OBJS) $(addprefix $(OBJDIR),$(EXTRADEPS)) $(addprefix $(OBJDIR),$(EXTRALIBOBJS))
75
76# common rules
61$(OBJDIR)%.o: %.c 77$(OBJDIR)%.o: %.c
62 @echo CC $< 78 @echo CC $<
63 $(SILENT)mkdir -p $(dir $@) 79 $(SILENT)mkdir -p $(dir $@)
64 $(SILENT)$(CROSS)$(CC) $(CFLAGS) -c -o $@ $< 80 $(SILENT)$(CROSS)$(CC) $(CFLAGS) -c -o $@ $<
65 81
82# lib rules
66lib$(OUTPUT)$(RBARCH).a: $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a 83lib$(OUTPUT)$(RBARCH).a: $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a
67lib$(OUTPUT)$(RBARCH): $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a 84lib$(OUTPUT)$(RBARCH): $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a
68 85
@@ -71,14 +88,6 @@ $(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a: $(LIBOBJS) $(addprefix $(OBJDIR),$(EXTRALI
71 $(SILENT)mkdir -p $(dir $@) 88 $(SILENT)mkdir -p $(dir $@)
72 $(SILENT)$(AR) rucs $@ $^ 89 $(SILENT)$(AR) rucs $@ $^
73 90
74
75# building the standalone executable
76$(BINARY): $(OBJS) $(EXTRADEPS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS))
77 @echo LD $@
78# $(SILENT)mkdir -p $(dir $@)
79# EXTRADEPS need to be built into OBJDIR.
80 $(SILENT)$(CROSS)$(CC) $(CFLAGS) -o $(BINARY) $(OBJS) $(addprefix $(OBJDIR),$(EXTRADEPS)) $(addprefix $(OBJDIR),$(EXTRALIBOBJS))
81
82# some trickery to build ppc and i386 from a single call 91# some trickery to build ppc and i386 from a single call
83ifeq ($(RBARCH),) 92ifeq ($(RBARCH),)
84$(TARGET_DIR)lib$(OUTPUT)i386.a: 93$(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 @@
5# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 5# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6# \/ \/ \/ \/ \/ 6# \/ \/ \/ \/ \/
7 7
8#change for releases 8TARGET_DIR ?= $(shell pwd)/
9ifndef APPVERSION
10APPVERSION=`../../tools/version.sh ../../`
11endif
12
13# We use the UCL code available in the Rockbox tools/ directory 9# We use the UCL code available in the Rockbox tools/ directory
14CFLAGS=-I../../tools/ucl/include -Wall -DVERSION=\"$(APPVERSION)\" 10CFLAGS = -I../../tools/ucl/include -Wall
15
16ifndef V
17SILENT = @
18endif
19
20ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN)
21OUTPUT=mkmpioboot.exe
22CFLAGS+=-mno-cygwin
23else
24ifeq ($(findstring MINGW,$(shell uname)),MINGW)
25OUTPUT=mkmpioboot.exe
26else
27ifeq ($(findstring mingw,$(CC)),mingw)
28OUTPUT=mkmpioboot.exe
29else
30OUTPUT=mkmpioboot
31endif
32endif
33endif
34
35ifdef RBARCH
36CFLAGS += -arch $(RBARCH)
37OBJDIR = $(TARGET_DIR)build/$(RBARCH)/
38else
39OBJDIR = $(TARGET_DIR)build/
40endif
41
42TARGET_DIR ?= $(shell pwd)
43 11
44all: $(OUTPUT) 12OUTPUT = mkmpioboot
45 13
46# inputs 14# inputs
47LIBSOURCES := mkmpioboot.c 15LIBSOURCES = mkmpioboot.c
48SOURCES := $(LIBSOURCES) main.c 16SOURCES = $(LIBSOURCES) main.c
49OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(SOURCES))) 17EXTRADEPS = $(LIBUCL)
50LIBOBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(LIBSOURCES))) 18
51EXTRADEPS := $(LIBUCL) 19include ../libtools.make
52 20
53# explicit dependencies 21# explicit dependencies
54$(OBJDIR)mkmpioboot.o: mkmpioboot.c mkmpioboot.h 22$(OBJDIR)mkmpioboot.o: mkmpioboot.c mkmpioboot.h
55$(OBJDIR)main.o: main.c
56
57$(OBJDIR)%.o: %.c
58 @echo CC $< $
59 $(SILENT)mkdir -p $(dir $@)
60 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $<
61
62libmkmpioboot$(RBARCH).a: $(TARGET_DIR)libmkmpioboot$(RBARCH).a
63
64$(TARGET_DIR)libmkmpioboot$(RBARCH).a: $(LIBOBJS)
65 @echo AR $(notdir $@)
66 $(SILENT)$(AR) rucs $@ $^
67
68# building the standalone executable
69$(OUTPUT): $(OBJS) $(EXTRADEPS)
70 @echo LD $@
71 $(SILENT)$(CC) $(CFLAGS) -o $(OUTPUT) $(OBJS) $(EXTRADEPS)
72
73# some trickery to build ppc and i386 from a single call
74ifeq ($(RBARCH),)
75$(TARGET_DIR)libmkmpiobooti386.a:
76 make RBARCH=i386 TARGET_DIR=$(TARGET_DIR) libmkmpiobooti386.a
77
78$(TARGET_DIR)libmkmpiobootppc.a:
79 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libmkmpiobootppc.a
80endif
81
82libmkmpioboot-universal: $(TARGET_DIR)libmkmpiobooti386.a $(TARGET_DIR)libmkmpiobootppc.a
83 @echo lipo $(TARGET_DIR)libmkmpioboot.a
84 $(SILENT) rm -f $(TARGET_DIR)libmkmpioboot.a
85 $(SILENT)lipo -create $(TARGET_DIR)libmkmpiobootppc.a $(TARGET_DIR)libmkmpiobooti386.a -output $(TARGET_DIR)libmkmpioboot.a
86
87clean:
88 rm -f $(OBJS) $(OUTPUT) $(TARGET_DIR)libmkmpioboot*.a mkmpioboot.dmg
89 rm -rf mkmpioboot-* i386 ppc $(OBJDIR)
90
91mkmpioboot-i386:
92 $(MAKE) RBARCH=i386
93 mv mkmpioboot mkmpioboot-i386
94
95mkmpioboot-ppc:
96 $(MAKE) RBARCH=ppc
97 mv mkmpioboot mkmpioboot-ppc
98
99mkmpioboot-mac: mkmpioboot-i386 mkmpioboot-ppc
100 $(SILENT)lipo -create mkmpioboot-ppc mkmpioboot-i386 -output mkmpioboot-mac
101 23
102mkmpioboot.dmg: mkmpioboot-mac
103 mkdir -p mkmpioboot-dmg
104 cp -p mkmpioboot-mac mkmpioboot-dmg
105 hdiutil create -srcfolder mkmpioboot-dmg mkmpioboot.dmg