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 |
Dominik Riebeling | 1879481 | 2010-07-21 19:35:16 +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 |
Dominik Riebeling | 8c6b8e6 | 2011-03-05 12:50:46 +0000 | [diff] [blame] | 21 | TARGETPLATFORM ?= $(shell uname) |
Jonathan Gordon | 36b934d | 2010-06-17 06:52:02 +0000 | [diff] [blame] | 22 | |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 23 | ifdef RBARCH |
| 24 | CFLAGS += -arch $(RBARCH) |
| 25 | OBJDIR = $(BUILDDIR)/$(RBARCH)/ |
| 26 | else |
| 27 | OBJDIR = $(BUILDDIR)/ |
| 28 | endif |
| 29 | |
| 30 | # input files |
| 31 | SOURCES := skin_buffer.c skin_debug.c skin_parser.c skin_scan.c tag_table.c |
| 32 | OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(SOURCES))) |
| 33 | |
| 34 | all: $(OUTPUT).a |
| 35 | |
| 36 | $(OBJDIR)%.o: %.c |
Dominik Riebeling | be66e4d | 2010-06-22 16:51:29 +0000 | [diff] [blame] | 37 | @echo CC $< |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 38 | $(SILENT)mkdir -p $(dir $@) |
| 39 | $(SILENT)$(CC) $(CFLAGS) -c -o $@ $< |
Jonathan Gordon | 36b934d | 2010-06-17 06:52:02 +0000 | [diff] [blame] | 40 | |
Dominik Riebeling | 8c6b8e6 | 2011-03-05 12:50:46 +0000 | [diff] [blame] | 41 | ifeq ($(findstring Darwin,$(TARGETPLATFORM)),Darwin) |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 42 | # some trickery to build ppc and i386 from a single call |
| 43 | $(OUTPUT).a: $(TARGET_DIR)$(OUTPUT)i386.a $(TARGET_DIR)$(OUTPUT)ppc.a |
| 44 | @echo lipo $(TARGET_DIR)$@ |
| 45 | $(SILENT) rm -f $(TARGET_DIR)$(OUTPUT) |
| 46 | $(SILENT)lipo -create $(TARGET_DIR)$(OUTPUT)ppc.a $(TARGET_DIR)$(OUTPUT)i386.a -output $(TARGET_DIR)$(OUTPUT).a |
| 47 | |
| 48 | ifneq ($(RBARCH),) |
| 49 | $(OUTPUT)$(RBARCH).a: $(OBJS) |
| 50 | @echo AR $@ |
| 51 | $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^ |
| 52 | else |
| 53 | $(TARGET_DIR)$(OUTPUT)i386.a: |
| 54 | make RBARCH=i386 TARGET_DIR=$(TARGET_DIR) $(OUTPUT)i386.a |
| 55 | |
| 56 | $(TARGET_DIR)$(OUTPUT)ppc.a: |
| 57 | make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) $(OUTPUT)ppc.a |
| 58 | endif |
| 59 | else |
| 60 | $(OUTPUT).a: $(OBJS) |
| 61 | @echo AR $@ |
| 62 | $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^ |
| 63 | endif |
Jonathan Gordon | 36b934d | 2010-06-17 06:52:02 +0000 | [diff] [blame] | 64 | |
| 65 | clean: |
Dominik Riebeling | e464128 | 2010-07-06 21:08:16 +0000 | [diff] [blame] | 66 | rm -f $(OBJS) $(OUTPUT) $(TARGET_DIR)$(OUTPUT)*.a |
| 67 | ifeq ($(findstring Darwin,$(shell uname)),Darwin) |
| 68 | endif |
| 69 | |