summaryrefslogtreecommitdiff
path: root/rbutil/mktccboot/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/mktccboot/Makefile')
-rw-r--r--rbutil/mktccboot/Makefile108
1 files changed, 102 insertions, 6 deletions
diff --git a/rbutil/mktccboot/Makefile b/rbutil/mktccboot/Makefile
index f3c0409b2a..9399a0c09f 100644
--- a/rbutil/mktccboot/Makefile
+++ b/rbutil/mktccboot/Makefile
@@ -6,16 +6,112 @@
6# \/ \/ \/ \/ \/ 6# \/ \/ \/ \/ \/
7# $Id$ 7# $Id$
8# 8#
9
10# We use the Telechips code available in the Rockbox tools/ directory
9TOOLSDIR=../../tools 11TOOLSDIR=../../tools
10CFLAGS := -O -g -W -Wall -Wshadow -pedantic -I$(TOOLSDIR) 12CFLAGS := -O -g -W -Wall -Wshadow -pedantic -I$(TOOLSDIR)
11 13
12all: mktccboot 14PLAT=tcc
15
16CC = gcc
17MKPLATBOOT=mk$(PLAT)boot
18LIB_MKPLATBOOT=lib$(MKPLATBOOT)
19
20#change for releases
21ifndef APPVERSION
22APPVERSION=`$(TOOLSDIR)/version.sh`
23endif
24
25ifndef V
26SILENT = @
27endif
28
29ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN)
30OUTPUT=$(MKPLATBOOT).exe
31CFLAGS+=-mno-cygwin
32else
33ifeq ($(findstring MINGW,$(shell uname)),MINGW)
34OUTPUT=$(MKPLATBOOT).exe
35else
36ifeq ($(findstring mingw,$(CC)),mingw)
37OUTPUT=$(MKPLATBOOT).exe
38else
39OUTPUT=$(MKPLATBOOT)
40endif
41endif
42endif
43
44ifdef RBARCH
45CFLAGS += -arch $(RBARCH)
46endif
47
48OUT = $(TARGET_DIR)build$(RBARCH)
49
50MKPLATBOOT_OBJ=$(OUT)/$(MKPLATBOOT).o
51LIBMKPLATBOOT_OBJ=$(OUT)/$(LIB_MKPLATBOOT).o
52
53all: $(OUTPUT)
54
55# Dependant modules
56TELECHIPS=$(TOOLSDIR)/telechips
57TELECHIPS_OBJ=$(TELECHIPS).o
13 58
14telechips.o: $(TOOLSDIR)/telechips.c $(TOOLSDIR)/telechips.h 59$(TELECHIPS_OBJ): $(TELECHIPS).[ch]
15 $(SILENT)$(CC) $(CFLAGS) $(TOOLSDIR)/telechips.c -c -o $@ 60 make -C $(TOOLSDIR) $(TARGET_DIR)telechips.o
16 61
17mktccboot: mktccboot.c telechips.o 62DEPENDANT_OBJS=$(TELECHIPS_OBJ)
18 $(SILENT)$(CC) $(CFLAGS) $+ -o $@
19 63
64$(MKPLATBOOT_OBJ): $(MKPLATBOOT).[ch] $(DEPENDANT_OBJS)
65 @echo CC $<
66 $(SILENT)$(CC) $(CFLAGS) -c -o $(MKPLATBOOT_OBJ) -W -Wall $(MKPLATBOOT).c -DVERSION=\"$(APPVERSION)\"
67
68$(OUTPUT): $(OUT) $(MKPLATBOOT_OBJ)
69 @echo CC $<
70 $(SILENT)$(CC) $(CFLAGS) -o $(OUTPUT) $(MKPLATBOOT_OBJ) $(DEPENDANT_OBJS)
71
72$(LIBMKPLATBOOT_OBJ): $(MKPLATBOOT_OBJ)
73 @echo CC $<
74 $(SILENT)$(CC) $(CFLAGS) -DLIB -c -o $(LIBMKPLATBOOT_OBJ) -W -Wall $(MKPLATBOOT).c
75
76$(LIB_MKPLATBOOT)$(RBARCH).a: $(OUT) $(LIBMKPLATBOOT_OBJ)
77 @echo AR $@
78 $(SILENT)$(AR) ruc $(TARGET_DIR)$(LIB_MKPLATBOOT)$(RBARCH).a $(LIBMKPLATBOOT_OBJ)
79
80# some trickery to build ppc and i386 from a single call
81ifeq ($(RBARCH),)
82$(LIB_MKPLATBOOT)i386.a:
83 make RBARCH=i386 TARGET_DIR=$(TARGET_DIR) $(LIB_MKPLATBOOT)i386.a
84
85$(LIB_MKPLATBOOT)ppc.a:
86 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) $(LIB_MKPLATBOOT)ppc.a
87endif
88
89$(LIB_MKPLATBOOT)-universal: $(LIB_MKPLATBOOT)i386.a $(LIB_MKPLATBOOT)ppc.a
90 @echo lipo $(TARGET_DIR)$(LIB_MKPLATBOOT).a
91 $(SILENT) rm -f $(TARGET_DIR)$(LIB_MKPLATBOOT).a
92 lipo -create $(TARGET_DIR)$(LIB_MKPLATBOOT)ppc.a $(TARGET_DIR)$(LIB_MKPLATBOOT)i386.a -output $(TARGET_DIR)$(LIB_MKPLATBOOT).a
93
20clean: 94clean:
21 rm -f telechips.o mktccboot 95 rm -f $(OUTPUT) $(LIB_MKPLATBOOT).o $(TARGET_DIR)$(LIB_MKPLATBOOT)*.a $(MKPLATBOOT).dmg
96 rm -f $(DEPENDANT_OBJS)
97 rm -rf build* $(MKPLATBOOT)-*
98
99$(MKPLATBOOT)-i386:
100 $(MAKE) RBARCH=i386
101 mv $(MKPLATBOOT) $(MKPLATBOOT)-i386
102
103$(MKPLATBOOT)-ppc:
104 make RBARCH=ppc
105 mv $(MKPLATBOOT) $(MKPLATBOOT)-ppc
106
107$(MKPLATBOOT)-mac: $(MKPLATBOOT)-i386 $(MKPLATBOOT)-ppc
108 lipo -create $(MKPLATBOOT)-ppc $(MKPLATBOOT)-i386 -output $(MKPLATBOOT)-mac
109
110$(MKPLATBOOT).dmg: $(MKPLATBOOT)-mac
111 mkdir -p $(MKPLATBOOT)-dmg
112 cp -p $(MKPLATBOOT)-mac $(MKPLATBOOT)-dmg
113 hdiutil create -srcfolder $(MKPLATBOOT)-dmg $(MKPLATBOOT).dmg
114
115$(OUT):
116 @echo MKDIR $(OUT)
117 $(SILENT)mkdir $(OUT)