From d29f84960235fc4d14ef2581b951af22a582ecdf Mon Sep 17 00:00:00 2001
From: Sergey Lyubka <valenok@gmail.com>
Date: Sat, 11 Jan 2014 09:48:13 +0000
Subject: [PATCH] Fixed optional build test

---
 build/Makefile                |  4 ++--
 build/test/all_build_flags.pl | 45 ++++++++++++++++++++++-------------
 examples/Makefile             |  2 +-
 3 files changed, 31 insertions(+), 20 deletions(-)

diff --git a/build/Makefile b/build/Makefile
index 4ff73bb46..8e5880999 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -159,7 +159,7 @@ release: tarball macos
 	zip -r mongoose-php-$(VERSION).zip mongoose_php_bundle/
 
 clean:
-	cd ../examples && $(MAKE) clean
-	rm -rf *.o *.core $(PROG) *.obj *.so $(PROG).txt *.dSYM *.tgz \
+	@cd ../examples && $(MAKE) clean
+	@rm -rf *.o *.core $(PROG) *.obj *.so $(PROG).txt *.dSYM *.tgz \
 	$(PROG).exe *.dll *.lib res.o res.RES *.dSYM *.zip *.pdb \
 	*.exe *dmg* $(PROG)-* unix_unit_test
diff --git a/build/test/all_build_flags.pl b/build/test/all_build_flags.pl
index ee225f9a2..7e9400c02 100644
--- a/build/test/all_build_flags.pl
+++ b/build/test/all_build_flags.pl
@@ -1,28 +1,39 @@
 #!/usr/bin/env perl
-
-@flags = ("NO_POPEN", "NO_SSL", "NDEBUG", "DEBUG", "NO_CGI");
+use Data::Dumper;
+@flags = split /\s+/,
+  `egrep -o 'NO_[A-Z0-9_]*|USE_[A-Z0-9_]*' ../mongoose.c  | sort | uniq`;
+#@flags = ("NO_POPEN", "NO_SSL", "NDEBUG", "DEBUG", "NO_CGI");
 my $num_flags = @flags;
 
 sub fail {
-	print "FAILED: @_\n";
-	exit 1;
+  print "FAILED: @_\n";
+  exit 1;
 }
 
-my $platform = $ARGV[0] || "linux";
+my $extra = {
+  'USE_SSL' => '-lssl',
+  'USE_LUA' => 'lua_5.2.1.c',
+};
+
+#my $platform = $ARGV[0] || "linux";
 
 for (my $i = 0; $i < 2 ** $num_flags; $i++) {
-	my $bitmask = sprintf("%*.*b", $num_flags, $num_flags, $i);
-	my @combination = ();
-	for (my $j = 0; $j < $num_flags; $j++) {
-		push @combination, $flags[$j] if substr($bitmask, $j, 1);
-	}
-	my $defines = join(" ", map { "-D$_" } @combination);
-	my $cmd = "CFLAGS=\"$defines\" make clean $platform >/dev/null";
-	system($cmd) == 0 or fail "build failed: $_";
-	print "Build succeeded, flags: [$defines]\n";
-	system("perl test/test.pl basic_tests >/dev/null") == 0
-		or fail "basic tests";
-	print "Basic tests: OK\n";
+  my $bitmask = sprintf("%*.*b", $num_flags, $num_flags, $i);
+  my @combination = ();
+  for (my $j = 0; $j < $num_flags; $j++) {
+    next unless substr($bitmask, $j, 1);
+    my $def = $flags[$j];
+    next if $def eq 'USE_LUA_SQLITE3';
+    push @combination, "-D$def";
+    push @combination, $extra->{$def} if $extra->{$def};
+  }
+  my $defines = join(" ", @combination);
+  my $cmd = "make clean all CFLAGS_EXTRA=\"-O0 $defines\"";
+  #print "Testing [$defines]\n";
+  system($cmd) == 0 or fail "build failed: $_";
+  #system("perl test/test.pl basic_tests >/dev/null") == 0
+  #  or fail "basic tests";
+  #print "Basic tests: OK\n";
 }
 
 print "PASS: All builds passed!\n";
diff --git a/examples/Makefile b/examples/Makefile
index 8204e409d..a7544ad7e 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -43,4 +43,4 @@ windows:
 #$(CL) lua_dll.c $(CLFLAGS) $(DLL_FLAGS) /DLL $(LFLAGS) /SUBSYSTEM:WINDOWS /ENTRY:luaopen_lua_dll /EXPORT:luaopen_lua_dll /out:lua_dll.dll
 
 clean:
-	rm -rf hello upload post websocket chat *.exe *.dSYM *.obj .*o
+	@rm -rf hello upload post websocket chat *.exe *.dSYM *.obj .*o
-- 
GitLab