view release on metacpan or search on metacpan
Wyrd/DBL.pm view on Meta::CPAN
=pod
=item (scalar) C<mtime> (void)
the modification time of the file currently being served. Derived from
Apache::Wyrd::Handler, by default compatible with the C<stat()> builtin
function.
=cut
sub mtime {
Wyrd/DBL.pm view on Meta::CPAN
}
=item (scalar) C<size> (void)
the file size of the file currently being served. Derived from
Apache::Wyrd::Handler, by default compatible with the C<stat()> builtin
function.
=cut
sub size {
Wyrd/DBL.pm view on Meta::CPAN
=pod
=item (scalar) C<dev> (void)
the device number of filesystem of the file currently being served. Derived
from Apache::Wyrd::Handler, by default compatible with the C<stat()> builtin
function.
=cut
sub dev {
Wyrd/DBL.pm view on Meta::CPAN
=pod
=item (scalar) C<ino> (void)
the inode number of the file currently being served. Derived from
Apache::Wyrd::Handler, by default compatible with the C<stat()> builtin
function.
=cut
sub ino {
Wyrd/DBL.pm view on Meta::CPAN
=pod
=item (scalar) C<mode> (void)
the file mode (type and permissions) of the file currently being served.
Derived from Apache::Wyrd::Handler, by default compatible with the C<stat()>
builtin function.
=cut
sub mode {
Wyrd/DBL.pm view on Meta::CPAN
=pod
=item (scalar) C<nlink> (void)
the number of (hard) links to the file of the file currently being served.
Derived from Apache::Wyrd::Handler, by default compatible with the C<stat()>
builtin function.
=cut
sub nlink {
Wyrd/DBL.pm view on Meta::CPAN
=pod
=item (scalar) C<uid> (void)
the numeric user ID of file's owner of the file currently being served.
Derived from Apache::Wyrd::Handler, by default compatible with the C<stat()>
builtin function.
=cut
sub uid {
Wyrd/DBL.pm view on Meta::CPAN
=pod
=item (scalar) C<gid> (void)
the numeric group ID of file's owner of the file currently being served.
Derived from Apache::Wyrd::Handler, by default compatible with the C<stat()>
builtin function.
=cut
sub gid {
Wyrd/DBL.pm view on Meta::CPAN
=item (scalar) C<rdev> (void)
the the device identifier (special files only) of the file currently being
served. Derived from Apache::Wyrd::Handler, by default compatible with the
C<stat()> builtin function.
=cut
sub rdev {
my ($self) = @_;
Wyrd/DBL.pm view on Meta::CPAN
=item (scalar) C<atime> (void)
the last access time in seconds since the epoch of the file currently being
served. Derived from Apache::Wyrd::Handler, by default compatible with the
C<stat()> builtin function.
=cut
sub atime {
my ($self) = @_;
Wyrd/DBL.pm view on Meta::CPAN
=item (scalar) C<ctime> (void)
the inode change time in seconds since the epoch of the file currently being
served. Derived from Apache::Wyrd::Handler, by default compatible with the
C<stat()> builtin function. See the perl documentation for details.
=cut
sub ctime {
my ($self) = @_;
Wyrd/DBL.pm view on Meta::CPAN
=item (scalar) C<blksize> (void)
the preferred block size for file system I/O of the file currently being
served. Derived from Apache::Wyrd::Handler, by default compatible with the
C<stat()> builtin function.
=cut
sub blksize {
my ($self) = @_;
Wyrd/DBL.pm view on Meta::CPAN
=pod
=item (scalar) C<blocks> (void)
the actual number of blocks allocated of the file currently being served.
Derived from Apache::Wyrd::Handler, by default compatible with the C<stat()>
builtin function.
=cut
sub blocks {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Apache/XBEL.pm view on Meta::CPAN
return ($cache,0);
}
#
my $cache_mtime = (stat($cache))[9];
if ((stat(__FILE__))[9] > $cache_mtime ) {
$apache->log->debug("Cache is out of sync with handler.");
return ($cache,0);
}
if ((stat($file))[9] > $cache_mtime ) {
$apache->log->debug("Cache is out of sync with XBEL file.");
return ($cache,0);
}
my $xsl_file = $apache->dir_config("XslPath");
if ((stat($xsl_file))[9] > $cache_mtime) {
$apache->log->debug("Cache is out of sync with stylesheet.");
$xsl_stylesheet = $xml_parser->parse_file($xsl_file);
$xsl_transformer = $xsl_parser->parse_stylesheet($xsl_stylesheet);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Apache/XPP.pm view on Meta::CPAN
my $mtime = undef;
unless (-f $filename) {
return undef;
}
my $st = stat($filename); # using File::stat
if (ref($st) && $st->can('mtime')) {
return $st->mtime;
} else {
warn "xpp:\tcannot stat file ($filename): $!" . ($debuglines ? '' : "\n") if ($debug);
return undef;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# If the script that is loading Module::Install is from the future,
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 and (stat($0))[9] > time ) {
die << "END_DIE";
Your installer $0 has a modification time in the future.
This is known to create infinite loops in make.
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# If the script that is loading Module::Install is from the future,
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 and (stat($0))[9] > time ) { die <<"END_DIE" }
Your installer $0 has a modification time in the future.
This is known to create infinite loops in make.
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
examples/delete_session_data.pl view on Meta::CPAN
foreach my $file (@files)
{
if ($file =~ /^[a-z0-9]{32}$/ )
{
if ($now - (stat($dir.'/'.$file))[8] >= $time)
{
clean($dir.'/'.$file);
clean($dir.'/Apache-Session-'.$file.'.lock');
$cnt++;
$lnt++;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Apache2/AuthenNTLM/Cookie.pm view on Meta::CPAN
PerlSetVar cookie_name my_cookie_name # default is NTLM_AUTHEN
PerlSetVar domain my_cookie_domain # default is none
PerlSetVar expires my_cookie_expires # default is none
PerlSetVar path my_cookie_path # default is none
PerlSetVar refresh some_seconds # default is 14400 (4 hours)
PerlSetVar secret my_secret_string # default from stat(config file)
See L<Apache2::Cookie> for explanation of variables
C<cookie_name>, C<domain>, C<expires>, and C<path>.
The only variables specific to the present module are
view all matches for this distribution
view release on metacpan or search on metacpan
examples/sitemap.pl view on Meta::CPAN
chdir('/home/nicolaw/webroot/www/bb-207-42-158-85.fallbr.tfb.net/') || die $!;
my $map = WWW::Google::SiteMap->new(file => 'sitemap.gz');
File::Find::find({wanted => sub {
my ($dev,$ino,$mode,$nlink,$uid,$gid,$mtime,$vol);
(($dev,$ino,$mode,$nlink,$uid,$gid,undef,undef,undef,$mtime) = lstat($_)) &&
-d _ &&
s/^\.\/// &&
!/\/\./s &&
($vol = substr($_,0,1)) &&
print("$_\n") &&
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Apache/Dispatch.pm view on Meta::CPAN
#---------------------------------------------------------------------
# reload the module if DispatchStat On or ISA
#---------------------------------------------------------------------
if ($stat eq "ON") {
$rc = __PACKGE__->_stat($class, $log, $debug);
unless ($rc) {
$log->error("\tDispatchStat did not return successfully!");
$log->debug("Exiting Apache::Dispatch") if $debug;
return DECLINED;
}
}
elsif ($stat eq "ISA") {
$rc = __PACKAGE__->_recurse_stat($class, $log, $debug);
unless ($rc) {
$log->error("\tDispatchStat did not return successfully!");
$log->debug("Exiting Apache::Dispatch") if $debug;
return DECLINED;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# If the script that is loading Module::Install is from the future,
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 and (stat($0))[9] > time ) { die <<"END_DIE" }
Your installer $0 has a modification time in the future.
This is known to create infinite loops in make.
view all matches for this distribution
view release on metacpan or search on metacpan
FileManager.pm view on Meta::CPAN
#must be a file
elsif (-f $file) {
#get file size
my $stat = stat($file);
$size = $stat->size;
if ($size > 1024000) {
$size = sprintf("%0.2f",$size/1024000) . " <I>M</I>";
} elsif ($stat->size > 1024) {
$size = sprintf("%0.2f",$size/1024). " <I>K</I>";
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Apache2/Imager/Resize.pm view on Meta::CPAN
$shrunk .= $suffix;
if (file_ok( $shrunk, $filename )) {
$r->filename($shrunk);
$r->finfo(APR::Finfo::stat($shrunk, APR::Const::FINFO_NORM, $r->pool));
my $mtime = (stat( $shrunk ))[9];
utime time, $mtime, $shrunk;
return OK;
}
# if we're using a separate cache directory, the necessary subdirectory might not exist yet
lib/Apache2/Imager/Resize.pm view on Meta::CPAN
file => $shrunk,
jpegquality => $quality,
) or return fail("Cannot write $shrunk: " . $im->errstr);
$r->filename($shrunk);
$r->finfo(APR::Finfo::stat($shrunk, APR::Const::FINFO_NORM, $r->pool));
return OK;
}
}
sub resize {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Apache2/Layer.pm view on Meta::CPAN
$uri
)
);
if ( my $finfo = eval {
APR::Finfo::stat($file, APR::Const::FINFO_NORM, $r->pool)
} ) {
$r->push_handlers(PerlMapToStorageHandler => sub {
my $r = shift;
$r->filename($file);
$r->finfo($finfo);
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# If the script that is loading Module::Install is from the future,
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 and (stat($0))[9] > time ) { die <<"END_DIE" }
Your installer $0 has a modification time in the future.
This is known to create infinite loops in make.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Apache2/PageKit.pm view on Meta::CPAN
sub _send_static_file {
my ( $pk, $filename ) = @_;
my $apr = $pk->{apr};
my $file_mtime = (stat($filename))[9];
my $ims = $apr->headers_in->{'If-Modified-Since'};
if ( $ims ) {
my $t = APR::Date::parse_http($ims);
if ( $t && $file_mtime <= $t ) {
return HTTP_NOT_MODIFIED;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Apache2/PodBrowser.pm view on Meta::CPAN
}
sub update_finfo {
my ($r, $name)=@_;
$r->finfo(APR::Finfo::stat($name, APR::Const::FINFO_NORM,
$r->pool)) if defined $name;
$r->set_last_modified($r->finfo->mtime);
$r->set_etag;
my $rc=$r->meets_conditions;
lib/Apache2/PodBrowser.pm view on Meta::CPAN
$r->content_encoding('gzip');
$r->filename($css.'.gz');
$r->path_info('');
$r->handler('default');
$r->content_type('text/css');
$r->finfo(APR::Finfo::stat($r->filename, APR::Const::FINFO_NORM,
$r->pool));
return Apache2::Const::OK;
}
}
if (-f $css) {
$r->filename($css);
$r->path_info('');
$r->handler('default');
$r->content_type('text/css');
$r->finfo(APR::Finfo::stat($r->filename, APR::Const::FINFO_NORM,
$r->pool));
return Apache2::Const::OK;
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Apache2/Response/FileMerge.pm view on Meta::CPAN
$file_name = "${location}${file_name}" if ( $location );
$file_name = "$root/$file_name.$type";
my $cname = $file_name;
$cname =~ s/\///g;
my $this_mtime = ( stat($file_name) )[9];
$mtime ||= 0;
$mtime = $this_mtime if ( ! $mtime || $mtime > ( $this_mtime || 0 ) );
my $content = '';
if ( exists( $loaded{$cname} ) ) {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Apache2/SSI.pm view on Meta::CPAN
}
sub _lastmod ...
{
my( $self, $file, $format ) = @_;
return( $self->_format_time( ( stat( "$file" ) )[9], $format ) );
}
# This is different from the env() method. This one is obviously private
# whereas the env() one has triggers that could otherwise create an infinite loop.
sub _set_env
view all matches for this distribution
view release on metacpan or search on metacpan
ScoreBoardFile.xs view on Meta::CPAN
init(int fd, Apache2__ScoreBoardFile *result) {
void *map;
struct stat statbuf;
*result=NULL;
if(fstat(fd, &statbuf)) return -1;
map=mmap(NULL, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0);
if( map==MAP_FAILED ) return -1;
*result=map;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
# undef read
# undef write
/* Windows mkdir takes only one arg */
# define apophis_mkdir(p, m) _mkdir(p)
/*
* Stat_t is struct w32_stat, the layout perl's own stat() fills in - but
* that stat() is the macro undef'd just above, so what is left is the CRT
* one, which writes a differently shaped struct. Pair the call and the
* type instead: _stat64 keeps st_size 64 bit, which the CRT's struct stat
* does not on Win64.
*/
# define apophis_stat_t struct _stat64
# define apophis_stat(p, b) _stat64((p), (b))
#else
# define apophis_mkdir(p, m) mkdir(p, m)
# define apophis_stat_t struct stat
# define apophis_stat(p, b) stat((p), (b))
#endif
/*
* The CRT rename() refuses a destination that already exists, so the second
* store of the same content with metadata could not replace its sidecar.
HV *meta;
apophis_stat_t st;
char *buf, *p, *end;
SSize_t nread;
if (apophis_stat(meta_path, &st) != 0) return NULL;
fh = PerlIO_open(meta_path, "r");
if (!fh) return NULL;
buf = (char *)malloc((size_t)st.st_size + 1);
*
* Fuses the entire store pipeline into a single op:
* 1. Extract namespace bytes from object
* 2. SHA-1 hash content â UUID v5
* 3. Compute 2-level sharded path
* 4. stat() for CAS dedup check
* 5. mkdir -p parent directories
* 6. Atomic write (temp + rename)
* 7. Format and return UUID string
*/
static OP *
apophis_build_path(path, sizeof(path),
store_dir, store_dir_len,
id_str, HORUS_FMT_STR_LEN);
/* CAS dedup: only write if not already stored */
if (apophis_stat(path, &st) != 0) {
apophis_ensure_parent_dir(path);
apophis_atomic_write(aTHX_ path, content, content_len);
}
EXTEND(SP, 1);
* pp_apophis_exists - Custom op: UUID â boolean existence check
*
* Stack input: self_sv, id_sv
* Stack output: bool_sv
*
* Fuses: path computation + stat() into a single op.
*/
static OP *
pp_apophis_exists(pTHX) {
dSP;
SV *id_sv = POPs;
apophis_build_path(path, sizeof(path),
store_dir, store_dir_len, id_str, id_len);
EXTEND(SP, 1);
PUSHs(apophis_stat(path, &st) == 0 ? &PL_sv_yes : &PL_sv_no);
PUTBACK;
return NORMAL;
}
/*
apophis_build_path(path, sizeof(path),
store_dir, store_dir_len, id_str, id_len);
EXTEND(SP, 1);
if (apophis_stat(path, &st) != 0) {
PUSHs(&PL_sv_undef);
} else {
PerlIO *fh = PerlIO_open(path, "rb");
if (!fh)
croak("Apophis: pp_fetch: cannot open '%s': %s",
path_len = apophis_build_path(path, sizeof(path),
store_dir, store_dir_len,
id_str, HORUS_FMT_STR_LEN);
/* CAS dedup: skip if already exists */
if (apophis_stat(path, &st) != 0) {
apophis_ensure_parent_dir(path);
apophis_atomic_write(aTHX_ path, content, content_len);
}
/* Write metadata sidecar if provided */
id_str = SvPV(id, id_len);
apophis_build_path(path, sizeof(path),
store_dir, store_dir_len, id_str, id_len);
/* Check existence */
if (apophis_stat(path, &st) != 0) {
RETVAL = &PL_sv_undef;
} else {
/* Read entire file */
fh = PerlIO_open(path, "rb");
if (!fh)
store_dir = apophis_get_store_dir(aTHX_ hv, opts, &store_dir_len);
id_str = SvPV(id, id_len);
apophis_build_path(path, sizeof(path),
store_dir, store_dir_len, id_str, id_len);
RETVAL = (apophis_stat(path, &st) == 0) ? TRUE : FALSE;
OUTPUT:
RETVAL
# ------------------------------------------------------------------ #
# remove($id, %opts) -> bool #
apophis_build_path(path, sizeof(path),
store_dir, store_dir_len,
id_str, HORUS_FMT_STR_LEN);
if (apophis_stat(path, &st) != 0) {
apophis_ensure_parent_dir(path);
apophis_atomic_write(aTHX_ path, content, content_len);
}
PUSHs(sv_2mortal(newSVpvn(id_str, HORUS_FMT_STR_LEN)));
id_str = SvPV(*svp, id_len);
apophis_build_path(path, sizeof(path),
store_dir, store_dir_len, id_str, id_len);
if (apophis_stat(path, &st) != 0) {
XPUSHs(sv_2mortal(newSVpvn(id_str, id_len)));
}
}
# ------------------------------------------------------------------ #
store_dir = apophis_get_store_dir(aTHX_ hv, NULL, &store_dir_len);
apophis_build_path(path, sizeof(path),
store_dir, store_dir_len,
id_str, HORUS_FMT_STR_LEN);
if (apophis_stat(path, &st) != 0) {
apophis_ensure_parent_dir(path);
apophis_atomic_write(aTHX_ path, content, content_len);
}
RETVAL = newSVpvn(id_str, HORUS_FMT_STR_LEN);
store_dir = apophis_get_store_dir(aTHX_ hv, NULL, &store_dir_len);
id_str = SvPV(id, id_len);
apophis_build_path(path, sizeof(path),
store_dir, store_dir_len, id_str, id_len);
RETVAL = (apophis_stat(path, &st) == 0) ? TRUE : FALSE;
OUTPUT:
RETVAL
# op_fetch($self, $id) -> \$content or undef
# Fused path computation + stat + read â single call.
store_dir = apophis_get_store_dir(aTHX_ hv, NULL, &store_dir_len);
id_str = SvPV(id, id_len);
apophis_build_path(path, sizeof(path),
store_dir, store_dir_len, id_str, id_len);
if (apophis_stat(path, &st) != 0) {
RETVAL = &PL_sv_undef;
} else {
fh = PerlIO_open(path, "rb");
if (!fh)
croak("Apophis::op_fetch: cannot open '%s': %s",
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/Access2CSV/Exporter.pm view on Meta::CPAN
# _check_database
# Purpose: Make sure the database is a readable regular file.
# Entry Criteria: $database is a defined, non-empty path.
# Exit Status: Returns $self for chaining; croaks otherwise.
# Side Effects: stat()s the file; sets $!.
sub _check_database :Private {
my ($self, $database) = @_;
# The stat result is reused via "_" so the file is only examined once;
# $! is captured straight away because later calls may overwrite it
view all matches for this distribution
view release on metacpan or search on metacpan
script/_acme-cpanauthors view on Meta::CPAN
# my $filter;
# if ($args{filter} && !ref($args{filter})) {
# my @seqs = split /\s*\|\s*/, $args{filter};
# $filter = sub {
# my $name = shift;
# my @st = stat($name) or return 0;
# my $mode = $st[2];
# my $pass;
# SEQ:
# for my $seq (@seqs) {
# my $neg = sub { $_[0] };
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Module/Install.pm view on Meta::CPAN
# then make will detect this and cause it to re-run over and over
# again. This is bad. Rather than taking action to touch it (which
# is unreliable on some platforms and requires write permissions)
# for now we should catch this and refuse to run.
if ( -f $0 ) {
my $s = (stat($0))[9];
# If the modification time is only slightly in the future,
# sleep briefly to remove the problem.
my $a = $s - time;
if ( $a > 0 and $a < 5 ) { sleep 5 }
view all matches for this distribution
view release on metacpan or search on metacpan
lib/App/AutoBuild.pm view on Meta::CPAN
2 shows debugging for job numbers (not useful really yet)
-d: increase debugosity (-dd or more -d's)
0 (default) nothing!
1 show which dependencies caused a recompile
2 show stat() calls
-q: be more quiet
--cc=(compiler path): pick a compiler other than gcc
lib/App/AutoBuild.pm view on Meta::CPAN
=head1 DESCRIPTION
After writing a makefile for my 30th C project, I decided this was dumb and it (the computer) should figure out which object files should be linked in or recompiled. The idea behind this module is you create a build.pl that uses App::AutoBuild and c...
App::AutoBuild will figure out all the object files your C file depends on. A list of included header files (.h) will be computed by GCC and remembered in a cache. At build time, stat() is called on each header file included by your .c file. If an...
This tool isn't supposed to be a make replacement-- there are plenty of those, and at least one great one already in Perl. The idea is that the build system should know enough about the source code to do what you want for you. This replaces all the...
=head1 CAVEATS
lib/App/AutoBuild.pm view on Meta::CPAN
2 shows debugging for job numbers (not useful really yet)
-d: increase debugosity (-dd or more -d's)
0 (default) nothing!
1 show which dependencies caused a recompile
2 show stat() calls
clean: unlink output files/meta file ($meta_file)
zap
exit(1);
}
lib/App/AutoBuild.pm view on Meta::CPAN
{
return $self->{'mtime_this_run'}{$file};
}
if($self->{'debug'} > 1)
{
print "stat('$file');\n";
}
my @s = stat($file);
$self->{'mtime_this_run'}{$file} = $s[9];
return $s[9];
}
sub md5
view all matches for this distribution