如何构建没有make的项目(裸shell脚本)?

时间:2014-10-30 15:57:57

标签: shell makefile

我在过去(或者可能不是那么老)听说过,在Unix中包含make实用程序之前,人们习惯于将shell脚本写入" make"和#34;安装"他们的软件。

考虑一个项目:2个源文件main.cutil.c,标题util.h使用OpenGL库并需要在Ubuntu上运行。

(Ubuntu和OpenGL只是为了具体而使用)

这样的剧本究竟需要做什么?我在哪里可以找到一个例子?

1 个答案:

答案 0 :(得分:1)

很难想象为什么有人会想要重新审视过去的糟糕日子"在make之前,但对于一个简单的项目来说实际上并不困难。因此,根据您的特定示例,要编译的shell脚本可能如下所示:

gcc -Wall -c main.c -o main.o -lglut -lglm 
gcc -Wall -c util.c -o util.o -lglut -lglm
gcc -Wall main.o util.o -o main -lglut -lglm

它的作用是简单地贯穿整个"配方"每次都要建立项目。优点是,如果源代码都是正确的,它应该导致可执行文件。相当不利的是

  • 如果任何步骤失败,那么依赖失败步骤的后续步骤
  • 每次都重建一切,浪费了很多时间
  • 编译和链接标志都嵌入到脚本中并且难以更改
  • 这种方法几乎没有跨平台兼容性的希望

可以修改基本的shell脚本来改进这方面的各个方面。然后,当证明不充分时,可以编写一个程序来更好地完成这些事情。那时,从本质上讲,你将重新发明make