aboutsummaryrefslogtreecommitdiff
path: root/makedeps
diff options
context:
space:
mode:
Diffstat (limited to 'makedeps')
-rw-r--r--makedeps58
1 files changed, 0 insertions, 58 deletions
diff --git a/makedeps b/makedeps
deleted file mode 100644
index 70589ca..0000000
--- a/makedeps
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env perl
-
-use v5.12;
-use warnings;
-use subs qw/for_includes/;
-
-open my $fh, ">", "deps.mk";
-print $fh "# This file is generated by makedeps.\n";
-
-while (my $f = glob("c/*.cpp")) {
- $f =~ s,^c/,,;
- $f =~ s/\.cpp$//;
-
- if ($f eq "main") { print $fh "b/\$(EXE):"; }
- else { print $fh "b/$f.obj:"; }
-
- # Print dependencies in source file.
- my @deps;
- for_includes "c/$f.cpp", sub {
- my $f = shift;
- return if grep { $_ eq $f } @deps;
- push @deps, $f;
- print $fh " c/$f";
-
- # Print dependencies in dependency.
- for_includes "c/$f", sub {
- my $f = shift;
- return if grep { $_ eq $f } @deps;
- push @deps, $f;
- print $fh " c/$f";
- }
- };
-
- print $fh "\n";
-}
-
-sub for_includes ($&) {
- my $f = shift;
- my $c = shift;
- state %cache;
-
- # Retrieve dependencies from cache.
- if (exists $cache{$f}) {
- $c->($_) for @{$cache{$f}};
- }
-
- # Find dependencies in file.
- else {
- open my $gh, "<", $f or die "($f) $!";
- while ($_ = <$gh>) {
- next if /^$/;
- last if not /#/;
- next if not /^#include\s*"([^"]+)"/;
- push @{$cache{$f}}, $1;
- $c->($1);
- }
- }
-}