summaryrefslogtreecommitdiff
path: root/rbutil/mktccboot/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/mktccboot/Makefile')
-rw-r--r--rbutil/mktccboot/Makefile92
1 files changed, 10 insertions, 82 deletions
diff --git a/rbutil/mktccboot/Makefile b/rbutil/mktccboot/Makefile
index b01f25dc3d..3bca0ba05e 100644
--- a/rbutil/mktccboot/Makefile
+++ b/rbutil/mktccboot/Makefile
@@ -8,98 +8,26 @@
8# 8#
9 9
10# We use the Telechips code available in the Rockbox tools/ directory 10# We use the Telechips code available in the Rockbox tools/ directory
11TOOLSDIR=../../tools 11TOOLSDIR = ../../tools/
12CFLAGS := -O -g -W -Wall -Wshadow -pedantic -I$(TOOLSDIR) 12CFLAGS := -O -g -W -Wall -Wshadow -pedantic -I$(TOOLSDIR)
13 13
14ifndef V 14OUTPUT = mktccboot
15SILENT = @
16endif
17 15
18ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN)
19OUTPUT=mktccboot.exe
20CFLAGS+=-mno-cygwin
21else
22ifeq ($(findstring MINGW,$(shell uname)),MINGW)
23OUTPUT=mktccboot.exe
24else
25ifeq ($(findstring mingw,$(CC)),mingw)
26OUTPUT=mktccboot.exe
27else
28OUTPUT=mktccboot
29endif
30endif
31endif
32
33ifdef RBARCH
34CFLAGS += -arch $(RBARCH)
35endif
36
37TARGET_DIR ?= $(shell pwd)/
38OBJDIR = $(TARGET_DIR)build$(RBARCH)
39
40all: $(OUTPUT)
41 16
42# inputs 17# inputs
43LIBSOURCES := mktccboot.c $(TOOLSDIR)/telechips.o 18LIBSOURCES := mktccboot.c $(TOOLSDIR)telechips.c
44SOURCES := $(LIBSOURCES) main.c 19SOURCES := $(LIBSOURCES) main.c
45OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR)/,$(notdir $(SOURCES))))
46LIBOBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR)/,$(notdir $(LIBSOURCES))))
47EXTRADEPS := 20EXTRADEPS :=
48 21
49# rule for sources from tools dir 22include ../libtools.make
50$(OBJDIR)/%.o: $(TOOLSDIR)/%.c
51 @echo CC $<
52 $(SILENT)mkdir -p $(dir $@)
53 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $<
54 23
55$(OBJDIR)/%.o: %.c 24# rule for sources from tools dir
25# Rules go _after_ including mkboot.make to have OBJDIR set up correctly.
26# Paths are assumed to end with a /
27telechips.o: $(OBJDIR)telechips.o
28$(OBJDIR)%.o: $(TOOLSDIR)%.c
56 @echo CC $< 29 @echo CC $<
57 $(SILENT)mkdir -p $(dir $@) 30 $(SILENT)mkdir -p $(dir $@)
58 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $< 31 $(SILENT)$(CROSS)$(CC) $(CFLAGS) -c -o $@ $<
59
60libmktccboot$(RBARCH).a: $(TARGET_DIR)libmktccboot$(RBARCH).a
61
62$(TARGET_DIR)libmktccboot$(RBARCH).a: $(LIBOBJS)
63 @echo AR $(notdir $@)
64 $(SILENT)$(AR) rucs $@ $^
65
66# building the standalone executable
67$(OUTPUT): $(OBJS) $(EXTRADEPS)
68 @echo LD $@
69 $(SILENT)$(CC) $(CFLAGS) -o$(OUTPUT) $(OBJS) $(EXTRADEPS)
70
71# some trickery to build ppc and i386 from a single call
72ifeq ($(RBARCH),)
73$(TARGET_DIR)libmktccbooti386.a:
74 make RBARCH=i386 TARGET_DIR=$(TARGET_DIR) libmktccbooti386.a
75
76$(TARGET_DIR)libmktccbootppc.a:
77 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libmktccbootppc.a
78endif
79
80libmktccboot-universal: $(TARGET_DIR)libmktccbooti386.a $(TARGET_DIR)libmktccbootppc.a
81 @echo lipo $(TARGET_DIR)libmktccboot.a
82 $(SILENT) rm -f $(TARGET_DIR)libmktccboot.a
83 $(SILENT)lipo -create $(TARGET_DIR)libmktccbootppc.a $(TARGET_DIR)libmktccbooti386.a -output $(TARGET_DIR)libmktccboot.a
84
85clean:
86 rm -f $(OUTPUT) $(TARGET_DIR)libmktccboot*.a mktccboot.dmg
87 rm -rf $(OBJDIR)
88
89mktccboot-i386:
90 $(MAKE) RBARCH=i386
91 mv mktccboot mktccboot-i386
92
93mktccboot-ppc:
94 make RBARCH=ppc
95 mv mktccboot mktccboot-ppc
96
97mktccboot-mac: mktccboot-i386 mktccboot-ppc
98 $(SILENT)lipo -create mktccboot-ppc mktccboot-i386 -output mktccboot-mac
99
100mktccboot.dmg: mktccboot-mac
101 mkdir -p mktccboot-dmg
102 cp -p mktccboot-mac mktccboot-dmg
103 hdiutil create -srcfolder mktccboot-dmg mktccboot.dmg
104 32
105 33