123 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
-- $Source$
 | 
						|
-- $State$
 | 
						|
 | 
						|
local d = ROOTDIR.."util/cpp/"
 | 
						|
 | 
						|
local extract_parameters = simple {
 | 
						|
	outputs = {
 | 
						|
		"%U%/pathlength.h",
 | 
						|
		"%U%/errout.h",
 | 
						|
		"%U%/idfsize.h",
 | 
						|
		"%U%/numsize.h",
 | 
						|
		"%U%/nparams.h",
 | 
						|
		"%U%/ifdepth.h",
 | 
						|
		"%U%/lapbuf.h",
 | 
						|
		"%U%/strsize.h",
 | 
						|
		"%U%/botch_free.h",
 | 
						|
		"%U%/debug.h",
 | 
						|
		"%U%/parbufsize.h",
 | 
						|
		"%U%/textsize.h",
 | 
						|
		"%U%/inputtype.h",
 | 
						|
		"%U%/obufsize.h",
 | 
						|
		"%U%/dobits.h",
 | 
						|
		"%U%/line_prefix.h",
 | 
						|
	},
 | 
						|
	
 | 
						|
	command = {
 | 
						|
		"cd %out[1]:dirname% && %in[1]% %in[2]%"
 | 
						|
	},
 | 
						|
	
 | 
						|
	file (d.."make.hfiles"),
 | 
						|
	file (d.."Parameters")
 | 
						|
}
 | 
						|
 | 
						|
local lpars = LLgen {
 | 
						|
	simple {
 | 
						|
		outputs = {"%U%/tokenfile.g"},
 | 
						|
		command = {
 | 
						|
			"%in[1]% < %in[2]% > %out[1]%"
 | 
						|
		},
 | 
						|
		file (d.."make.tokfile"),
 | 
						|
		file (d.."tokenname.c")
 | 
						|
	},
 | 
						|
	file (d.."expression.g")
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
local cfile_with_headers = cfile {
 | 
						|
	class = "cfile_with_headers",
 | 
						|
	dynamicheaders = {
 | 
						|
		file (d),
 | 
						|
		extract_parameters,
 | 
						|
		lpars
 | 
						|
	}
 | 
						|
}
 | 
						|
	
 | 
						|
tool_cpp = cprogram {
 | 
						|
	cfile_with_headers (d.."LLlex.c"),
 | 
						|
	cfile_with_headers (d.."LLmessage.c"),
 | 
						|
	cfile_with_headers (d.."ch7bin.c"),
 | 
						|
	cfile_with_headers (d.."ch7mon.c"),
 | 
						|
	cfile_with_headers (d.."domacro.c"),
 | 
						|
	cfile_with_headers (d.."error.c"),
 | 
						|
	cfile_with_headers (d.."idf.c"),
 | 
						|
	cfile_with_headers (d.."init.c"),
 | 
						|
	cfile_with_headers (d.."input.c"),
 | 
						|
	cfile_with_headers (d.."main.c"),
 | 
						|
	cfile_with_headers (d.."options.c"),
 | 
						|
	cfile_with_headers (d.."preprocess.c"), 
 | 
						|
	cfile_with_headers (d.."replace.c"),
 | 
						|
	cfile_with_headers (d.."scan.c"),
 | 
						|
	cfile_with_headers (d.."skip.c"),
 | 
						|
	cfile_with_headers (d.."tokenname.c"),
 | 
						|
	cfile_with_headers (d.."next.c"),
 | 
						|
	cfile_with_headers (d.."expr.c"),
 | 
						|
 | 
						|
	foreach {
 | 
						|
		rule = cfile_with_headers,
 | 
						|
		ith { lpars, from=2 }
 | 
						|
	},
 | 
						|
 | 
						|
	cfile_with_headers {
 | 
						|
		simple {
 | 
						|
			outputs = {"%U%-symbol2str.c"},
 | 
						|
			command = {
 | 
						|
				"%in[1]% < %in[2]% > %out[1]%"
 | 
						|
			},
 | 
						|
			
 | 
						|
			file (d.."make.tokcase"),
 | 
						|
			file (d.."tokenname.c")
 | 
						|
		}
 | 
						|
	},
 | 
						|
	
 | 
						|
	cfile_with_headers {
 | 
						|
		CINCLUDES = {PARENT, d},
 | 
						|
		tabgen (d.."char.tab")
 | 
						|
	},
 | 
						|
	
 | 
						|
	lib_assert,
 | 
						|
	lib_print,
 | 
						|
	lib_alloc,
 | 
						|
	lib_system,
 | 
						|
	lib_string,
 | 
						|
	
 | 
						|
	outputs = {"%U%/cpp"},
 | 
						|
	install = {
 | 
						|
		pm.install("%BINDIR%%PLATDEP%/cpp"),
 | 
						|
		pm.install(d.."cpp.6", "%BINDIR%man/man6/cpp.6")
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
-- Revision history
 | 
						|
-- $Log$
 | 
						|
-- Revision 1.4  2006-10-15 00:28:11  dtrg
 | 
						|
-- Updated to the version 0.1 of Prime Mover (which involves some syntax changes).
 | 
						|
--
 | 
						|
-- Revision 1.3  2006/07/22 20:58:27  dtrg
 | 
						|
-- cpp now gets installed in the right place.
 | 
						|
--
 | 
						|
-- Revision 1.2  2006/07/22 12:27:31  dtrg
 | 
						|
-- Removed a huge, ancient comment dating from the genmake days.
 | 
						|
--
 | 
						|
-- Revision 1.1  2006/07/20 23:24:28  dtrg
 | 
						|
-- First version in CVS.
 |