Slog70_自動化工具之make和Makefile2

ArthurSlog

  • ArthurSlog
  • SLog-70
  • Year·1
  • Guangzhou·China
  • Sep 11th 2018

聖人不積 既覺得人己愈有既已爲人己愈多html


開發環境MacOS(High Sierra 10.13.5)

須要的信息和信息源:

開始編碼

  • 以前的文章編寫了一個基礎的 Makefile文件

~/Desktop/makefile_demo/Makefilegit

.PHONY: all say_hello generate clean

all: say_hello generate

say_hello:
        @echo "Hello Malefile"

generate:
        @echo "Creating some files..."
        touch file-{1..10}.txt

clean:
        @echo "Cleaning up..."
        rm *.txt
  • 先整理一下當前路徑 ~/Desktop/makefile_demo/ 下的文件
cd ~/Desktop/makefile_demo/

make cleangithub

mkdir demo1 demo2npm

mv Makefile demo1/segmentfault

cd demo2微信

  • 在當前路徑下(~/Desktop/makefile_demo/demo2/)建立一個新文件 Makefile
  • 如今的目錄結構以下:
makefile_demo
      | - demo1
            | - Makefile
      | - demo2
            | - Makefile
  • 此次,來介紹一下 Makefile中的 「判斷」 語法
  • 舉個栗子,上代碼:

~/Desktop/makefile_demo/demo2/Makefileless

.PHONY: all warning generate clean

all: warning generate

# fun: warning
# if(./README.md)
# do
# @echo "README.md is an existing file,you just covered it"
warning : README.md
    @echo "README.md is an existing file,you just covered it"

generate: 
    @echo "Creating a file named README.md ..."
    touch README.md

clean: 
    @echo "Cleaning up..."
    rm *.md
  • 上面的代碼中;
# fun: warning
# if(./README.md)
# do
# @echo "README.md is an existing file,you just covered it"
warning : README.md
    @echo "README.md is an existing file,you just covered it"
  • 這裏分紅了三個部分:

// 方法名工具

  1. warning

// 判斷模塊,在這裏是判斷當前路徑下是否有 README.md 這個文件post

  1. README.md

// 方法體,是具體的執行方法,這裏是在控制檯輸出「README.md is an existing file,you just covered it」這一行字符串ui

  1. @echo "README.md is an existing file,you just covered it"
  • 如今,打開命令行,在當前路徑執行Makefile文件裏的 generate方法
make generate
Creating a file named README.md ...
touch README.md
  • 如今在當前路徑下,生成了一個README.md文件
ls
Makefile    README.md
  • 如今,執行Makefile文件裏的 all 方法,make 默認執行all方法,因此all能夠省略
make
Creating a file named README.md ...
touch README.md
  • 上面的 all方法裏面晗有兩個方法 warning 和 generate
  • 其中warning會先執行 「判斷模塊」,而後再執行 方法體
  • 「判斷模塊老是優先執行」
  • 如今執行clean方法,清理當前路徑
make clean
Cleaning up...
rm *.md
  • 查看當前路徑
ls
Makefile
  • 上面說了這麼多,都是再描述Makefile的 「規則」 的使用
  • 官方稱之爲 「rules」

a rules

target … : prerequisites …
        recipe
        …
        …
  • 至此,完成了一個基礎的Makefile的「rules」的瞭解和編寫。

歡迎關注個人微信公衆號 ArthurSlog

關注微信公衆號「ArthurSlog」

若是你喜歡個人文章 歡迎點贊 留言

謝謝

相關文章
相關標籤/搜索