Usually, you would try and find pre-built binaries that will just drop into the Modules directory. But it seems that it is "campy" to not provide pre-built binaries. Like you have to be in their exclusive programmer club to be able to use the library modules. At least that is my cynical take on it.
But you have to realize that a lot of the guys that write this stuff are unix/linux oriented and they rather hate Windows with a passion. EVERYTHING is built from source in the unix/linux world. So pre-built binaries only exist in the Windows world.
But you can build it with the development tools. But if you haven't done that, it will be a steep learning curve. However, it is not rocket science. Anyone can do it, but it WILL be like poking the proverbial knitting needle through your eardrums. That, I can promise you!
To build this stuff, you need the compiler (MinGW), the library source, any other library source that the target one depends on (if any), LUA 5.2 headers and libraries, and cmake. There is a cmake GUI that makes it a little less painful. In the world of cmake, you point to the source files, point to a build directory (usually one that you create), and "configure". Which basically generates make files for the chosen compiler. Then you have to go to the old command prompt, change into the build directory, and type "make". The make program reads the generated make file (usually called Makefile without an extension) that cmake produced and that, in turn, will produce the binaries. Cmake is all a an attempt at making the source compile-able with any compiler on any platform. But... to me, it is a huge pain in the ass.
You don't let Mach know anything other than placing the resultant LUA module DLL into the modules directory. Then you use the module in your scripts, you "require" the module.
graph = require "plplot"
If the module DLL is called plplot.dll. Then you access the functions with the graph variable.
But wait... there's more! LUA 5.2 is different than LUA 5.0 and 5.1 where modules are concerned. If the module source is not setup to compile with LUA 5.2, then you will have to "port" the source to something that is compatible with LUA 5.2 This generally involves changing the call to luaL_register() to use lua_newtable() and luaL_setfuncs() instead. Here is an example from a LUA library that I recently compiled (and had to port).
#if LUA_VERSION_NUM > 501
lua_newtable(L);
luaL_setfuncs(L, functions_tb, 0);
lua_pushvalue(L,-1);
lua_setglobal(L,LIBNAME);
#else
luaL_register(L, LIBNAME, functions_tb);
#endif
Steve