# -*-python-*- import os import string Import ('env', 'base_glob', 'src_glob') tely = base_glob ('*.tely') png = src_glob ('*.png') + map (env.EPS2PNG, base_glob ('*.eps')) # We need lily and mf to build these. env.Depends ('lilypond.texi', ['#/lily', '#/mf', '#/python']) env.Depends ('music-glossary.texi', ['#/lily', '#/mf', '#/python']) env.Depends ('lilypond.texi', 'lilypond-internals.texi') eps = src_glob ('*.eps') + map (env.PNG2EPS, base_glob ('*.png')) env.Depends ('lilypond.texi', eps + png) lilypond_book_flags = '''--format=$LILYPOND_BOOK_FORMAT --process="lilypond -I$srcdir/input/manual/ $__verbose --backend=eps --formats=ps,png --header=texidoc -dcheck-internal-types -ddump-signatures -danti-alias-factor=2 -dgs-load-fonts" ''' e = env.Copy ( # LILYPOND_BOOK_FLAGS = '''--process="lilypond --backend=eps --formats=ps,png --header=texidoc -I#/input/manual -e '(ly:set-option (quote internal-type-checking) \#t)'"''', LILYPOND_BOOK_FLAGS = lilypond_book_flags, __verbose = ' --verbose', GENERATE_DOCUMENTATION = '$srcdir/ly/generate-documentation', ## TEXI2DVI_FLAGS = ['-I#Documentation/user'], ) e.Command ('lilypond-internals.texi', ['#/lily', '#/mf', '#/python'], 'cd ${TARGET.dir} && $LILYPOND $GENERATE_DOCUMENTATION') ## FIXME: implicit steps from [TE]LY -> PDF texi = map (env.TEXI, tely) dvi = map (env.TEXIDVI, tely) ps = map (env.DVIPS, tely) ###map (lambda x: x + '.dvi', tely)) dvipdf = map (env.DVIPDF, tely) pdf = map (env.PSPDF, dvipdf) # FIXME: install info = map (env.INFO, tely) def file_subst (file_name, find, subst): s = open (file_name).read () t = string.replace (s, find, subst) if s != t: os.rename (file_name, file_name + '~') h = open (file_name, "w") h.write (t) h.close () e['usersrc'] = Dir ('.').srcnode ().abspath e['userout'] = Dir ('.').abspath a = ['$MAKEINFO -I$usersrc -I${SOURCE.dir} --html \ --css-include=$srcdir/Documentation/texinfo.css $__verbose \ --output=${TARGET.dir} $SOURCE', 'ln -f ${SOURCE.dir}/*.png ${SOURCE.dir}/*.ly ${TARGET.dir}/',] e.Command ('lilypond/index.html', 'lilypond.texi', a) e.Command ('lilypond-internals/index.html', 'lilypond-internals.texi', a) e.Command ('music-glossary/index.html', 'music-glossary.texi', a) a = ['$MAKEINFO -I$usersrc -I${SOURCE.dir} --html \ --no-split --no-headers \ --css-include=$srcdir/Documentation/texinfo.css $__verbose \ --output=$TARGET $SOURCE'] e.Command ('lilypond.html', 'lilypond.texi', a) e.Command ('lilypond-internals.html', 'lilypond-internals.texi', a) e.Command ('music-glossary.html', 'music-glossary.texi', a) #Hmm -- why not just mv ./Documentation/{*,*/*} ./doc :-) env.Alias ('doc', texi) env.Alias ('doc', dvi) env.Alias ('doc', ps) env.Alias ('doc', pdf) env.Alias ('doc', 'lilypond/index.html') env.Alias ('doc', 'lilypond-internals/index.html') env.Alias ('doc', 'lilypond.html') env.Alias ('doc', 'lilypond-internals.html') # install ('lilypond/*', env['sharedir_doc_package'] + '/html') # install ('lilypond-user/*', env['sharedir_doc_package'] + '/html')