大家都是手写 Makefile 的吗?

2015-09-24 16:36:08 +08:00
 kevinyoung
写了不少 Makefile 了感觉还是写起来不舒服,难道是姿势不对?

隐约知道应该能自动生成 Makefile 的,但不太了解具体用什么工具。

所以大家都是手写的还是用其他工具生成的?
5406 次点击
所在节点    Linux
15 条回复
xylophone21
2015-09-24 16:41:45 +08:00
cmake
Dragonite
2015-09-24 16:53:09 +08:00
有个叫 autotools 的工具, gnu 的
pi1ot
2015-09-24 16:59:54 +08:00
cmake ,人类可理解,没有 automake 那么虐心
chmlai
2015-09-24 17:00:39 +08:00
cmake
lsmgeb89
2015-09-24 17:00:50 +08:00
cmake 不过这种东西都差不多,上手前看文档,用熟了都一样。
oska874
2015-09-24 17:11:26 +08:00
手写 加 拷贝
paw
2015-09-24 17:16:01 +08:00
automake 啊
tinyproxy
2015-09-24 18:52:10 +08:00
gyp 你可以试试✺◟(∗❛ัᴗ❛ั∗)◞✺
bramblex
2015-09-24 18:54:51 +08:00
嗯,我会自己写一个脚本生成 makefile ……不过 makefile 的静态模式还是挺好用的就是了
bramblex
2015-09-24 18:56:47 +08:00
source_file = $(shell ls src/)
objects = $(foreach o, $(source_file), $(subst .js, ,$(o)))
target_files = $(foreach o, $(objects), dist/$(o).js)
mini_target_files = $(foreach o, $(objects), dist/min/$(o).min.js)

.PHONY: all
all: modules

dist:
@mkdir -p dist

dist/min: dist
@mkdir -p dist/min

.PHONY: modules
modules: dist $(target_files)

.PHONY: minify
minify: dist/min $(mini_target_files)

$(target_files):dist/%.js:src/%.js
tools/UMDT/umdt $< $@

$(mini_target_files):dist/min/%.min.js:dist/%.js
java -jar tools/compiler/compiler.jar $< --js_output_file=$@

.PHONY: clean
clean:
rm -r dist

==================================
就是 % @ < $ 这几个符号比较蛋疼,其他都还好理解。
dididada
2015-09-25 13:52:45 +08:00
用 shell 脚本生成的
doyoubi
2015-09-26 23:25:00 +08:00
premake 简单易用
fuxpro
2015-10-06 19:08:08 +08:00
小工程可以直接手写 makefile ,不过对于团队化的项目管理,不推荐这么做,团队化的项目管理,对于构建文件应该采用模板机制, 可以先根据项目的结构制作一个模块,在这个模块的基础上进行增强维护。

另外的一种方法是采用 cmake 之类的工具。目前参与过的项目基本上都是自己维护自己的模板,使用 cmake 的也不是很多。

个人更倾向于使用 cmake 之类的工具。
Owenjia
2015-10-14 00:17:48 +08:00
SCons 或者 CMake 吧,简单的小程序手写还行。
waruqi
2016-01-01 16:09:06 +08:00
xmake ,我的所有个人项目都用这个,个人觉得比 cmake 好用,简单方便,也是跨平台的。。。

https://github.com/waruqi/xmake

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/223398

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX