The longevity of make

September 17, 2009 in Research | Comments (0)

Tags: , ,

I recently rewrote the build sys­tem for Pola from ant to GNU make. Keep­ing things in ant was get­ting to be too much work, try­ing to be proper and writ­ing tasks (in Java) rather than just using the shell. I was ini­tially a little wor­ried about how much work it would be to redo the build sys­tem, but I was pleas­antly reminded by how simple it is. It took prob­ably about a quarter the amount of time to rewrite the entire build sys­tem from scratch in make than it would have taken to do a little incre­mental change to the ant sys­tem. As a bonus I man­aged to clean up the pro­ject a lot, redu­cing the build sys­tem down to just two files of a com­bined 70 lines.

I briefly skimmed through other build sys­tem, cmake, SCons, even cabal, but for all the talk of sim­pli­fic­a­tion and port­ab­il­ity, they don’t seem to offer enough over make to get rid of it. Maybe I’m too cor­rup­ted by the Unix way of doing things, but build­ing soft­ware, for me, always boils down to a few shell com­mands with a bit of depend­ency hand­ling, which is pretty much the defin­i­tion of make. If a build sys­tem uses any­thing other than the shell as its “nat­ive lan­guage” I end up fight­ing with it.

On the port­ab­il­ity side of things, I would prob­ably look at this issue dif­fer­ently if I were build­ing lib­rar­ies instead of just execut­ables and doc­u­ment­a­tion, but I’ve never seen port­ab­il­ity to Win­dows (for instance) as such a com­pel­ling win that it strikes me as a bet­ter solu­tion than just installing cyg­win.


Leave a Reply

You can use these XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>