summaryrefslogtreecommitdiff
path: root/make/install-extras.pl
blob: ce77178e919b91913086f317381074471ed42a25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/perl
use strict;
use warnings;

my $mode = shift;
my %installed;

for my $dir (qw(src src/modules)) {
	opendir(DIRHANDLE, $dir);
	for my $file (sort readdir(DIRHANDLE)) {
		next unless $file =~ /\.cpp$/;
		open CPP, '<', "$dir/$file" or die "Can't open $dir/$file to scan it: $!";
		while (<CPP>) {
			if (/\/\* \$CopyInstall: (\S+) (\S+) (.*) \*\//i) {
				my($ifile, $idir, $args) = ($1,$2,$3);
				next if exists $installed{$1.' '.$2};
				$installed{$1.' '.$2}++;
				$idir =~ s/\$\(([^)]+)\)/$ENV{$1}/eg;
				if ($mode eq 'install') {
					system "install $args $ifile $idir";
				} else {
					$ifile =~ s/.*\///g;
					system "rm $idir/$ifile";
				}
			}
		}
	}
	closedir(DIRHANDLE);
}