生成.so文件的Makefile2010-05-19 22:22
# DEBUG can be set to YES to include debug info, or NO otherwise
DEBUG := YES
OUTPUT := ../../../../../libs/libbasehelper.so
DEFS :=
#**********************************************************
VPATH = ./
CXX := g++
LD := g++
AR := ar rc
RANLIB := ranlib
DEBUG_CXXFLAGS := -Wall -g -DDEBUG
RELEASE_CXXFLAGS := -Wall -O3 -DNDEBUG
DEBUG_LDFLAGS := -g
RELEASE_LDFLAGS :=
ifeq (YES, $(DEBUG))
CXXFLAGS := $(DEBUG_CXXFLAGS) $(DEFS)
LDFLLAGS := $(DEBUG_LDFLAGS) $(DEFS)
else
CXXFLAGS := $(RELEASE_CXXFLAGS) $(DEFS)
LDFLLAGS := $(RELEASE_CSSFLAGS) $(DEFS)
endif
all:$(OUTPUT)
SRCS := $(wildcard *.cpp)
OBJS := $(addsuffix .o, $(basename $(SRCS)))
DEPS := $(addsuffix .d, $(basename $(SRCS)))
#**********************************************************
# OUTPUT
#**********************************************************
$(OUTPUT):$(OBJS)
$(LD) -o $@ -shared $(CXXFLAGS) $(OBJS) $(LIBS)
#**********************************************************
# common rule
#**********************************************************
%.o : %.cpp
$(CXX) -c -fPIC $(CXXFLAGS) $(INCS) $<
include $(subst .cpp,.d,$(SRCS))
%.d : %.cpp
$(CXX) -M $(CPPFLAGS) $(INCS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$> $@; \
rm -f $@.$$$$;
clean:
rm -f $(OBJS) $(OUTPUT) $(DEPS)
|