| #/* | |
| #* Licensed to the Apache Software Foundation (ASF) under one or more | |
| #* contributor license agreements. See the NOTICE file distributed with | |
| #* this work for additional information regarding copyright ownership. | |
| #* The ASF licenses this file to You under the Apache License, Version 2.0 | |
| #* (the "License"); you may not use this file except in compliance with | |
| #* the License. You may obtain a copy of the License at | |
| #* | |
| #* http://www.apache.org/licenses/LICENSE-2.0 | |
| #* | |
| #* Unless required by applicable law or agreed to in writing, software | |
| #* distributed under the License is distributed on an "AS IS" BASIS, | |
| #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| #* See the License for the specific language governing permissions and | |
| #* limitations under the License. | |
| #*/ | |
| ##==================================================================== | |
| # make release=0 debug版。 | |
| # make release=1 release版。 | |
| CXXFLAGS = -g -pthread -Wall -fPIC -Wno-deprecated -fno-strict-aliasing -fno-omit-frame-pointer -O0 -DNDEBUG | |
| ifeq ($(shell uname -m),x86_64) | |
| CXXFLAGS += -m64 | |
| else | |
| CXXFLAGS += -m32 | |
| endif | |
| ##==================================================================== | |
| PREFIX:=/usr/local | |
| TOPDIR := .. | |
| STATIC_TARGET := $(TOPDIR)/bin/librocketmqclientpython.a | |
| SHARED_TARGET := $(TOPDIR)/bin/librocketmqclientpython.so | |
| SRCDIR:=$(TOPDIR)/src | |
| INCFILES:=$(wildcard $(TOPDIR)/include/*.h) | |
| CPP_SRCDIR := $(SRCDIR) | |
| CPP_SRC := $(foreach dir,$(CPP_SRCDIR), $(wildcard $(dir)/*.cpp)) | |
| STATIC_OBJ := $(filter-out %/dllmain.o,$(patsubst %.cpp, %.o, $(CPP_SRC))) | |
| SHARED_OBJ := $(filter-out %/dllmain.lo,$(patsubst %.cpp, %.lo, $(CPP_SRC))) | |
| VPATH:=$(CPP_SRCDIR) | |
| PYTHON_INCLUDE:=/usr/include/python2.7 | |
| ROCKETMQ_INCLUDE:=/usr/local/include/rocketmq | |
| PYTHON_LIB:=/usr/python/bin | |
| PYTHON_LIBD:=/usr/python/lib | |
| ROCKETMQ_LIBD:=/usr/local/lib | |
| CPPFLAGS := -I$(TOPDIR)/include \ | |
| $(addprefix -I,$(CPP_SRCDIR)) \ | |
| $(addprefix -I,$(ROCKETMQ_INCLUDE)) \ | |
| $(addprefix -I,$(PYTHON_INCLUDE)) | |
| LDFLAGS := -shared -Wl,-soname=librocketmqclientpython.so -pthread -fPIC | |
| LIBPATH := $(addprefix -L,$(ROCKETMQ_LIBD) $(PYTHON_LIBD)) | |
| LDLIBS := $(addprefix -l,rocketmq boost_python) | |
| CXX := g++ | |
| AR := ar | |
| ARFLAGS := rcs | |
| LIBS:= $(foreach dir,$(ROCKETMQ_LIBD),$(wildcard $(dir)/*/lib/*.a)) | |
| ##==================================================================== | |
| #include tool.mak | |
| ##==================================================================== | |
| all:build-static build-shared | |
| build-static:$(STATIC_TARGET) | |
| build-shared:$(SHARED_TARGET) | |
| $(STATIC_TARGET):$(STATIC_OBJ) $(LIBS) | |
| $(SHARED_TARGET):$(SHARED_OBJ) | |
| $(CXX) $(LDFLAGS) -o $@ $^ $(LIBPATH) $(LDLIBS) | |
| %.o:%.cpp | |
| $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $< | |
| %.lo:%.cpp | |
| $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $< | |
| rebuild:clean build | |
| test: | |
| @echo $(LIBS) | |
| clean: | |
| $(RM) -rf $(STATIC_OBJ) | |
| $(RM) -rf $(SHARED_OBJ) | |
| $(RM) -rf ipch *.sdf *.opensdf *.user *.suo | |
| install: $(STATIC_TARGET) $(SHARED_TARGET) | |
| mkdir -p $(PREFIX)/lib | |
| rm -rf $(PREFIX)/lib/librocketmqclientpython.a | |
| rm -rf $(PREFIX)/lib/librocketmqclientpython.so | |
| #cp -rf $(STATIC_TARGET) $(PREFIX)/lib/ | |
| cp -rf $(SHARED_TARGET) $(PREFIX)/lib/ | |
| @echo | |
| @echo 'Install succeed, target directory is "'$(PREFIX)'".' |