]> git.donarmstrong.com Git - lilypond.git/blobdiff - scripts/lilypond-book.py
(datadir): remove LILYPONDPREFIX support.
[lilypond.git] / scripts / lilypond-book.py
index e9bb199835b69eb0ffc445c9cf0df51a7dab36a5..7861c524a568b6ef30b0497bbd6cdad1e4e17ff7 100644 (file)
@@ -36,40 +36,19 @@ import os
 import sys
 import re
 
-# Users of python modules should include this snippet
-# and customize variables below.
-
-# We'll suffer this path initialization stuff as long as we don't install
-# our python packages in <prefix>/lib/pythonX.Y
-
-# If set, LILYPONDPREFIX must take prevalence.
-# if datadir is not set, we're doing a build and LILYPONDPREFIX.
-
 ################
 # RELOCATION
 ################
 
-datadir = '@local_lilypond_datadir@'
-if not os.path.isdir (datadir):
-    datadir = '@lilypond_datadir@'
-
-sys.path.insert (0, os.path.join (datadir, 'python'))
 
-if os.environ.has_key ('LILYPONDPREFIX'):
-    datadir = os.environ['LILYPONDPREFIX']
-    while datadir[-1] == os.sep:
-        datadir = datadir[:-1]
-
-    if not os.path.exists (os.path.join (datadir, 'python/lilylib.py')):
-        datadir = os.path.join (datadir, 'share/lilypond/current/')
-sys.path.insert (0, os.path.join (datadir, 'python'))
+for d in ['@lilypond_datadir@',
+          '@lilypond_libdir@']:
+    sys.path.insert (0, os.path.join (d, 'python'))
 
 # dynamic relocation, for GUB binaries.
-bindir = os.path.split (sys.argv[0])[0]
-
-
-for prefix_component in ['share', 'lib']:
-    datadir = os.path.abspath (bindir + '/../%s/lilypond/current/python/' % prefix_component)
+bindir = os.path.abspath (os.path.split (sys.argv[0])[0])
+for p in ['share', 'lib']:
+    datadir = os.path.abspath (bindir + '/../%s/lilypond/current/python/' % p)
     sys.path.insert (0, datadir)
 
 
@@ -166,6 +145,12 @@ def get_option_parser ():
                   help = _ ("process ly_files using COMMAND FILE..."),
                   action='store', 
                   dest='process_cmd', default='lilypond -b eps')
+
+    p.add_option ('--pdf',
+                  action="store_true",
+                  dest="create_pdf",
+                  help="Create PDF files for use with PDFTeX",
+                  default=False)
     
     p.add_option ('', '--psfonts', action="store_true", dest="psfonts",
                   help=_ ('''extract all PostScript fonts into INPUT.psfonts for LaTeX'''
@@ -643,17 +628,7 @@ if 0:
 
 PREAMBLE_LY = '''%%%% Generated by %(program_name)s
 %%%% Options: [%(option_string)s]
-
-#(set! toplevel-score-handler print-score-with-defaults)
-#(set! toplevel-music-handler
-  (lambda (p m)
-   (if (not (eq? (ly:music-property m \'void) #t))
-        (print-score-with-defaults
-        p (scorify-music m p)))))
-
-#(ly:set-option (quote no-point-and-click))
-#(define inside-lilypond-book #t)
-#(define version-seen? #t)
+\\include "lilypond-book-preamble.ly"
 %(preamble_string)s
 
 
@@ -1167,7 +1142,7 @@ class Lilypond_snippet (Snippet):
             if VERBATIM in self.option_dict:
                 verb = self.substring ('code')
                 str += (output[LATEX][VERBATIM] % vars ())
-        
+
         str += (output[LATEX][OUTPUT] % vars ())
 
         ## todo: maintain breaks
@@ -1265,7 +1240,7 @@ def find_toplevel_snippets (s, types):
 
     snippets = []
     index = 0
-    found = dict ((t, None) for t in types)
+    found = dict ([(t, None) for t in types])
 
     line_starts = find_linestarts (s)
     line_start_idx = 0
@@ -1497,7 +1472,7 @@ class Compile_error:
 def write_file_map (lys, name):
     snippet_map = open ('snippet-map.ly', 'w')
     snippet_map.write ("""
-#(define version-seen? #t)
+#(define version-seen #t)
 #(ly:add-file-name-alist '(
 """)
     for ly in lys:
@@ -1722,14 +1697,22 @@ def main ():
     formats = 'ps'
     if global_options.format in (TEXINFO, HTML):
         formats += ',png'
+
+        
     if global_options.process_cmd == '':
-        global_options.process_cmd = lilypond_binary \
-               + ' --formats=%s --backend eps ' % formats
+        global_options.process_cmd = (lilypond_binary 
+                                      + ' --formats=%s --backend eps ' % formats)
 
     if global_options.process_cmd:
         global_options.process_cmd += string.join ([(' -I %s' % commands.mkarg (p))
                               for p in global_options.include_path])
 
+    if (global_options.format in (TEXINFO, LATEX)
+        and global_options.create_pdf):
+        global_options.process_cmd += "--pdf  -deps-font-include -dgs-font-load "
+
+    if global_options.verbose:
+        global_options.process_cmd += " --verbose "
     identify ()
 
     try:
@@ -1753,18 +1736,18 @@ def main ():
         exit (1)
 
     if global_options.format in (TEXINFO, LATEX):
-        if not global_options.psfonts:
-            warning (_ ("option --psfonts not used"))
-            warning (_ ("processing with dvips will have no fonts"))
-
         psfonts_file = os.path.join (global_options.output_name, basename + '.psfonts')
         output = os.path.join (global_options.output_name, basename +  '.dvi' )
         
-        progress ('\n')
-        progress (_ ("DVIPS usage:"))
-        progress ('\n')
-        progress ("    dvips -h %(psfonts_file)s %(output)s" % vars ())
-        progress ('\n')
+        if not global_options.psfonts and not global_options.create_pdf:
+            warning (_ ("option --psfonts not used"))
+            warning (_ ("processing with dvips will have no fonts"))
+        else:
+            progress ('\n')
+            progress (_ ("DVIPS usage:"))
+            progress ('\n')
+            progress ("    dvips -h %(psfonts_file)s %(output)s" % vars ())
+            progress ('\n')
 
     inputs = note_input_file ('')
     inputs.pop ()