Jonathan Gordon | 36b934d | 2010-06-17 06:52:02 +0000 | [diff] [blame] | 1 | # __________ __ ___. |
| 2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| 3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| 4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| 5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| 6 | # \/ \/ \/ \/ \/ |
| 7 | # $Id$ |
| 8 | # |
| 9 | |
Dominik Riebeling | be66e4d | 2010-06-22 16:51:29 +0000 | [diff] [blame] | 10 | ifndef V |
| 11 | SILENT = @ |
| 12 | endif |
Jonathan Gordon | 36b934d | 2010-06-17 06:52:02 +0000 | [diff] [blame] | 13 | |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 14 | CC ?= gcc |
Jonathan Gordon | 36b934d | 2010-06-17 06:52:02 +0000 | [diff] [blame] | 15 | AR = ar |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 16 | OUTPUT=libskin_parser |
| 17 | TARGET_DIR ?= ./ |
Jonathan Gordon | 36b934d | 2010-06-17 06:52:02 +0000 | [diff] [blame] | 18 | |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 19 | # construct build directory if BUILDDIR is not set. |
| 20 | BUILDDIR ?= $(TARGET_DIR)build |
Jonathan Gordon | 36b934d | 2010-06-17 06:52:02 +0000 | [diff] [blame] | 21 | |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 22 | ifdef RBARCH |
| 23 | CFLAGS += -arch $(RBARCH) |
| 24 | OBJDIR = $(BUILDDIR)/$(RBARCH)/ |
| 25 | else |
| 26 | OBJDIR = $(BUILDDIR)/ |
| 27 | endif |
| 28 | |
| 29 | # input files |
| 30 | SOURCES := skin_buffer.c skin_debug.c skin_parser.c skin_scan.c tag_table.c |
| 31 | OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(SOURCES))) |
| 32 | |
| 33 | all: $(OUTPUT).a |
| 34 | |
| 35 | $(OBJDIR)%.o: %.c |
Dominik Riebeling | be66e4d | 2010-06-22 16:51:29 +0000 | [diff] [blame] | 36 | @echo CC $< |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 37 | $(SILENT)mkdir -p $(dir $@) |
| 38 | $(SILENT)$(CC) $(CFLAGS) -c -o $@ $< |
Jonathan Gordon | 36b934d | 2010-06-17 06:52:02 +0000 | [diff] [blame] | 39 | |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 40 | ifeq ($(findstring Darwin,$(shell uname)),Darwin) |
| 41 | # some trickery to build ppc and i386 from a single call |
| 42 | $(OUTPUT).a: $(TARGET_DIR)$(OUTPUT)i386.a $(TARGET_DIR)$(OUTPUT)ppc.a |
| 43 | @echo lipo $(TARGET_DIR)$@ |
| 44 | $(SILENT) rm -f $(TARGET_DIR)$(OUTPUT) |
| 45 | $(SILENT)lipo -create $(TARGET_DIR)$(OUTPUT)ppc.a $(TARGET_DIR)$(OUTPUT)i386.a -output $(TARGET_DIR)$(OUTPUT).a |
| 46 | |
| 47 | ifneq ($(RBARCH),) |
| 48 | $(OUTPUT)$(RBARCH).a: $(OBJS) |
| 49 | @echo AR $@ |
| 50 | $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^ |
| 51 | else |
| 52 | $(TARGET_DIR)$(OUTPUT)i386.a: |
| 53 | make RBARCH=i386 TARGET_DIR=$(TARGET_DIR) $(OUTPUT)i386.a |
| 54 | |
| 55 | $(TARGET_DIR)$(OUTPUT)ppc.a: |
| 56 | make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) $(OUTPUT)ppc.a |
| 57 | endif |
| 58 | else |
| 59 | $(OUTPUT).a: $(OBJS) |
| 60 | @echo AR $@ |
| 61 | $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^ |
| 62 | endif |
Jonathan Gordon | 36b934d | 2010-06-17 06:52:02 +0000 | [diff] [blame] | 63 | |
| 64 | clean: |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 65 | rm -f $(OBJS) $(OUTPUT) $(TARGET_DIR)$(OUTPUT)*.a |
| 66 | ifeq ($(findstring Darwin,$(shell uname)),Darwin) |
| 67 | endif |
| 68 | |