summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2011-09-26 20:51:23 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2011-09-26 20:51:23 +0000
commitc7c657ca9264b1bc7dc313a92e285128fc9ffea3 (patch)
treef88968ce38fb14c7f458d5f1d1cfff23e93d4a22
parentccc5f4c4e1687cd7cf515f26da0f5ab918090736 (diff)
downloadrockbox-c7c657ca9264b1bc7dc313a92e285128fc9ffea3.tar.gz
rockbox-c7c657ca9264b1bc7dc313a92e285128fc9ffea3.zip
Prevent unnecessary rebuilding of libs.
- When building for Rockbox Utility the called Makefiles would rebuild the libs every time. Change dependencies a bit to allow make to properly detect if the lib is already up to date. - Remove dependency on output folder in some cases to avoid unnecessary rebuilds. - Add standard Rockbox header to files lacking it. - Make make calls from qmake silent. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30608 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--rbutil/mkamsboot/Makefile24
-rw-r--r--rbutil/mkmpioboot/Makefile17
-rw-r--r--rbutil/mktccboot/Makefile34
-rw-r--r--rbutil/rbutilqt/rbutilqt.pro10
-rw-r--r--tools/ucl/src/Makefile28
5 files changed, 66 insertions, 47 deletions
diff --git a/rbutil/mkamsboot/Makefile b/rbutil/mkamsboot/Makefile
index a76259794e..052904211b 100644
--- a/rbutil/mkamsboot/Makefile
+++ b/rbutil/mkamsboot/Makefile
@@ -1,9 +1,15 @@
1# __________ __ ___.
2# Open \______ \ ____ ____ | | _\_ |__ _______ ___
3# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6# \/ \/ \/ \/ \/
1 7
2#change for releases 8#change for releases
3ifndef APPVERSION 9ifndef APPVERSION
4APPVERSION=`../../tools/version.sh ../../` 10APPVERSION=$(shell ../../tools/version.sh ../../)
5endif 11endif
6 12TARGET_DIR ?= $(shell pwd)/
7# We use the UCL code available in the Rockbox tools/ directory 13# We use the UCL code available in the Rockbox tools/ directory
8CFLAGS=-I../../tools/ucl/include -Wall -DVERSION=\"$(APPVERSION)\" 14CFLAGS=-I../../tools/ucl/include -Wall -DVERSION=\"$(APPVERSION)\"
9 15
@@ -37,10 +43,10 @@ endif
37all: $(OUTPUT) 43all: $(OUTPUT)
38 44
39# additional link dependencies for the standalone executable 45# additional link dependencies for the standalone executable
40LIBUCL=../../tools/ucl/src/libucl$(RBARCH).a 46LIBUCL=$(OBJDIR)libucl$(RBARCH).a
41 47
42$(LIBUCL): 48$(LIBUCL):
43 $(MAKE) -C ../../tools/ucl/src $(TARGET_DIR)libucl$(RBARCH).a 49 $(SILENT)$(MAKE) -C ../../tools/ucl/src TARGET_DIR=$(OBJDIR) libucl$(RBARCH).a
44 50
45# inputs 51# inputs
46LIBSOURCES := dualboot.c md5.c mkamsboot.c 52LIBSOURCES := dualboot.c md5.c mkamsboot.c
@@ -58,9 +64,11 @@ $(OBJDIR)%.o: %.c
58 $(SILENT)mkdir -p $(dir $@) 64 $(SILENT)mkdir -p $(dir $@)
59 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $< 65 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $<
60 66
61libmkamsboot$(RBARCH).a: $(LIBOBJS) 67libmkamsboot$(RBARCH).a: $(TARGET_DIR)libmkamsboot$(RBARCH).a
62 @echo AR $@ 68
63 $(SILENT)$(AR) rucs $(TARGET_DIR)$@ $^ 69$(TARGET_DIR)libmkamsboot$(RBARCH).a: $(LIBOBJS)
70 @echo AR $(notdir $@)
71 $(SILENT)$(AR) rucs $@ $^
64 72
65# building the standalone executable 73# building the standalone executable
66$(OUTPUT): $(OBJS) $(EXTRADEPS) 74$(OUTPUT): $(OBJS) $(EXTRADEPS)
@@ -74,7 +82,7 @@ $(TARGET_DIR)libmkamsbooti386.a:
74 82
75$(TARGET_DIR)libmkamsbootppc.a: 83$(TARGET_DIR)libmkamsbootppc.a:
76 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libmkamsbootppc.a 84 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libmkamsbootppc.a
77endif 85endif
78 86
79libmkamsboot-universal: $(TARGET_DIR)libmkamsbooti386.a $(TARGET_DIR)libmkamsbootppc.a 87libmkamsboot-universal: $(TARGET_DIR)libmkamsbooti386.a $(TARGET_DIR)libmkamsbootppc.a
80 @echo lipo $(TARGET_DIR)libmkamsboot.a 88 @echo lipo $(TARGET_DIR)libmkamsboot.a
diff --git a/rbutil/mkmpioboot/Makefile b/rbutil/mkmpioboot/Makefile
index 5e138b6f12..8077bdceb6 100644
--- a/rbutil/mkmpioboot/Makefile
+++ b/rbutil/mkmpioboot/Makefile
@@ -1,3 +1,9 @@
1# __________ __ ___.
2# Open \______ \ ____ ____ | | _\_ |__ _______ ___
3# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6# \/ \/ \/ \/ \/
1 7
2#change for releases 8#change for releases
3ifndef APPVERSION 9ifndef APPVERSION
@@ -33,6 +39,7 @@ else
33OBJDIR = $(TARGET_DIR)build/ 39OBJDIR = $(TARGET_DIR)build/
34endif 40endif
35 41
42TARGET_DIR ?= $(shell pwd)
36 43
37all: $(OUTPUT) 44all: $(OUTPUT)
38 45
@@ -52,9 +59,11 @@ $(OBJDIR)%.o: %.c
52 $(SILENT)mkdir -p $(dir $@) 59 $(SILENT)mkdir -p $(dir $@)
53 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $< 60 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $<
54 61
55libmkmpioboot$(RBARCH).a: $(LIBOBJS) 62libmkmpioboot$(RBARCH).a: $(TARGET_DIR)libmkmpioboot$(RBARCH).a
56 @echo AR $@ 63
57 $(SILENT)$(AR) rucs $(TARGET_DIR)$@ $^ 64$(TARGET_DIR)libmkmpioboot$(RBARCH).a: $(LIBOBJS)
65 @echo AR $(notdir $@)
66 $(SILENT)$(AR) rucs $@ $^
58 67
59# building the standalone executable 68# building the standalone executable
60$(OUTPUT): $(OBJS) $(EXTRADEPS) 69$(OUTPUT): $(OBJS) $(EXTRADEPS)
@@ -68,7 +77,7 @@ $(TARGET_DIR)libmkmpiobooti386.a:
68 77
69$(TARGET_DIR)libmkmpiobootppc.a: 78$(TARGET_DIR)libmkmpiobootppc.a:
70 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libmkmpiobootppc.a 79 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libmkmpiobootppc.a
71endif 80endif
72 81
73libmkmpioboot-universal: $(TARGET_DIR)libmkmpiobooti386.a $(TARGET_DIR)libmkmpiobootppc.a 82libmkmpioboot-universal: $(TARGET_DIR)libmkmpiobooti386.a $(TARGET_DIR)libmkmpiobootppc.a
74 @echo lipo $(TARGET_DIR)libmkmpioboot.a 83 @echo lipo $(TARGET_DIR)libmkmpioboot.a
diff --git a/rbutil/mktccboot/Makefile b/rbutil/mktccboot/Makefile
index 7a7acf87b7..b01f25dc3d 100644
--- a/rbutil/mktccboot/Makefile
+++ b/rbutil/mktccboot/Makefile
@@ -34,29 +34,34 @@ ifdef RBARCH
34CFLAGS += -arch $(RBARCH) 34CFLAGS += -arch $(RBARCH)
35endif 35endif
36 36
37OUT = $(TARGET_DIR)build$(RBARCH) 37TARGET_DIR ?= $(shell pwd)/
38OBJDIR = $(TARGET_DIR)build$(RBARCH)
38 39
39all: $(OUTPUT) 40all: $(OUTPUT)
40 41
41# inputs 42# inputs
42LIBSOURCES := mktccboot.c $(TOOLSDIR)/telechips.o 43LIBSOURCES := mktccboot.c $(TOOLSDIR)/telechips.o
43SOURCES := $(LIBSOURCES) main.c 44SOURCES := $(LIBSOURCES) main.c
44OBJS := $(patsubst %.c,%.o,$(addprefix $(OUT)/,$(notdir $(SOURCES)))) 45OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR)/,$(notdir $(SOURCES))))
45LIBOBJS := $(patsubst %.c,%.o,$(addprefix $(OUT)/,$(notdir $(LIBSOURCES)))) 46LIBOBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR)/,$(notdir $(LIBSOURCES))))
46EXTRADEPS := 47EXTRADEPS :=
47 48
48# rule for sources from tools dir 49# rule for sources from tools dir
49$(OUT)/%.o: $(TOOLSDIR)/%.c $(OUT) 50$(OBJDIR)/%.o: $(TOOLSDIR)/%.c
50 @echo CC $< 51 @echo CC $<
52 $(SILENT)mkdir -p $(dir $@)
51 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $< 53 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $<
52 54
53$(OUT)/%.o: %.c $(OUT) 55$(OBJDIR)/%.o: %.c
54 @echo CC $< 56 @echo CC $<
57 $(SILENT)mkdir -p $(dir $@)
55 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $< 58 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $<
56 59
57libmktccboot$(RBARCH).a: $(LIBOBJS) 60libmktccboot$(RBARCH).a: $(TARGET_DIR)libmktccboot$(RBARCH).a
58 @echo AR $@ 61
59 $(SILENT)$(AR) rucs $(TARGET_DIR)$@ $^ 62$(TARGET_DIR)libmktccboot$(RBARCH).a: $(LIBOBJS)
63 @echo AR $(notdir $@)
64 $(SILENT)$(AR) rucs $@ $^
60 65
61# building the standalone executable 66# building the standalone executable
62$(OUTPUT): $(OBJS) $(EXTRADEPS) 67$(OUTPUT): $(OBJS) $(EXTRADEPS)
@@ -70,16 +75,16 @@ $(TARGET_DIR)libmktccbooti386.a:
70 75
71$(TARGET_DIR)libmktccbootppc.a: 76$(TARGET_DIR)libmktccbootppc.a:
72 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libmktccbootppc.a 77 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libmktccbootppc.a
73endif 78endif
74 79
75libmktccboot-universal: $(TARGET_DIR)libmktccbooti386.a $(TARGET_DIR)libmktccbootppc.a 80libmktccboot-universal: $(TARGET_DIR)libmktccbooti386.a $(TARGET_DIR)libmktccbootppc.a
76 @echo lipo $(TARGET_DIR)libmktccboot.a 81 @echo lipo $(TARGET_DIR)libmktccboot.a
77 $(SILENT) rm -f $(TARGET_DIR)libmktccboot.a 82 $(SILENT) rm -f $(TARGET_DIR)libmktccboot.a
78 $(SILENT)lipo -create $(TARGET_DIR)libmktccbootppc.a $(TARGET_DIR)libmktccbooti386.a -output $(TARGET_DIR)libmktccboot.a 83 $(SILENT)lipo -create $(TARGET_DIR)libmktccbootppc.a $(TARGET_DIR)libmktccbooti386.a -output $(TARGET_DIR)libmktccboot.a
79 84
80clean: 85clean:
81 rm -f $(OUTPUT) $(TARGET_DIR)libmktccboot*.a mktccboot.dmg 86 rm -f $(OUTPUT) $(TARGET_DIR)libmktccboot*.a mktccboot.dmg
82 rm -rf $(OUT) 87 rm -rf $(OBJDIR)
83 88
84mktccboot-i386: 89mktccboot-i386:
85 $(MAKE) RBARCH=i386 90 $(MAKE) RBARCH=i386
@@ -96,8 +101,5 @@ mktccboot.dmg: mktccboot-mac
96 mkdir -p mktccboot-dmg 101 mkdir -p mktccboot-dmg
97 cp -p mktccboot-mac mktccboot-dmg 102 cp -p mktccboot-mac mktccboot-dmg
98 hdiutil create -srcfolder mktccboot-dmg mktccboot.dmg 103 hdiutil create -srcfolder mktccboot-dmg mktccboot.dmg
99 104
100$(OUT):
101 @echo MKDIR $(OUT)
102 $(SILENT)mkdir $(OUT)
103 105
diff --git a/rbutil/rbutilqt/rbutilqt.pro b/rbutil/rbutilqt/rbutilqt.pro
index 6954a19e0f..64a5ed7f89 100644
--- a/rbutil/rbutilqt/rbutilqt.pro
+++ b/rbutil/rbutilqt/rbutilqt.pro
@@ -70,25 +70,25 @@ mac {
70# here. This assumes that QMAKE_CC will always be "gcc", maybe with a postfix. 70# here. This assumes that QMAKE_CC will always be "gcc", maybe with a postfix.
71MYAR = $$replace(QMAKE_CC,gcc.*,ar) 71MYAR = $$replace(QMAKE_CC,gcc.*,ar)
72 72
73rbspeex.commands = @$(MAKE) \ 73rbspeex.commands = @$(MAKE) -s \
74 TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/tools/rbspeex \ 74 TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/tools/rbspeex \
75 librbspeex$$RBLIBPOSTFIX \ 75 librbspeex$$RBLIBPOSTFIX \
76 SYS_SPEEX=\"$$LIBSPEEX\" \ 76 SYS_SPEEX=\"$$LIBSPEEX\" \
77 CC=\"$$QMAKE_CC\" AR=\"$$MYAR\" 77 CC=\"$$QMAKE_CC\" AR=\"$$MYAR\"
78libucl.commands = @$(MAKE) \ 78libucl.commands = @$(MAKE) -s \
79 TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/tools/ucl/src \ 79 TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/tools/ucl/src \
80 libucl$$RBLIBPOSTFIX \ 80 libucl$$RBLIBPOSTFIX \
81 CC=\"$$QMAKE_CC\" AR=\"$$MYAR\" 81 CC=\"$$QMAKE_CC\" AR=\"$$MYAR\"
82libmkamsboot.commands = @$(MAKE) \ 82libmkamsboot.commands = @$(MAKE) -s \
83 TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/rbutil/mkamsboot \ 83 TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/rbutil/mkamsboot \
84 APPVERSION=\"rbutil\" \ 84 APPVERSION=\"rbutil\" \
85 libmkamsboot$$RBLIBPOSTFIX \ 85 libmkamsboot$$RBLIBPOSTFIX \
86 CC=\"$$QMAKE_CC\" AR=\"$$MYAR\" 86 CC=\"$$QMAKE_CC\" AR=\"$$MYAR\"
87libmktccboot.commands = @$(MAKE) \ 87libmktccboot.commands = @$(MAKE) -s \
88 TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/rbutil/mktccboot \ 88 TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/rbutil/mktccboot \
89 libmktccboot$$RBLIBPOSTFIX \ 89 libmktccboot$$RBLIBPOSTFIX \
90 CC=\"$$QMAKE_CC\" AR=\"$$MYAR\" 90 CC=\"$$QMAKE_CC\" AR=\"$$MYAR\"
91libmkmpioboot.commands = @$(MAKE) \ 91libmkmpioboot.commands = @$(MAKE) -s \
92 TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/rbutil/mkmpioboot \ 92 TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/rbutil/mkmpioboot \
93 APPVERSION=\"rbutil\" \ 93 APPVERSION=\"rbutil\" \
94 libmkmpioboot$$RBLIBPOSTFIX \ 94 libmkmpioboot$$RBLIBPOSTFIX \
diff --git a/tools/ucl/src/Makefile b/tools/ucl/src/Makefile
index 01fb66f513..33972bb617 100644
--- a/tools/ucl/src/Makefile
+++ b/tools/ucl/src/Makefile
@@ -17,25 +17,29 @@ CFLAGS += -arch $(RBARCH)
17endif 17endif
18 18
19 19
20OUT = $(TARGET_DIR)build$(RBARCH) 20TARGET_DIR ?= $(shell pwd)
21OBJDIR = $(TARGET_DIR)build$(RBARCH)
21 22
22SOURCES = alloc.c io.c n2b_99.c n2b_d.c n2b_ds.c n2b_to.c n2d_99.c \ 23SOURCES = alloc.c io.c n2b_99.c n2b_d.c n2b_ds.c n2b_to.c n2d_99.c \
23 n2d_d.c n2d_ds.c n2d_to.c n2e_99.c n2e_d.c n2e_ds.c n2e_to.c ucl_crc.c \ 24 n2d_d.c n2d_ds.c n2d_to.c n2e_99.c n2e_d.c n2e_ds.c n2e_to.c ucl_crc.c \
24 ucl_init.c ucl_ptr.c ucl_str.c ucl_util.c #ucl_dll.c 25 ucl_init.c ucl_ptr.c ucl_str.c ucl_util.c #ucl_dll.c
25 26
26OBJS = $(addprefix $(OUT)/,$(SOURCES:%.c=%.o)) 27OBJS = $(addprefix $(OBJDIR)/,$(SOURCES:%.c=%.o))
27 28
28# This Makefile is _not_ used to build uclpack for Rockbox builds anymore (they 29# This Makefile is _not_ used to build uclpack for Rockbox builds anymore (they
29# use tools.make), so we can use $(CC) and $(AR) here. 30# use tools.make), so we can use $(CC) and $(AR) here.
30 31
31libucl$(RBARCH).a: $(OUT) $(OBJS) 32libucl$(RBARCH).a: $(TARGET_DIR)libucl$(RBARCH).a
32 @echo AR $@
33 $(SILENT)$(AR) rucs $(TARGET_DIR)$@ $(OBJS) >/dev/null 2>&1
34 33
35$(OUT)/%.o: %.c 34$(TARGET_DIR)libucl$(RBARCH).a: $(OBJS)
35 @echo AR $(notdir $@)
36 $(SILENT)$(AR) rucs $@ $(OBJS) >/dev/null 2>&1
37
38$(OBJDIR)/%.o: %.c
36 @echo CC $< 39 @echo CC $<
40 $(SILENT)mkdir -p $(dir $@)
37 $(SILENT)$(CC) $(CFLAGS) -c $< -o $@ 41 $(SILENT)$(CC) $(CFLAGS) -c $< -o $@
38 42
39# some trickery to build ppc and i386 from a single call 43# some trickery to build ppc and i386 from a single call
40ifeq ($(RBARCH),) 44ifeq ($(RBARCH),)
41$(TARGET_DIR)libucli386.a: 45$(TARGET_DIR)libucli386.a:
@@ -43,18 +47,14 @@ $(TARGET_DIR)libucli386.a:
43 47
44$(TARGET_DIR)libuclppc.a: 48$(TARGET_DIR)libuclppc.a:
45 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libuclppc.a 49 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libuclppc.a
46endif 50endif
47 51
48libucl-universal: $(TARGET_DIR)libucli386.a $(TARGET_DIR)libuclppc.a 52libucl-universal: $(TARGET_DIR)libucli386.a $(TARGET_DIR)libuclppc.a
49 @echo lipo $(TARGET_DIR)libucl.a 53 @echo lipo $(TARGET_DIR)libucl.a
50 $(SILENT) rm -f $(TARGET_DIR)libucl.a 54 $(SILENT) rm -f $(TARGET_DIR)libucl.a
51 $(SILENT)lipo -create $(TARGET_DIR)libuclppc.a $(TARGET_DIR)libucli386.a -output $(TARGET_DIR)libucl.a 55 $(SILENT)lipo -create $(TARGET_DIR)libuclppc.a $(TARGET_DIR)libucli386.a -output $(TARGET_DIR)libucl.a
52 56
53clean: 57clean:
54 rm -f $(TARGET_DIR)libucl*.a 58 rm -f $(TARGET_DIR)libucl*.a
55 rm -rf build* 59 rm -rf build*
56 60
57$(OUT):
58 @echo MKDIR $(OUT)
59 $(SILENT)mkdir -p $(OUT)
60