FS#10728 - Cowon D2: Add support for D2 in rbutil
[kugel-rb.git] / rbutil / mktccboot / Makefile
blob9399a0c09fb8eb21271fd9590c4c357ef964d0c5
1 # __________ __ ___.
2 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
3 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6 # \/ \/ \/ \/ \/
7 # $Id$
10 # We use the Telechips code available in the Rockbox tools/ directory
11 TOOLSDIR=../../tools
12 CFLAGS := -O -g -W -Wall -Wshadow -pedantic -I$(TOOLSDIR)
14 PLAT=tcc
16 CC = gcc
17 MKPLATBOOT=mk$(PLAT)boot
18 LIB_MKPLATBOOT=lib$(MKPLATBOOT)
20 #change for releases
21 ifndef APPVERSION
22 APPVERSION=`$(TOOLSDIR)/version.sh`
23 endif
25 ifndef V
26 SILENT = @
27 endif
29 ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN)
30 OUTPUT=$(MKPLATBOOT).exe
31 CFLAGS+=-mno-cygwin
32 else
33 ifeq ($(findstring MINGW,$(shell uname)),MINGW)
34 OUTPUT=$(MKPLATBOOT).exe
35 else
36 ifeq ($(findstring mingw,$(CC)),mingw)
37 OUTPUT=$(MKPLATBOOT).exe
38 else
39 OUTPUT=$(MKPLATBOOT)
40 endif
41 endif
42 endif
44 ifdef RBARCH
45 CFLAGS += -arch $(RBARCH)
46 endif
48 OUT = $(TARGET_DIR)build$(RBARCH)
50 MKPLATBOOT_OBJ=$(OUT)/$(MKPLATBOOT).o
51 LIBMKPLATBOOT_OBJ=$(OUT)/$(LIB_MKPLATBOOT).o
53 all: $(OUTPUT)
55 # Dependant modules
56 TELECHIPS=$(TOOLSDIR)/telechips
57 TELECHIPS_OBJ=$(TELECHIPS).o
59 $(TELECHIPS_OBJ): $(TELECHIPS).[ch]
60 make -C $(TOOLSDIR) $(TARGET_DIR)telechips.o
62 DEPENDANT_OBJS=$(TELECHIPS_OBJ)
64 $(MKPLATBOOT_OBJ): $(MKPLATBOOT).[ch] $(DEPENDANT_OBJS)
65 @echo CC $<
66 $(SILENT)$(CC) $(CFLAGS) -c -o $(MKPLATBOOT_OBJ) -W -Wall $(MKPLATBOOT).c -DVERSION=\"$(APPVERSION)\"
68 $(OUTPUT): $(OUT) $(MKPLATBOOT_OBJ)
69 @echo CC $<
70 $(SILENT)$(CC) $(CFLAGS) -o $(OUTPUT) $(MKPLATBOOT_OBJ) $(DEPENDANT_OBJS)
72 $(LIBMKPLATBOOT_OBJ): $(MKPLATBOOT_OBJ)
73 @echo CC $<
74 $(SILENT)$(CC) $(CFLAGS) -DLIB -c -o $(LIBMKPLATBOOT_OBJ) -W -Wall $(MKPLATBOOT).c
76 $(LIB_MKPLATBOOT)$(RBARCH).a: $(OUT) $(LIBMKPLATBOOT_OBJ)
77 @echo AR $@
78 $(SILENT)$(AR) ruc $(TARGET_DIR)$(LIB_MKPLATBOOT)$(RBARCH).a $(LIBMKPLATBOOT_OBJ)
80 # some trickery to build ppc and i386 from a single call
81 ifeq ($(RBARCH),)
82 $(LIB_MKPLATBOOT)i386.a:
83 make RBARCH=i386 TARGET_DIR=$(TARGET_DIR) $(LIB_MKPLATBOOT)i386.a
85 $(LIB_MKPLATBOOT)ppc.a:
86 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) $(LIB_MKPLATBOOT)ppc.a
87 endif
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
94 clean:
95 rm -f $(OUTPUT) $(LIB_MKPLATBOOT).o $(TARGET_DIR)$(LIB_MKPLATBOOT)*.a $(MKPLATBOOT).dmg
96 rm -f $(DEPENDANT_OBJS)
97 rm -rf build* $(MKPLATBOOT)-*
99 $(MKPLATBOOT)-i386:
100 $(MAKE) RBARCH=i386
101 mv $(MKPLATBOOT) $(MKPLATBOOT)-i386
103 $(MKPLATBOOT)-ppc:
104 make RBARCH=ppc
105 mv $(MKPLATBOOT) $(MKPLATBOOT)-ppc
107 $(MKPLATBOOT)-mac: $(MKPLATBOOT)-i386 $(MKPLATBOOT)-ppc
108 lipo -create $(MKPLATBOOT)-ppc $(MKPLATBOOT)-i386 -output $(MKPLATBOOT)-mac
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
115 $(OUT):
116 @echo MKDIR $(OUT)
117 $(SILENT)mkdir $(OUT)