1 TARGET_ARCH ?= none # catch bugs
2 CFLAGS = -O2 -std=gnu99 -static -fomit-frame-pointer -g
6 GCCPREFIX := $(TARGET_ARCH)-ros-
8 GCC_ROOT := $(shell which $(CC) | xargs dirname)/../
11 OBJDIR := $(SRCDIR)obj
12 INCDIR = $(SRCDIR)include
14 INCS = -I. -I$(INCDIR)
15 FINALLIB = $(OBJDIR)/lib$(LIBNAME).a
17 uc = $(shell echo $(1) | tr a-z A-Z)
19 LIBUCNAME := $(call uc, $(LIBNAME))
20 HEADERS := $(shell find $(INCDIR) -name *.h)
21 CFILES := $(wildcard $(SRCDIR)*.c)
22 CFILES += $(wildcard $(SRCDIR)$(TARGET_ARCH)/*.c)
23 SFILES := $(wildcard $(SRCDIR)$(TARGET_ARCH)/*.S)
24 OBJS := $(patsubst %.c, $(OBJDIR)/%.o, $(CFILES)) \
25 $(patsubst %.S, $(OBJDIR)/%.o, $(SFILES))
29 $(OBJDIR)/$(TARGET_ARCH)/%.o: $(SRCDIR)$(TARGET_ARCH)/%.S $(HEADERS)
30 @echo + as [$(LIBUCNAME)] $<
32 $(V)$(CC) $(CFLAGS) $(INCS) -o $@ -c $<
34 $(OBJDIR)/%.o: $(SRCDIR)%.c $(HEADERS)
35 @echo + cc [$(LIBUCNAME)] $<
37 $(V)$(CC) $(CFLAGS) $(INCS) -o $@ -c $<
40 @echo + ar [$(LIBUCNAME)] $@
42 $(V)$(AR) rc $@ $(OBJS)
45 cp $(FINALLIB) $(GCC_ROOT)/$(TARGET_ARCH)-ros/lib/
46 cp -R $(INCDIR)/* $(GCC_ROOT)/$(TARGET_ARCH)-ros/sys-include/
47 rm -rf $(GCC_ROOT)/$(TARGET_ARCH)-ros/sys-include/benchutil
48 ln -fs . $(GCC_ROOT)/$(TARGET_ARCH)-ros/sys-include/benchutil
51 @echo + clean [$(LIBUCNAME)]
52 $(V)rm -rf $(FINALLIB)