automatically built helper tools. Star Trek goes up from 40243 to 40779 bytes, but should be a lot faster.
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local generated = {}
 | |
| 
 | |
| definerule("generate",
 | |
| 	{
 | |
| 		body = { type="string" },
 | |
| 		offset = { type="object" },
 | |
| 	},
 | |
| 	function(e)
 | |
| 		return normalrule {
 | |
| 			name = e.name,
 | |
| 			ins = { "./generate.sh", "./"..e.body },
 | |
| 			outleaves = { e.name..".s" },
 | |
| 			commands = {
 | |
| 				"%{ins[1]} "..e.body.." "..e.offset.." > %{outs}"
 | |
| 			}
 | |
| 		}
 | |
| 	end
 | |
| )
 | |
| 		
 | |
| for i = 1, 128 do
 | |
| 	generated[#generated+1] = generate {
 | |
| 		name = "fload"..i,
 | |
| 		body = "fload.h",
 | |
| 		offset = i
 | |
| 	}
 | |
| 
 | |
| 	generated[#generated+1] = generate {
 | |
| 		name = "floadn"..i,
 | |
| 		body = "floadn.h",
 | |
| 		offset = i
 | |
| 	}
 | |
| 
 | |
| 	generated[#generated+1] = generate {
 | |
| 		name = "fstore"..i,
 | |
| 		body = "fstore.h",
 | |
| 		offset = i
 | |
| 	}
 | |
| 
 | |
| 	generated[#generated+1] = generate {
 | |
| 		name = "fstoren"..i,
 | |
| 		body = "fstoren.h",
 | |
| 		offset = i
 | |
| 	}
 | |
| 
 | |
| 	generated[#generated+1] = generate {
 | |
| 		name = "faddr"..i,
 | |
| 		body = "faddr.h",
 | |
| 		offset = i
 | |
| 	}
 | |
| 
 | |
| 	generated[#generated+1] = generate {
 | |
| 		name = "faddrn"..i,
 | |
| 		body = "faddrn.h",
 | |
| 		offset = i
 | |
| 	}
 | |
| end
 | |
| 
 | |
| for _, plat in ipairs(vars.plats) do
 | |
| 	acklibrary {
 | |
| 		name = "lib_"..plat,
 | |
| 		srcs = concat("./*.s", generated),
 | |
| 		vars = {
 | |
| 			plat = plat,
 | |
| 			["+ackcflags"] = {"-Imach/i80/libem"}
 | |
| 		},
 | |
| 	}
 | |
| end
 | |
| 
 |