| # __________ __ ___. |
| # Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| # \/ \/ \/ \/ \/ |
| # $Id$ |
| # |
| |
| ifndef V |
| SILENT = @ |
| endif |
| |
| CC ?= gcc |
| AR = ar |
| OUTPUT=libskin_parser |
| TARGET_DIR ?= ./ |
| |
| # construct build directory if BUILDDIR is not set. |
| BUILDDIR ?= $(TARGET_DIR)build |
| |
| ifdef RBARCH |
| CFLAGS += -arch $(RBARCH) |
| OBJDIR = $(BUILDDIR)/$(RBARCH)/ |
| else |
| OBJDIR = $(BUILDDIR)/ |
| endif |
| |
| # input files |
| SOURCES := skin_buffer.c skin_debug.c skin_parser.c skin_scan.c tag_table.c |
| OBJS := $(patsubst %.c,%.o,$(addprefix $(OBJDIR),$(SOURCES))) |
| |
| all: $(OUTPUT).a |
| |
| $(OBJDIR)%.o: %.c |
| @echo CC $< |
| $(SILENT)mkdir -p $(dir $@) |
| $(SILENT)$(CC) $(CFLAGS) -c -o $@ $< |
| |
| ifeq ($(findstring Darwin,$(shell uname)),Darwin) |
| # some trickery to build ppc and i386 from a single call |
| $(OUTPUT).a: $(TARGET_DIR)$(OUTPUT)i386.a $(TARGET_DIR)$(OUTPUT)ppc.a |
| @echo lipo $(TARGET_DIR)$@ |
| $(SILENT) rm -f $(TARGET_DIR)$(OUTPUT) |
| $(SILENT)lipo -create $(TARGET_DIR)$(OUTPUT)ppc.a $(TARGET_DIR)$(OUTPUT)i386.a -output $(TARGET_DIR)$(OUTPUT).a |
| |
| ifneq ($(RBARCH),) |
| $(OUTPUT)$(RBARCH).a: $(OBJS) |
| @echo AR $@ |
| $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^ |
| else |
| $(TARGET_DIR)$(OUTPUT)i386.a: |
| make RBARCH=i386 TARGET_DIR=$(TARGET_DIR) $(OUTPUT)i386.a |
| |
| $(TARGET_DIR)$(OUTPUT)ppc.a: |
| make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) $(OUTPUT)ppc.a |
| endif |
| else |
| $(OUTPUT).a: $(OBJS) |
| @echo AR $@ |
| $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^ |
| endif |
| |
| clean: |
| rm -f $(OBJS) $(OUTPUT) $(TARGET_DIR)$(OUTPUT)*.a |
| ifeq ($(findstring Darwin,$(shell uname)),Darwin) |
| endif |
| |