chdir "$FindBin::Bin/..";
$ENV{TOPDIR}=getcwd();
+my $mk=`which gmake`; # select the right 'make' program
+chomp($mk); # trim trailing newline
+$mk or $mk = "make"; # default to 'make'
+
my @feeds;
my %build_packages;
my %installed;
my $line = 0;
my %name;
- open FEEDS, "feeds.conf";
+ open FEEDS, "feeds.conf" or
+ open FEEDS, "feeds.conf.default" or
+ die "Unable to open feeds configuration";
while (<FEEDS>) {
chomp;
s/#.+$//;
-d "./feeds/$name.tmp" or mkdir "./feeds/$name.tmp" or return 1;
-d "./feeds/$name.tmp/info" or mkdir "./feeds/$name.tmp/info" or return 1;
- system("make -s prepare-mk TMP_DIR=\"$ENV{TOPDIR}/feeds/$name.tmp\"");
- system("make -s -f include/scan.mk IS_TTY=1 SCAN_TARGET=\"packageinfo\" SCAN_DIR=\"feeds/$name\" SCAN_NAME=\"package\" SCAN_DEPS=\"$ENV{TOPDIR}/include/package*.mk\" SCAN_DEPTH=4 SCAN_EXTRA=\"\" TMP_DIR=\"$ENV{TOPDIR}/feeds/$name.tmp\"");
+ system("$mk -s prepare-mk TMP_DIR=\"$ENV{TOPDIR}/feeds/$name.tmp\"");
+ system("$mk -s -f include/scan.mk IS_TTY=1 SCAN_TARGET=\"packageinfo\" SCAN_DIR=\"feeds/$name\" SCAN_NAME=\"package\" SCAN_DEPS=\"$ENV{TOPDIR}/include/package*.mk\" SCAN_DEPTH=4 SCAN_EXTRA=\"\" TMP_DIR=\"$ENV{TOPDIR}/feeds/$name.tmp\"");
system("ln -sf $name.tmp/.packageinfo ./feeds/$name.index");
return 0;
system("GIT_DIR=./feeds/$name/.git git pull") == 0 or return 1;
} else {
system("rm -rf \"./feeds/$name\"");
- system("git-clone --depth 1 $src ./feeds/$name") == 0 or return 1;
+ system("git clone --depth 1 $src ./feeds/$name") == 0 or return 1;
}
return 0;
}
sub get_installed() {
- system("make -s prepare-tmpinfo");
+ system("$mk -s prepare-tmpinfo");
clear_packages();
parse_package_metadata("./tmp/.packageinfo");
%installed = %package;
};
# install all dependencies
- foreach my $vpkg (@{$srcpackage{$src}}) {
+ foreach my $vpkg (@{$srcpackage{$src}}, $pkg) {
foreach my $dep (@{$vpkg->{depends}}, @{$vpkg->{builddepends}}) {
next if $dep =~ /@/;
$dep =~ s/^\+//;
# refresh the config
if ($default) {
- system("make oldconfig CONFDEFAULT=\"$default\" Config.in >/dev/null 2>/dev/null");
+ system("$mk oldconfig CONFDEFAULT=\"$default\" Config.in >/dev/null 2>/dev/null");
} else {
- system("make defconfig Config.in >/dev/null 2>/dev/null");
+ system("$mk defconfig Config.in >/dev/null 2>/dev/null");
}
}