43 lines
		
	
	
	
		
			590 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			590 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
include("util/LLgen/build.lua")
 | 
						|
 | 
						|
llgen {
 | 
						|
	name = "llgen",
 | 
						|
	srcs = { "./*.g" }
 | 
						|
}
 | 
						|
 | 
						|
cprogram {
 | 
						|
	name = "topgen",
 | 
						|
	srcs = {
 | 
						|
		"./*.c",
 | 
						|
		matching(filenamesof("+llgen"), "%.c$"),
 | 
						|
	},
 | 
						|
	deps = {
 | 
						|
		"+llgen",
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
definerule("topgen",
 | 
						|
	{
 | 
						|
		srcs = { type="targets" },
 | 
						|
	},
 | 
						|
	function(e)
 | 
						|
		-- Remember this is executed from the caller's directory; local
 | 
						|
		-- target names will resolve there
 | 
						|
 | 
						|
		return normalrule {
 | 
						|
			name = e.name,
 | 
						|
			outleaves = {
 | 
						|
				"gen.c",
 | 
						|
				"gen.h",
 | 
						|
			},
 | 
						|
			ins = {
 | 
						|
				"util/topgen+topgen",
 | 
						|
				e.srcs,
 | 
						|
			},
 | 
						|
			commands = {
 | 
						|
				"%{ins[1]} %{ins[2]} %{dir}"
 | 
						|
			}
 | 
						|
		}
 | 
						|
	end
 | 
						|
)
 | 
						|
 |