Dave Chapman | c6be818 | 2008-10-04 08:46:03 +0000 | [diff] [blame] | 1 | |
Thomas Martitz | ff2f839 | 2009-07-05 10:35:47 +0000 | [diff] [blame] | 2 | #change for releases |
Dave Chapman | 747b9ca | 2009-10-11 09:47:15 +0000 | [diff] [blame] | 3 | ifndef APPVERSION |
Rafaël Carré | c36a644 | 2010-02-22 05:41:09 +0000 | [diff] [blame] | 4 | APPVERSION=`../../tools/version.sh ../../` |
Dave Chapman | 747b9ca | 2009-10-11 09:47:15 +0000 | [diff] [blame] | 5 | endif |
Thomas Martitz | ff2f839 | 2009-07-05 10:35:47 +0000 | [diff] [blame] | 6 | |
Dominik Riebeling | ea61780 | 2009-11-04 20:58:40 +0000 | [diff] [blame] | 7 | # We use the UCL code available in the Rockbox tools/ directory |
| 8 | CFLAGS=-I../../tools/ucl/include -Wall -DVERSION=\"$(APPVERSION)\" |
Dominik Riebeling | ea61780 | 2009-11-04 20:58:40 +0000 | [diff] [blame] | 9 | |
Dominik Riebeling | ac77c08 | 2009-08-15 14:26:08 +0000 | [diff] [blame] | 10 | ifndef V |
| 11 | SILENT = @ |
| 12 | endif |
| 13 | |
Rafaël Carré | 96165ab | 2009-05-28 18:27:08 +0000 | [diff] [blame] | 14 | ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN) |
| 15 | OUTPUT=mkamsboot.exe |
| 16 | CFLAGS+=-mno-cygwin |
| 17 | else |
| 18 | ifeq ($(findstring MINGW,$(shell uname)),MINGW) |
| 19 | OUTPUT=mkamsboot.exe |
| 20 | else |
| 21 | ifeq ($(findstring mingw,$(CC)),mingw) |
| 22 | OUTPUT=mkamsboot.exe |
| 23 | else |
| 24 | OUTPUT=mkamsboot |
| 25 | endif |
| 26 | endif |
| 27 | endif |
Dave Chapman | c6be818 | 2008-10-04 08:46:03 +0000 | [diff] [blame] | 28 | |
Dominik Wenger | f4e2d83 | 2009-08-15 13:54:13 +0000 | [diff] [blame] | 29 | ifdef RBARCH |
| 30 | CFLAGS += -arch $(RBARCH) |
Dominik Riebeling | 0dcf93e | 2010-05-27 17:36:39 +0000 | [diff] [blame] | 31 | OBJDIR = $(TARGET_DIR)build/$(RBARCH)/ |
| 32 | else |
| 33 | OBJDIR = $(TARGET_DIR)build/ |
Dominik Wenger | f4e2d83 | 2009-08-15 13:54:13 +0000 | [diff] [blame] | 34 | endif |
| 35 | |
Dominik Wenger | f4e2d83 | 2009-08-15 13:54:13 +0000 | [diff] [blame] | 36 | |
Rafaël Carré | 96165ab | 2009-05-28 18:27:08 +0000 | [diff] [blame] | 37 | all: $(OUTPUT) |
Dave Chapman | dcb0e43 | 2008-11-14 22:16:22 +0000 | [diff] [blame] | 38 | |
Dominik Riebeling | ea61780 | 2009-11-04 20:58:40 +0000 | [diff] [blame] | 39 | # additional link dependencies for the standalone executable |
Tomer Shalev | 15ea6e6 | 2009-10-31 17:18:17 +0000 | [diff] [blame] | 40 | LIBUCL=../../tools/ucl/src/libucl$(RBARCH).a |
| 41 | |
Dave Chapman | 1c4bcfa | 2008-10-11 11:35:59 +0000 | [diff] [blame] | 42 | $(LIBUCL): |
Marcoen Hirschberg | 268f7c4 | 2010-05-05 10:56:19 +0000 | [diff] [blame] | 43 | $(MAKE) -C ../../tools/ucl/src $(TARGET_DIR)libucl$(RBARCH).a |
Dave Chapman | 1c4bcfa | 2008-10-11 11:35:59 +0000 | [diff] [blame] | 44 | |
Dominik Riebeling | ea61780 | 2009-11-04 20:58:40 +0000 | [diff] [blame] | 45 | # inputs |
| 46 | LIBSOURCES := dualboot.c md5.c mkamsboot.c |
| 47 | SOURCES := $(LIBSOURCES) main.c |
Björn Stenberg | b4f6c6f | 2010-02-19 08:09:41 +0000 | [diff] [blame] | 48 | OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(SOURCES))) |
| 49 | LIBOBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(LIBSOURCES))) |
Dominik Riebeling | ea61780 | 2009-11-04 20:58:40 +0000 | [diff] [blame] | 50 | EXTRADEPS := $(LIBUCL) |
Rafaël Carré | 96165ab | 2009-05-28 18:27:08 +0000 | [diff] [blame] | 51 | |
Rafaël Carré | ff6b042 | 2010-05-24 10:06:52 +0000 | [diff] [blame] | 52 | # explicit dependencies on dualboot.{c,h} and mkamsboot.h |
| 53 | $(OBJDIR)mkamsboot.o: dualboot.h dualboot.c mkamsboot.c mkamsboot.h |
| 54 | $(OBJDIR)main.o: dualboot.h dualboot.c main.c mkamsboot.h |
Rafaël Carré | 3b53fe0 | 2010-02-25 18:08:16 +0000 | [diff] [blame] | 55 | |
Björn Stenberg | b4f6c6f | 2010-02-19 08:09:41 +0000 | [diff] [blame] | 56 | $(OBJDIR)%.o: %.c |
Dominik Riebeling | 0dcf93e | 2010-05-27 17:36:39 +0000 | [diff] [blame] | 57 | @echo CC $< |
Björn Stenberg | b4f6c6f | 2010-02-19 08:09:41 +0000 | [diff] [blame] | 58 | $(SILENT)mkdir -p $(dir $@) |
Dominik Riebeling | ea61780 | 2009-11-04 20:58:40 +0000 | [diff] [blame] | 59 | $(SILENT)$(CC) $(CFLAGS) -c -o $@ $< |
Dave Chapman | c91d787 | 2008-10-30 00:13:29 +0000 | [diff] [blame] | 60 | |
Dominik Riebeling | ea61780 | 2009-11-04 20:58:40 +0000 | [diff] [blame] | 61 | libmkamsboot$(RBARCH).a: $(LIBOBJS) |
Dominik Riebeling | 2417023 | 2009-09-05 08:54:52 +0000 | [diff] [blame] | 62 | @echo AR $@ |
Dominik Riebeling | ea61780 | 2009-11-04 20:58:40 +0000 | [diff] [blame] | 63 | $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^ |
| 64 | |
| 65 | # building the standalone executable |
Rafaël Carré | 75919d5 | 2010-02-19 07:16:51 +0000 | [diff] [blame] | 66 | $(OUTPUT): $(OBJS) $(EXTRADEPS) |
Dominik Riebeling | ea61780 | 2009-11-04 20:58:40 +0000 | [diff] [blame] | 67 | @echo LD $@ |
Rafaël Carré | a721007 | 2009-11-08 21:00:55 +0000 | [diff] [blame] | 68 | $(SILENT)$(CC) $(CFLAGS) -o $(OUTPUT) $(OBJS) $(EXTRADEPS) |
Dave Chapman | c6be818 | 2008-10-04 08:46:03 +0000 | [diff] [blame] | 69 | |
Dominik Wenger | f4e2d83 | 2009-08-15 13:54:13 +0000 | [diff] [blame] | 70 | # some trickery to build ppc and i386 from a single call |
| 71 | ifeq ($(RBARCH),) |
Dominik Riebeling | cca6f74 | 2009-11-28 22:39:00 +0000 | [diff] [blame] | 72 | $(TARGET_DIR)libmkamsbooti386.a: |
Dominik Wenger | 4d86861 | 2009-09-04 21:31:17 +0000 | [diff] [blame] | 73 | make RBARCH=i386 TARGET_DIR=$(TARGET_DIR) libmkamsbooti386.a |
Dominik Wenger | f4e2d83 | 2009-08-15 13:54:13 +0000 | [diff] [blame] | 74 | |
Dominik Riebeling | cca6f74 | 2009-11-28 22:39:00 +0000 | [diff] [blame] | 75 | $(TARGET_DIR)libmkamsbootppc.a: |
Dominik Wenger | 4d86861 | 2009-09-04 21:31:17 +0000 | [diff] [blame] | 76 | make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) libmkamsbootppc.a |
Dominik Wenger | f4e2d83 | 2009-08-15 13:54:13 +0000 | [diff] [blame] | 77 | endif |
Björn Stenberg | b4f6c6f | 2010-02-19 08:09:41 +0000 | [diff] [blame] | 78 | |
Dominik Riebeling | cca6f74 | 2009-11-28 22:39:00 +0000 | [diff] [blame] | 79 | libmkamsboot-universal: $(TARGET_DIR)libmkamsbooti386.a $(TARGET_DIR)libmkamsbootppc.a |
Dominik Wenger | 4d86861 | 2009-09-04 21:31:17 +0000 | [diff] [blame] | 80 | @echo lipo $(TARGET_DIR)libmkamsboot.a |
| 81 | $(SILENT) rm -f $(TARGET_DIR)libmkamsboot.a |
Dominik Riebeling | 69a5ff7 | 2009-12-13 21:30:28 +0000 | [diff] [blame] | 82 | $(SILENT)lipo -create $(TARGET_DIR)libmkamsbootppc.a $(TARGET_DIR)libmkamsbooti386.a -output $(TARGET_DIR)libmkamsboot.a |
Björn Stenberg | b4f6c6f | 2010-02-19 08:09:41 +0000 | [diff] [blame] | 83 | |
Dave Chapman | c6be818 | 2008-10-04 08:46:03 +0000 | [diff] [blame] | 84 | clean: |
Björn Stenberg | b4f6c6f | 2010-02-19 08:09:41 +0000 | [diff] [blame] | 85 | rm -f $(OBJS) $(OUTPUT) libmkamsboot.o $(TARGET_DIR)libmkamsboot*.a mkamsboot.dmg |
| 86 | rm -rf mkamsboot-* i386 ppc $(OBJDIR) |
Rafaël Carré | 30ea0b6 | 2009-10-09 08:49:41 +0000 | [diff] [blame] | 87 | |
| 88 | mkamsboot-i386: |
| 89 | $(MAKE) RBARCH=i386 |
| 90 | mv mkamsboot mkamsboot-i386 |
| 91 | |
| 92 | mkamsboot-ppc: |
Björn Stenberg | b4f6c6f | 2010-02-19 08:09:41 +0000 | [diff] [blame] | 93 | $(MAKE) RBARCH=ppc |
Rafaël Carré | 30ea0b6 | 2009-10-09 08:49:41 +0000 | [diff] [blame] | 94 | mv mkamsboot mkamsboot-ppc |
| 95 | |
| 96 | mkamsboot-mac: mkamsboot-i386 mkamsboot-ppc |
Dominik Riebeling | 69a5ff7 | 2009-12-13 21:30:28 +0000 | [diff] [blame] | 97 | $(SILENT)lipo -create mkamsboot-ppc mkamsboot-i386 -output mkamsboot-mac |
Rafaël Carré | 30ea0b6 | 2009-10-09 08:49:41 +0000 | [diff] [blame] | 98 | |
| 99 | mkamsboot.dmg: mkamsboot-mac |
| 100 | mkdir -p mkamsboot-dmg |
| 101 | cp -p mkamsboot-mac mkamsboot-dmg |
| 102 | hdiutil create -srcfolder mkamsboot-dmg mkamsboot.dmg |