GNUmake
1.0、参考
1.1、make简介
是什么 ?:a build system automatically determines which pieces of a package need to be (re)compiled and then issues the relevant commands.
开发语言:C
开发组织:GNU
官方主页:https://www.gnu.org/software/make
同类软件:BSD makeninja
1.2、通过包管理器安装GNU make
操作系统包管理器安装命令
Windowsscoopscoop install make
WindowsChocolateychoco install -y make
macOSHomeBrewbrew install make
GNU/LinuxLinuxBrewbrew install make
aptsudo apt-get install -y make
CentOSyumsudo yum install -y make
dnfsudo dnf install -y make
openSUSEzyppersudo zypper install -y make
Alpine Linuxapksudo apk add make

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm make
Gentoo LinuxPortagesudo emerge make
1.3、通过编译源码安装GNU make 

step1、安装依赖

下载时cURL
解压时tarbzip2
编译时POSIX shGNU CoreUtilsGNU makeGCC ( gcc )   | LLVM / Clang
运行时
  • glibc ( libc.solibdl.solibpthread.sold-linux-x86-64.so )

step2、使用curl命令下载GNU make源码包 (

curl -LO https://mirrors.tuna.tsinghua.edu.cn/gnu/make/make-4.2.tar.bz2

step3、使用tar解压GNU make源码包

tar vxf make-4.2.tar.bz2

step4、进入make-4.2目录,并查看它的内容

step5、配置、编译、安装

./configure && make && sudo make install
1.4、make命令

make命令的使用格式如下:

make [option]... [VARIABLE=VLAUE]... [target]...

VARIABLE既可以是操作系统的环境变量,也可以是Makefile中的变量。

target是在Makefile中定义的。

当没有指定target的时候,make会从上到下遇到的第一个target当成默认目标来执行。

1.4.1、-f <MakefilePath>

-f指定Makefile的文件路径。

make默认会寻找当前目录下的文件名是makefile或者Makefile的文件来执行, 如果您的Makefile的文件名不是makefile或者Makefile,或者不在当前目录下, 那么就必须要使用-f参数来指定。

make -f /etc/make.conf clean
1.4.2、-j <jobNumber>

-j参数用于指定job的数量。

-j参数的值需要根据您自己的机器的CPU的核的数量来决定, 以充分利用多核CPU的计算力,来提高效率。

make -j 4 build
1.5、Makefile
1.5.1、目标
1.5.2、伪目标

没有依赖文件的目标,就是一个伪目标。

示例:

init:
    mkdir bin
1.5.3、变量
1.5.4、函数