Gcc 从构建中调用make

Gcc 从构建中调用make,gcc,build,makefile,Gcc,Build,Makefile,我想简化工作流,这样就不用发出这些命令了 $ make program_unittest ... output of $MAKE ... $ ./program_unittest args 我可以让我的程序在运行时自动尝试编译自己(如果源代码已经更新),这样我就不必返回运行make 下面是我的想法:我的单元测试构建应该首先检查它所在的目录中是否有makefile,如果有,fork和execmake,目标对应于它自己。如果make确定“什么都不做”,它将继续进行(运行单元测试)。但是,如果m

我想简化工作流,这样就不用发出这些命令了

$ make program_unittest
  ... output of $MAKE ...
$ ./program_unittest args
我可以让我的程序在运行时自动尝试编译自己(如果源代码已经更新),这样我就不必返回运行make

下面是我的想法:我的单元测试构建应该首先检查它所在的目录中是否有makefile,如果有,fork和exec
make
,目标对应于它自己。如果
make
确定“什么都不做”,它将继续进行(运行单元测试)。但是,如果
make
实际执行编译,则可能会发生以下两种情况之一
gcc
(由
make
调用)可能能够在编译过程中覆盖构建(其较旧版本已经在运行),在这种情况下,我可能可以执行它。如果我的系统不允许
gcc
覆盖正在使用的程序,那么我必须在运行
make
之前退出该程序


所以这已经相当复杂了。有没有更优雅的解决方案?也许我可以用bash脚本?如何确定make是否发出编译命令?

为什么不让make运行单元测试