test = test
ALL: client server libser.so
.SUFFIXES:.o .C .cxx .cpp
CC = g++ -g
CXXFLAGS = -fPIC -D_PROC_INV -D_DEBUG
FJ_FLAG =
MK_SO = -shared -fPIC -fpermissive
CP = install
PROG = .
INCDIR = -I.
LIBDIR = -L$(HOME)/lib -L$(HOME)/src/lib
LIBS = -ldl
LIBS_SRVS =
LIBS_CLIENT =
LIB_SEARCH = -Wl,-rpath=$(HOME)/lib
OBJDIR = $(PROG)/obj
#测试代码依赖.o
TESTOBJ = test.o
#lib依赖.o
LIBOBJS = lib.o
#服务.o
OBJ_D_ME_SRV = tool.o
OBJ_D_ME_SRV_MAIN = server.o
#客户端.o
OBJ_D_ME_CLI = client.o
VPATH = $(PROG)/server:$(PROG)/mdl:$(PROG)/client:$(PROG)/obj:$(PROG)/test
.cpp.o:
$(CC) $(CXXFLAGS) $(FJ_FLAG) $(INCDIR) -c $< -o $(OBJDIR)/$(@F)
@echo "********" $< is builded ok. "********"
@echo ""
libser.so:$(LIBOBJS)
cd $(OBJDIR);$(CC) $(MK_SO) $(CXXFLAGS) $(FJ_FLAG) -o ../bin/$@ $(LIBOBJS) $(LIBDIR) $(LIBS) $(LIB_SEARCH)
@echo "********" $@ is link ok. "********"
@echo ""
server : $(OBJ_D_ME_SRV) $(OBJ_D_ME_SRV_MAIN)
cd $(OBJDIR);$(CC) $(CXXFLAGS) $(FJ_FLAG) -o ../bin/$@ $(OBJ_D_ME_SRV) $(OBJ_D_ME_SRV_MAIN) $(LIBDIR) $(LIBS) $(LIBS_SRVS) $(LIB_SEARCH)
@echo "********" $@ is link ok. "********"
@echo ""
client : $(OBJ_D_ME_CLI) $(LIBOBJS)
cd $(OBJDIR);$(CC) $(CXXFLAGS) $(FJ_FLAG) -o ../bin/$@ $(OBJ_D_ME_CLI) $(LIBOBJS) $(LIBDIR) $(LIBS) $(LIBS_SRVS) $(LIB_SEARCH)
@echo "********" $@ is link ok. "********"
@echo ""
$(test):$(TESTOBJ) $(OBJ_D_ME_SRV)
cd $(OBJDIR);$(CC) -o ../bin/$@ $(patsubst %,%.o,$@) $(OBJ_D_ME_SRV) $(LIBDIR) $(LIBS) $(LIBS_SRVS) -ld_mod_data_manange_client $(INCDIR) $(LIB_SEARCH)
@echo "********" $@ is builded ok. "********"
@echo ""
clean:
rm -rf $(OBJDIR)/*.o
installso:
.PHONY:TEST
TEST:$(test)
一个简单项目的makefile,带有客户端,lib,服务端,测试
最新推荐文章于 2023-04-01 09:53:05 发布