2010-05-04 33 views
1

编写Makefile的优势在于,“make”通常假定存在于各种Unices(主要是Linux和Mac)上。等同于此Makefile的Windows

现在我有下面的Makefile:

PYTHON := python 

all: e installdeps 

e: 
     virtualenv --distribute --python=${PYTHON} e 

installdeps: 
     e/bin/python setup.py develop 
     e/bin/pip install unittest2 

test: 
     e/bin/unit2 discover 

clean: 
     rm -rf e 

正如你所看到的这个Makefile使用简单的指标和变量替换。这可以在Windows上实现吗?这意味着 - 无需安装外部工具(如cygwin make);也许make.cmd?例如,键入“make installdeps”应该可以在Unix和Windows上使用。

回答

4

这样的事很简单,是的。但是,如果您想继续改进makefile,可以考虑使用更便携的语言编写“makefile”(而不是安装脚本)。你必须有一些假设。如果它是一个python项目,我相信你会假设安装了python。所以在python中写下你的makefile的等价物。

+0

沿着这些路线,你可能想看看Scons,这是一个用Python编码的构建系统。 – 2010-05-04 19:53:13

+1

好点,但它是一个额外的安装包。至少在一个python项目中,你可以假设已经安装了python,尽管它是用python编写的,但是可以假定scons已经安装了太多了。 – dlamotte 2010-05-04 20:04:18

+1

Scons是我见过的最丑陋的Python代码中的一些。 – 2010-05-04 20:12:32