BASE = ../.. LINUX_DIR=$(BASE)/linux-2.6.25.10-spc300 STAT_LIB=libspid.a DYN_LIB=libspid.so OBJPATH=obj SRCPATH=src INCPATH=inc ifeq ($(CC_FOR_TARGET),) #direct compile CC=arm-linux-gcc AR=arm-linux-ar CC_WITH_CFLAGS=$(CC) -g -Os CC_WITHOUT_CFLAGS=$(CC) else #compile from buildroot CC_WITH_CFLAGS=$(CC) CC_WITHOUT_CFLAGS=$(CC_FOR_TARGET) endif EXTRA_CFLAGS=-I$(INCPATH) -I$(BASE)/include -I$(LINUX_DIR)/include -MMD SRCS=$(subst $(SRCPATH)/,,$(wildcard $(SRCPATH)/*.c)) DYN_OBJS=$(addprefix $(OBJPATH)/,$(SRCS:.c=.dyn.o)) STAT_OBJS=$(addprefix $(OBJPATH)/,$(SRCS:.c=.stat.o)) DYN_DEPS=$(patsubst %o,%d,$(DYN_OBJS)) STAT_DEPS=$(patsubst %o,%d,$(STAT_OBJS)) all: $(STAT_LIB) $(DYN_LIB) $(STAT_LIB): $(OBJPATH) $(STAT_OBJS) $(AR) cr $@ $(STAT_OBJS) $(DYN_LIB): $(OBJPATH) $(DYN_OBJS) $(CC_WITHOUT_CFLAGS) -shared -fPIC -o $@ $(DYN_OBJS) $(OBJPATH)/%.stat.o: $(SRCPATH)/%.c $(CC_WITH_CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $< $(OBJPATH)/%.dyn.o: $(SRCPATH)/%.c $(CC_WITH_CFLAGS) $(EXTRA_CFLAGS) -fPIC -o $@ -c $< $(OBJPATH): mkdir -p $(OBJPATH) -include $(STAT_DEPS) $(DYN_DEPS) .PHONY: all clean clean: rm -rf $(DYN_OBJS) $(STAT_OBJS) $(STAT_DEPS) $(DYN_DEPS) $(DYN_LIB) $(STAT_LIB)