blob: 5105b040fd9352ee2ec4d223cfad0af2edc5a370 [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
Dominik Riebeling18794812010-07-21 19:35:16 +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
Dominik Riebeling8c6b8e62011-03-05 12:50:46 +000021TARGETPLATFORM ?= $(shell uname)
Jonathan Gordon36b934d2010-06-17 06:52:02 +000022
Dominik Riebelinge4641282010-07-06 21:08:16 +000023ifdef RBARCH
24CFLAGS += -arch $(RBARCH)
25OBJDIR = $(BUILDDIR)/$(RBARCH)/
26else
27OBJDIR = $(BUILDDIR)/
28endif
29
30# input files
31SOURCES := skin_buffer.c skin_debug.c skin_parser.c skin_scan.c tag_table.c
32OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(SOURCES)))
33
34all: $(OUTPUT).a
35
36$(OBJDIR)%.o: %.c
Dominik Riebelingbe66e4d2010-06-22 16:51:29 +000037 @echo CC $<
Dominik Riebelinge4641282010-07-06 21:08:16 +000038 $(SILENT)mkdir -p $(dir $@)
39 $(SILENT)$(CC) $(CFLAGS) -c -o $@ $<
Jonathan Gordon36b934d2010-06-17 06:52:02 +000040
Dominik Riebeling8c6b8e62011-03-05 12:50:46 +000041ifeq ($(findstring Darwin,$(TARGETPLATFORM)),Darwin)
Dominik Riebelinge4641282010-07-06 21:08:16 +000042# 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
48ifneq ($(RBARCH),)
49$(OUTPUT)$(RBARCH).a: $(OBJS)
50 @echo AR $@
51 $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^
52else
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
58endif
59else
60$(OUTPUT).a: $(OBJS)
61 @echo AR $@
62 $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^
63endif
Jonathan Gordon36b934d2010-06-17 06:52:02 +000064
65clean:
Dominik Riebelinge4641282010-07-06 21:08:16 +000066 rm -f $(OBJS) $(OUTPUT) $(TARGET_DIR)$(OUTPUT)*.a
67ifeq ($(findstring Darwin,$(shell uname)),Darwin)
68endif
69