STAT_LIB=libmme.a DYN_LIB=libmme.so OBJPATH=obj SRCPATH=src INCPATH=inc CLEO_DIR = ../.. LINUX_DIR = $(CLEO_DIR)/linux-2.6.25.10-spc300 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 RESPONSE_FILE = extra_flags INCLUDES = -I$(INCPATH) \ -I$(CLEO_DIR)/include \ -I$(LINUX_DIR)/include EXTRA_CFLAGS = $(INCLUDES) -MMD -Wall \ @$(CLEO_DIR)/$(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=$(CLEO_DIR)/../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)