chiark / gitweb /
bus: catch up with kdbus changes
[elogind.git] / make-man-rules.py
index 9c50c8dec2d0af8bf8736cee9730bd8b4c398231..ad601f874f220015b7dad8af72a6df994577cb3c 100644 (file)
@@ -18,9 +18,9 @@
 #  along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
 from __future__ import print_function
-import xml.etree.ElementTree as tree
 import collections
 import sys
+from xml_helper import *
 
 SECTION = '''\
 MANPAGES += \\
@@ -28,6 +28,7 @@ MANPAGES += \\
 MANPAGES_ALIAS += \\
        {aliases}
 {rules}
+{htmlrules}
 '''
 
 CONDITIONAL = '''\
@@ -40,21 +41,20 @@ endif
 
 HEADER = '''\
 # Do not edit. Generated by make-man-rules.py.
-# Regenerate with 'make update-man-list'.
+# Regenerate with 'make all update-man-list'.
 
 '''
 
-CLEANFILES = '''\
-
-CLEANFILES += \\
-       {cleanfiles}
+HTML_ALIAS_RULE = '''\
+{}.html: {}.html
+       $(html-alias)
 '''
 
 def man(page, number):
     return 'man/{}.{}'.format(page, number)
 
 def add_rules(rules, name):
-    xml = tree.parse(name)
+    xml = xml_parse(name)
     # print('parsing {}'.format(name), file=sys.stderr)
     conditional = xml.getroot().get('conditional') or ''
     rulegroup = rules[conditional]
@@ -82,7 +82,7 @@ def create_rules(*xml_files):
 def mjoin(files):
     return ' \\\n\t'.join(sorted(files) or '#')
 
-def make_makefile(rules, cleanfiles):
+def make_makefile(rules):
     return HEADER + '\n'.join(
         (CONDITIONAL if conditional else SECTION).format(
             manpages=mjoin(set(rulegroup.values())),
@@ -90,13 +90,12 @@ def make_makefile(rules, cleanfiles):
             rules='\n'.join('{}: {}'.format(k,v)
                             for k,v in sorted(rulegroup.items())
                             if k != v),
+            htmlrules='\n'.join(HTML_ALIAS_RULE.format(k[:-2],v[:-2])
+                                for k,v in sorted(rulegroup.items())
+                                if k != v),
             conditional=conditional)
-        for conditional,rulegroup in sorted(rules.items())) + \
-        CLEANFILES.format(cleanfiles=mjoin(cleanfiles))
+        for conditional,rulegroup in sorted(rules.items()))
 
 if __name__ == '__main__':
-    sources = set(sys.argv[1:])
-    spares = set([source for source in sources
-                  if source + '.in' in sources])
-    rules = create_rules(*(sources - spares))
-    print(make_makefile(rules, spares), end='')
+    rules = create_rules(*sys.argv[1:])
+    print(make_makefile(rules), end='')