Installation API and DESTDIR support

Missing install target in Makefiles is a significant gap in support of Unix-like systems by Premake. I'd like to fill it.

In previous post generic API for file installation was discussed. Here is the version I'm considering to use for now:

install {
  ["/usr/local/share"] = { "A", "B" },  -- default file permissions
  ["/usr/local/bin"] = { "C", "D", perms=755 }
}

However, there are two issues:

1. We need to support what autotools call "DESTDIR" and some others call "installation prefix" or "INSTALL_ROOT" - root directory, defining base path for installation. In Makefile, it should probably be $(DESTDIR) variable. Is it OK to expose raw Makefile synatax here:

install {
  ["$(DESTDIR)/share"] = { "A", "B" },  -- default perms
  ["$(DESTDIR)/bin"] = { "C", "D", perms=755 }
}

or should it be some Makefile-independent pattern like

install {
  ["%prefix/share"] = { "A", "B" },  -- default perms
  ["%prefix/bin"] = { "C", "D", perms=755 }
}

?

2. Simplest case of installation is exactly one file (library or executable) per project, and it could be more easy to use. Probably something like installpath API with kind = "string" and scope = "config". How DESTDIR issue should be handled here?

P.S. Considering Premake is not a make-centric tool, I'm also planning to add "install" action accepting option like "--prefix" or "--destdir", doing similar thing as "make install" in makefile.

Might want to ask on the mailing list too.

Got one vote for "$(DESTDIR)" version from user.