From 9b5017f898bc90df702c8654ccd75733d2250114 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Sun, 27 Oct 2019 08:17:23 +1100 Subject: sb/config: Add support for line continuation. - Add line continuation support so empty macros can be used at the end of configure command lines, ie RTEMS kernel. The config parser removes empty lines and wihout this support a trailing line continuation character joins a configure command line to next command. - Fix freetype's gmake support for non-GNU operating systems. --- source-builder/config/freetype-1.cfg | 6 +++++- source-builder/sb/config.py | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/source-builder/config/freetype-1.cfg b/source-builder/config/freetype-1.cfg index ec03feb..95892dd 100644 --- a/source-builder/config/freetype-1.cfg +++ b/source-builder/config/freetype-1.cfg @@ -41,8 +41,12 @@ URL: http://www.freetype.org/ %{host_build_flags} %ifos freebsd - GNUMAKE=%{__make} \ + GNUMAKE=%{__make} + %else + GNUMAKE= %endif + + GNUMAKE=${GNUMAKE} \ ../${source_dir_freetype}/configure \ --host=%{_host} \ --prefix=%{_prefix} \ diff --git a/source-builder/sb/config.py b/source-builder/sb/config.py index 58316db..d4c58aa 100644 --- a/source-builder/sb/config.py +++ b/source-builder/sb/config.py @@ -1056,20 +1056,32 @@ class file: line = line[0:-1] b = line.find('#') if b >= 0: - line = line[1:b] + line = line[1:b] + ('\\' if line[-1] == '\\' else '') return line.strip() + def _clean_and_pack(line, last_line): + leading_ws = ' ' if len(line) > 0 and line[0].isspace() else '' + line = _clean(line) + if len(last_line) > 0: + line = last_line + leading_ws + line + return line + # # Need to add code to count matching '{' and '}' and if they # do not match get the next line and add to the string until # they match. This closes an opening '{' that is on another # line. # + ll = '' for l in config: self.lc += 1 - l = _clean(l) + l = _clean_and_pack(l, ll) if len(l) == 0: continue + if l[-1] == '\\': + ll = l[0:-1] + continue + ll = '' if isvalid: indicator = '>' else: -- cgit v1.2.3