lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Fri, Mar 8, 2013 at 3:08 AM, Spencer Parkin <spencer.parkin@gmail.com> wrote:
> 2) Dependency graph execution.

Make is a pretty good tool for this step. Unfortunately, people have
tried to use it for (1) as well.

I think your steps are mostly incomplete though. Building software in
a real environment consists of:

(1) detecting the environment (OS, installed packages, etc.)

This is generally done in configure.

(2) dynamically generating dependency graph based on (1), possibly
omitting/including certain source files due to environment; build
command options (library/header locations, HAVE_OPENSSL, etc.)

Also done in configure with some help from pre-built Makefiles.

(3) building the software with the dependency graph

`make`

For (3), make is a wonderful tool so long as it has the complete
dependency graph (including system headers/libraries) and isn't broken
into sub-makefiles where we lose the ability to parallelize.

For (1) and (2), these problems are just plain hard and the problem
changes with each environment you try to solve it on (surprise). The
reason peoples' pet built systems don't see wide use is because they
don't port well.

-- 
- Patrick Donnelly