BASE = ../.. LINUX_DIR=$(BASE)/linux-2.6.25.10-spc300 RESPONSE_FILE=extra_flags STAT_LIB=libmme.a DYN_LIB=libmme.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 @$(BASE)/$(RESPONSE_FILE) 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)) MMTYPES=$(INCPATH)/mmtypes.h MMTCGEN=$(BASE)/../common/lib/mmtcgen all: $(STAT_LIB) $(DYN_LIB) $(STAT_LIB): $(STAT_OBJS) $(AR) cr $@ $(STAT_OBJS) $(DYN_LIB): $(DYN_OBJS) $(CC_WITHOUT_CFLAGS) -shared -fPIC -o $@ $(DYN_OBJS) $(OBJPATH)/%.stat.o: $(SRCPATH)/%.c $(MMTYPES) $(CC_WITH_CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $< $(OBJPATH)/%.dyn.o: $(SRCPATH)/%.c $(MMTYPES) $(CC_WITH_CFLAGS) $(EXTRA_CFLAGS) -fPIC -o $@ -c $< $(DYN_OBJS) $(STAT_OBJS): | $(OBJPATH) $(OBJPATH): mkdir $(OBJPATH) -include $(STAT_DEPS) $(DYN_DEPS) $(MMTCGEN)/Makefile .PHONY: all clean distclean distclean: clean if [ -e $(MMTCGEN) ]; then \ rm -f $(MMTYPES); \ fi; clean: rm -f $(DYN_OBJS) $(STAT_OBJS) $(STAT_DEPS) $(DYN_DEPS) $(DYN_LIB) \ $(STAT_LIB) rmdir $(OBJPATH)