268 |
end |
end |
269 |
end |
end |
270 |
|
|
271 |
|
class Script |
272 |
|
def initialize(dir, name) |
273 |
|
@dir = dir |
274 |
|
@name = name |
275 |
|
end |
276 |
|
attr_reader :dir, :name |
277 |
|
|
278 |
|
def rule(sources) |
279 |
|
if sources.length != 1 |
280 |
|
raise "only a single source file must be specified for a script" |
281 |
|
end |
282 |
|
src = sources[0] |
283 |
|
if /\.in$/ !~ src |
284 |
|
raise "unknown source file `#{src}'" |
285 |
|
end |
286 |
|
|
287 |
|
"CLEANFILES += #{@name} |
288 |
|
|
289 |
|
#{@name}: #{src} config.status |
290 |
|
./config.status --file=#{name}:#{src} |
291 |
|
|
292 |
|
" |
293 |
|
end |
294 |
|
end |
295 |
|
|
296 |
images = [] |
images = [] |
297 |
utils = [] |
utils = [] |
298 |
pmodules = [] |
pmodules = [] |
299 |
programs = [] |
programs = [] |
300 |
|
scripts = [] |
301 |
|
|
302 |
cont = false |
cont = false |
303 |
s = nil |
s = nil |
336 |
end |
end |
337 |
|
|
338 |
when 'PROGRAMS' |
when 'PROGRAMS' |
339 |
programs += args.split(/\s+/).collect do |util| |
programs += args.split(/\s+/).collect do |prog| |
340 |
Program.new(prefix, util) |
Program.new(prefix, prog) |
341 |
|
end |
342 |
|
|
343 |
|
when 'SCRIPTS' |
344 |
|
scripts += args.split(/\s+/).collect do |script| |
345 |
|
Script.new(prefix, script) |
346 |
end |
end |
347 |
|
|
348 |
when 'SOURCES' |
when 'SOURCES' |
354 |
print util.rule(args.split(/\s+/)) |
print util.rule(args.split(/\s+/)) |
355 |
elsif program = programs.detect() {|u| u.name.to_var == prefix} |
elsif program = programs.detect() {|u| u.name.to_var == prefix} |
356 |
print program.rule(args.split(/\s+/)) |
print program.rule(args.split(/\s+/)) |
357 |
|
elsif script = scripts.detect() {|s| s.name.to_var == prefix} |
358 |
|
print script.rule(args.split(/\s+/)) |
359 |
end |
end |
360 |
end |
end |
361 |
end |
end |