blob: ac933f77de32f62d4a4306dab226e50034b83cf8 [file] [log] [blame]
Jonathan Gordon36b934d2010-06-17 06:52:02 +00001# __________ __ ___.
2# Open \______ \ ____ ____ | | _\_ |__ _______ ___
3# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6# \/ \/ \/ \/ \/
7# $Id$
8#
9
Dominik Riebelingbe66e4d2010-06-22 16:51:29 +000010ifndef V
11SILENT = @
12endif
Jonathan Gordon36b934d2010-06-17 06:52:02 +000013
Dominik Riebelinge4641282010-07-06 21:08:16 +000014CC ?= gcc
Jonathan Gordon36b934d2010-06-17 06:52:02 +000015AR = ar
Dominik Riebelinge4641282010-07-06 21:08:16 +000016OUTPUT=libskin_parser
17TARGET_DIR ?= ./
Jonathan Gordon36b934d2010-06-17 06:52:02 +000018
Dominik Riebelinge4641282010-07-06 21:08:16 +000019# construct build directory if BUILDDIR is not set.
20BUILDDIR ?= $(TARGET_DIR)build
Jonathan Gordon36b934d2010-06-17 06:52:02 +000021
Dominik Riebelinge4641282010-07-06 21:08:16 +000022ifdef RBARCH
23CFLAGS += -arch $(RBARCH)
24OBJDIR = $(BUILDDIR)/$(RBARCH)/
25else
26OBJDIR = $(BUILDDIR)/
27endif
28
29# input files
30SOURCES := skin_buffer.c skin_debug.c skin_parser.c skin_scan.c tag_table.c
31OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(SOURCES)))
32
33all: $(OUTPUT).a
34
35$(OBJDIR)%.o: %.c
Dominik Riebelingbe66e4d2010-06-22 16:51:29 +000036 @echo CC $<
Dominik Riebelinge4641282010-07-06 21:08:16 +000037 $(SILENT)mkdir -p $(dir $@)
38 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $<
Jonathan Gordon36b934d2010-06-17 06:52:02 +000039
Dominik Riebelinge4641282010-07-06 21:08:16 +000040ifeq ($(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
47ifneq ($(RBARCH),)
48$(OUTPUT)$(RBARCH).a: $(OBJS)
49 @echo AR $@
50 $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^
51else
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
57endif
58else
59$(OUTPUT).a: $(OBJS)
60 @echo AR $@
61 $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^
62endif
Jonathan Gordon36b934d2010-06-17 06:52:02 +000063
64clean:
Dominik Riebelinge4641282010-07-06 21:08:16 +000065 rm -f $(OBJS) $(OUTPUT) $(TARGET_DIR)$(OUTPUT)*.a
66ifeq ($(findstring Darwin,$(shell uname)),Darwin)
67endif
68