|
tobecompiled.pl |
#!/usr/local/bin/perl -w @tobecompiled = (); foreach $source (glob("*.c")) { ($object = $source) =~ s/\.c$/.o/; if (! -f $object || newer($source, $object)) { push(@tobecompiled, $source); } } if (@tobecompiled > 0) { print "To be compiled: ", join(" ", @tobecompiled), "\n"; } else { print "All objects are up-to-date!\n"; } sub newer { # return true if file1 is newer than file2 my ($file1, $file2) = @_; return (stat($file1))[9] > (stat($file2))[9]; } |
Dieses Skript stellt (analog zu make) fest,
welche C-Quellen frisch zu übersetzen sind aufgrund
der vorhandenen Objekte und der Zeitstempel.
| |
glob akzeptiert als Parameter ein Dateimuster
der Bourne-Shell und liefert alle gefundenen Dateinamen
als Liste zurück.
| |
stat liefert eine 13-elementige Liste mit den Werten aus der
entsprechenden Struktur zurück: (0: dev, 1: ino,
2: mode, 3: nlink, 4: uid, 5: gid, 6: rdev, 7: size,
8: atime, 9: mtime, 10: ctime, 11: blksize, 12: blocks).
|
Copyright © 1996, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000 |