Makefile_multi_2_multi_Out
- 此Makefile 将多个-单独的c/cpp/cc文件,编译为各个可执行文件
SrcSuf = c
SrcSuf2 = cpp
SrcSuf3 = cc
ObjSuf = o
LibSuf = so
LibSuf2 = a
.SUFFIXES: .$(SrcSuf) .$(SrcSuf2) .$(SrcSuf3) \
.$(ObjSuf) .$(LibSuf) .$(LibSuf2)
OBJFILES += test_getopt.$(ObjSuf)
OBJFILES += test_getopt2.$(ObjSuf)
target = $(OBJFILES:.o=.out)
INCLUDEPATH += -I /usr/include/
INCLUDEPATH += -I /usr/local/include
CFlag += $(INCLUDEPATH) -w -g -ggdb -fshort-wchar -std=c11
CppFlag += $(INCLUDEPATH) -w -g -ggdb -fshort-wchar -std=c++11
CxxFlag += $(INCLUDEPATH) -w -g -ggdb -fshort-wchar -std=c++11
LIBPATH += -L /usr/lib/
LIBPATH += -L /usr/local/lib/
LDLIBS += -lpthread
LDFLAGS += $(LIBPATH)
LDFLAGS += $(LDLIBS)
CC = gcc
CPP = g++
CXX = g++
all: $(target) clean
$(target):$(OBJFILES)
@echo "creating $@ start..."
$(CC) $(LDFLAGS) $< -o $@
@echo "creating $@ end"
.$(SrcSuf).$(ObjSuf):
@echo "Compiling $(EXECUTABLE) $<"
$(CC) $(CFlag) -c $< -o $@
.$(SrcSuf2).$(ObjSuf):
@echo "Compiling $(EXECUTABLE) $<"
$(CXX) $(CppFLAGS) -c $< -o $@
.$(SrcSuf3).$(ObjSuf):
@echo "Compiling $(EXECUTABLE) $<"
$(CXX) $(CxxFLAGS) -c $< -o $@
.PHONY:cleanobj
clean:
rm -f *.o
.PHONY:cleanall
cleanall:
rm -f $(EXECUTABLE) *.o *.a *.so *.out
Makefile_multi_2_singl_Out
- 此Makefile 将多个-单独的c/cpp/cc文件,编译为一个可执行文件
EXECUTABLE := main.out
SrcSuf = c
SrcSuf2 = cpp
SrcSuf3 = cc
ObjSuf = o
LibSuf = so
LibSuf2 = a
.SUFFIXES: .$(SrcSuf) .$(SrcSuf2) .$(SrcSuf3) \
.$(ObjSuf) .$(LibSuf) .$(LibSuf2)
OBJFILES += test_getopt.$(ObjSuf)
OBJFILES += test_getopt2.$(ObjSuf)
INCLUDEPATH += -I /usr/include/
INCLUDEPATH += -I /usr/local/include
CFlag += $(INCLUDEPATH) -w -g -ggdb -fshort-wchar -std=c11
CppFlag += $(INCLUDEPATH) -w -g -ggdb -fshort-wchar -std=c++11
CxxFlag += $(INCLUDEPATH) -w -g -ggdb -fshort-wchar -std=c++11
LIBPATH += -L /usr/lib/
LIBPATH += -L /usr/local/lib/
LDLIBS += -lpthread
LDFLAGS += $(LIBPATH)
LDFLAGS += $(LDLIBS)
CC = gcc
CPP = g++
CXX = g++
all: $(EXECUTABLE) clean
$(EXECUTABLE):$(OBJFILES)
@echo "creating $(EXECUTABLE) start..."
$(CC) $(LDFLAGS) $(OBJFILES) -o $(EXECUTABLE)
@echo "creating $(EXECUTABLE) end"
.$(SrcSuf).$(ObjSuf):
@echo "Compiling $(EXECUTABLE) $<"
$(CC) $(CFlag) -c $< -o $@
.$(SrcSuf2).$(ObjSuf):
@echo "Compiling $(EXECUTABLE) $<"
$(CXX) $(CppFLAGS) -c $< -o $@
.$(SrcSuf3).$(ObjSuf):
@echo "Compiling $(EXECUTABLE) $<"
$(CXX) $(CxxFLAGS) -c $< -o $@
.PHONY:cleanobj
clean:
rm -f *.o
.PHONY:cleanall
cleanall:
rm -f $(EXECUTABLE) *.o *.a *.so *.out