makefile for boost crossplatform

时间:2015-09-20 21:46:00

标签: c++ boost makefile

我为我正在编译的库创建了一个makefile。

我已经在windows和linux上使用了makefile,但每个操作系统都有不同的makefile 我怎么能允许这个在两个操作系统上工作,而无需硬编码升级库的路径并增强下面的标题:

我是否需要将boost文件夹添加到路径变量中?我是否需要将库目录添加到某个OS变量?

makefile windows:

# source files.
SRC = protoService.cpp protocolBaseServer.cpp client.cpp

OBJ = $(SRC:.cpp=.o)

OUT = ../libutils.a

# include directories
INCLUDES = -I. -I../include/  -IC:\boost_1_59_0\

# C++ compiler flags (-g -O2 -Wall)
CCFLAGS = -g -MD -MP -std=c++0x -Wall -c

# compiler
CCC = g++

# library paths
LIBS = -LC:\boost_1_59_0\libs -lboost_serialization

# compile flags
LDFLAGS = -g

.SUFFIXES: .cpp

default: $(OUT)

.cpp.o:
    $(CCC) $(INCLUDES) $(CCFLAGS)  $< -o $@

$(OUT): $(OBJ)
    ar rcs $(OUT) $(OBJ)

#depend: dep

#dep:
#   makedepend -- $(CFLAGS) -- $(INCLUDES) $(SRC)

clean:
    rm -f $(OBJ) $(OUT) Makefile.bak

-include $(DEPS:%.o=%.d)

makefile linux:

# source files.
SRC = protoService.cpp protocolBaseServer.cpp client.cpp

OBJ = $(SRC:.cpp=.o)

OUT = ../libutils.a

# include directories
INCLUDES = -I. -I../include/ -I/usr/local/include -I/usr/share/boost_1_58_0/

# C++ compiler flags (-g -O2 -Wall)
CCFLAGS = -g -MD -MP -std=c++0x -Wall -c

# compiler
CCC = g++

# library paths
LIBS = -L/usr/share/boost_1_58_0/lib/ -lboost_serialization

# compile flags
LDFLAGS = -g

.SUFFIXES: .cpp

default: $(OUT)

.cpp.o:
    $(CCC) $(INCLUDES) $(CCFLAGS)  $< -o $@

$(OUT): $(OBJ)
    ar rcs $(OUT) $(OBJ)

#depend: dep

#dep:
#   makedepend -- $(CFLAGS) -- $(INCLUDES) $(SRC)

clean:
    rm -f $(OBJ) $(OUT) Makefile.bak

-include $(DEPS:%.o=%.d)

0 个答案:

没有答案