码迷,mamicode.com
首页 > 其他好文 > 详细

Makefile Template

时间:2020-05-02 10:01:56      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:-bash   card   car   flag   tar   erro   min   module   release   

Makefile Template

Makefile

参考:http://www.partow.net/programming/makefile/index.html

CXX      := -c++
CXXFLAGS := -pedantic-errors -Wall -Wextra -Werror
LDFLAGS  := -L/usr/lib -lstdc++ -lm
BUILD    := ./build
OBJ_DIR  := $(BUILD)/objects
APP_DIR  := $(BUILD)/apps
TARGET   := program
INCLUDE  := -Iinclude/
SRC      :=                         $(wildcard src/module1/*.cpp)    $(wildcard src/module2/*.cpp)    $(wildcard src/module3/*.cpp)    $(wildcard src/*.cpp)         
OBJECTS  := $(SRC:%.cpp=$(OBJ_DIR)/%.o)

all: build $(APP_DIR)/$(TARGET)

$(OBJ_DIR)/%.o: %.cpp
   @mkdir -p $(@D)
   $(CXX) $(CXXFLAGS) $(INCLUDE) -c $< -o $@ $(LDFLAGS)

$(APP_DIR)/$(TARGET): $(OBJECTS)
   @mkdir -p $(@D)
   $(CXX) $(CXXFLAGS) -o $(APP_DIR)/$(TARGET) $^ $(LDFLAGS)

.PHONY: all build clean debug release

build:
   @mkdir -p $(APP_DIR)
   @mkdir -p $(OBJ_DIR)

debug: CXXFLAGS += -DDEBUG -g
debug: all

release: CXXFLAGS += -O2
release: all

clean:
   -@rm -rvf $(OBJ_DIR)/*
   -@rm -rvf $(APP_DIR)/*

目录结构

─┬[ Project ]
 │
 ├──● Makefile
 │
 ├──┬[ build ]
 │  │
 │  ├───[ objects ]
 │  └───[ apps ]
 │
 ├──┬[ include ]
 │  │
 │  ├──● program.hpp
 │  │
 │  ├──┬[ module1 ]
 │  │  │
 │  │  ├──● mod1c1.hpp
 │  │  └──● mod1c2.hpp
 │  │
 │  └──┬[ module2 ]
 │     │
 │     ├──● mod2c1.hpp
 │     └──● mod2c2.hpp
 │
 └──┬[ src ]
    │
    ├──● program.cpp
    │
    ├──┬[ module1 ]
    │  │
    │  ├──● mod1c1.cpp
    │  └──● mod1c2.cpp
    │
    └──┬[ module2 ]
       │
       ├──● mod2c1.cpp
       └──● mod2c2.cpp

Makefile Template

标签:-bash   card   car   flag   tar   erro   min   module   release   

原文地址:https://www.cnblogs.com/jiahu-Blog/p/12816743.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!