Allow farm member to specify non-GNU make
authorTodd Lyons <tlyons@exim.org>
Sun, 24 Nov 2013 17:21:10 +0000 (09:21 -0800)
committerTodd Lyons <tlyons@exim.org>
Sun, 24 Nov 2013 17:21:10 +0000 (09:21 -0800)
build-farm.conf.template
run_build.pl

index a9c6c6872d4baea430f0e02b8a271179b576a006..8255bb34ffeb08f7fb54e079a813d045256525f9 100644 (file)
@@ -42,6 +42,8 @@ my $branch;
     # git_reference => undef,
     # or gmake if required. can include path if necessary.
     make => 'make',
+    # 1 = any make will do, 0 = require GNU (default)
+    non_gnu_make => 0,
     # >1 for parallel "make" and "make check" steps
     make_jobs => undef,
     # default is "tar -z -cf runlogs.tgz *.log"
index bc15dd004a440bf798cb8e3702715c7647db3df8..2171231d95ae745851cbad97310fd7b779c4fb9f 100755 (executable)
@@ -313,7 +313,8 @@ foreach my $oldfile (glob("last*"))
 
 my $branch_root = getcwd();
 
-# make sure we are using GNU make
+# Normally we would require GNU Make, but allow farm
+# configuration to override this
 die "$make is not GNU Make - please fix config file"
   unless check_make();
 
@@ -827,6 +828,12 @@ sub display_features
     
 sub check_make
 {
+    # Allow farm member to configure non-GNU make
+    my $non_gnu_make = $EximBuild::conf{non_gnu_make};
+    if (!defined $non_gnu_make ||
+        (defined $non_gnu_make && $non_gnu_make == 1)) {
+      return 'OK';
+    }
     my @out = `$make -v 2>&1`;
     return undef unless ($? == 0 && grep {/GNU Make/} @out);
     return 'OK';