1#!/usr/local/bin/python3.8 2# 3# Copyright 2006 Free Software Foundation, Inc. 4# 5# This file is part of GNU Radio 6# 7# GNU Radio is free software; you can redistribute it and/or modify 8# it under the terms of the GNU General Public License as published by 9# the Free Software Foundation; either version 3, or (at your option) 10# any later version. 11# 12# GNU Radio is distributed in the hope that it will be useful, 13# but WITHOUT ANY WARRANTY; without even the implied warranty of 14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15# GNU General Public License for more details. 16# 17# You should have received a copy of the GNU General Public License 18# along with GNU Radio; see the file COPYING. If not, write to 19# the Free Software Foundation, Inc., 51 Franklin Street, 20# Boston, MA 02110-1301, USA. 21# 22 23""" 24Generate Makefile.extra 25""" 26 27import sys 28import os.path 29 30extensions_we_like = ( 31 '.v', '.vh', 32 '.csf', '.esf', '.psf', '.qpf', '.qsf', 33 '.inc', '.cmp', '.bsf', 34 '.py') 35 36def visit(keepers, dirname, names): 37 if 'rbf' in names: 38 names.remove('rbf') 39 if 'CVS' in names: 40 names.remove('CVS') 41 42 if dirname == '.': 43 dirname = '' 44 if dirname.startswith('./'): 45 dirname = dirname[2:] 46 47 for n in names: 48 base, ext = os.path.splitext(n) 49 if ext in extensions_we_like: 50 keepers.append(os.path.join(dirname, n)) 51 52def generate(f): 53 keepers = [] 54 os.path.walk('.', visit, keepers) 55 keepers.sort() 56 write_keepers(keepers, f) 57 58def write_keepers(files, outf): 59 m = reduce(max, map(len, files), 0) 60 e = 'EXTRA_DIST =' 61 outf.write('%s%s \\\n' % (e, (m-len(e)+8) * ' ')) 62 for f in files[:-1]: 63 outf.write('\t%s%s \\\n' % (f, (m-len(f)) * ' ')) 64 outf.write('\t%s\n' % (files[-1],)) 65 66if __name__ == '__main__': 67 generate(open('Makefile.extra','w')) 68