build: Notice if flex is missing at configure time
authorAndrew Bartlett <abartlet@samba.org>
Fri, 26 Mar 2021 08:48:45 +0000 (21:48 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 29 Mar 2021 02:12:23 +0000 (02:12 +0000)
This may also fix the coverage build by ensuring --noline
is always specified to flex.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14586

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Mon Mar 29 02:12:23 UTC 2021 on sn-devel-184

source3/wscript
wscript
wscript_configure_embedded_heimdal

index 3ee7d0914ed9ad546ee9bb29e3d816741eaee13f..b7dd5bd737aaa1250ae9e533a3492a117889f15e 100644 (file)
@@ -1828,15 +1828,6 @@ main() {
                            define=None,
                            on_target=False)
 
-    Logs.info("Checking for flex")
-    conf.find_program('flex', var='FLEX')
-    if conf.env['FLEX']:
-        conf.env.FLEXFLAGS = ['-t']
-        conf.CHECK_COMMAND('%s --version' % conf.env.FLEX[0],
-                           msg='Using flex version',
-                           define=None,
-                           on_target=False)
-
     with_spotlight_tracker_backend = (
         conf.CONFIG_SET('HAVE_TRACKER')
         and conf.CONFIG_SET('HAVE_GLIB')
diff --git a/wscript b/wscript
index e44436391a8aa4f3cc14672cbc4d3ed8139e0f31..9c501e9441fa300150a7d6e07b6a538cad011459 100644 (file)
--- a/wscript
+++ b/wscript
@@ -232,6 +232,19 @@ def configure(conf):
     if not (Options.options.without_ad_dc):
         conf.DEFINE('AD_DC_BUILD_IS_ENABLED', 1)
 
+    # Check for flex before doing the embedded heimdal checks so we can bail if we don't have it.
+    Logs.info("Checking for flex")
+    conf.find_program('flex', var='FLEX')
+    if conf.env['FLEX']:
+        conf.CHECK_COMMAND('%s --version' % conf.env.FLEX[0],
+                           msg='Using flex version',
+                           define=None,
+                           on_target=False)
+    conf.env.FLEXFLAGS = ['-t']
+
+    # #line statements in these generated files cause issues for lcov
+    conf.env.FLEXFLAGS += ["--noline"]
+
     if Options.options.with_system_mitkrb5:
         if not Options.options.with_experimental_mit_ad_dc and \
            not Options.options.without_ad_dc:
@@ -355,9 +368,6 @@ def configure(conf):
                          msg="Checking compiler for full RELRO support"):
             conf.env['ENABLE_RELRO'] = True
 
-    # #line statements in these generated files cause issues for lcov
-    conf.env.FLEXFLAGS += ["--noline"]
-
     conf.SAMBA_CONFIG_H('include/config.h')
 
 def etags(ctx):
index 8c55ae2a938d467a252971c089126f47c76bce5d..92a29f71bf8467ccc698c079ae55792b80e8eaa2 100644 (file)
@@ -1 +1,4 @@
+if not conf.env['FLEX']:
+    conf.fatal("Embedded Heimdal build requires flex but it was not found.  Install flex or use --with-system-mitkrb5 or --with-system-heimdalkrb5")
+
 conf.RECURSE('source4/heimdal_build')