-- $Source$
-- $State$

local d = ROOTDIR.."mach/proto/ncg/"

local make_tables = ncgg {
	NCGGINCLUDEDIR = (ROOTDIR.."mach/%ARCHDIR%/ncg/"),
	file (ROOTDIR.."mach/%ARCHDIR%/ncg/table")
}

local cfile_with_tables = cfile {
	class = "cfile_with_tables",
	dynamicheaders = {
		make_tables,
	}
}

proto_ncg = cprogram {
	class = "proto_ncg",
	
	CINCLUDES = {
		PARENT,
		"mach/%PLATFORM%/ncg",
		"mach/%ARCHDIR%/ncg",
		"mach"
	},
	
	cfile_with_tables (d.."codegen.c"),
	cfile_with_tables (d.."compute.c"),
	cfile_with_tables (d.."equiv.c"),
	cfile_with_tables (d.."fillem.c"),
	cfile_with_tables (d.."gencode.c"),
	cfile_with_tables (d.."glosym.c"),
	cfile_with_tables (d.."label.c"),
	cfile_with_tables (d.."main.c"),
	cfile_with_tables (d.."move.c"),
	cfile_with_tables (d.."nextem.c"),
	cfile_with_tables (d.."reg.c"),
	cfile_with_tables (d.."regvar.c"),
	cfile_with_tables (d.."salloc.c"),
	cfile_with_tables (d.."state.c"),
	cfile_with_tables (d.."subr.c"),
	cfile_with_tables (d.."var.c"),
	
	cfile {
		ith { make_tables, i = 1 },
		CINCLUDES = {PARENT, d},
	},
	
	lib_em_data,
	lib_flt_arith,
	
	outputs = {"%U%/%PLATFORM%-ncg"},
	install = pm.install("%BINDIR%%PLATDEP%/%PLATFORM%/ncg")
}
