]> git.donarmstrong.com Git - lilypond.git/blobdiff - SConstruct
* SConstruct:
[lilypond.git] / SConstruct
index a29592389d29a16c549aa7db9c028147bb9d76e2..89d6a59da437d395447f0bde62ff84f2f845ae1d 100644 (file)
@@ -4,8 +4,13 @@
 Experimental scons (www.scons.org) building:
 
 Usage:
-    scons
+    scons lily            # build lily
     LILYPONDPREFIX=out-scons/usr/share/lilypond lily/out-scons/lilypond-bin
+    scons doc             # build web doc
+
+    scons                 # without args builds all targets below ./
+                          # maybe catch this one and only build lily?
+    scons /               # builds all possible targets
 
     scons install
     scons -c              # clean
@@ -56,7 +61,7 @@ env = Environment ()
 
 # put your favourite stuff in custom.py
 opts = Options ('custom.py', ARGUMENTS)
-#opts = Options (None, ARGUMENTS)
+#opts = Options (['config.cache', 'custom.py'], ARGUMENTS)
 opts.Add ('prefix', 'Install prefix', '/usr/')
 opts.Add ('out', 'Output directory', 'out-scons')
 opts.Add ('build', 'Build directory', '.')
@@ -81,6 +86,10 @@ Help (opts.GenerateHelpText (env))
 
 env = Environment (options = opts)
 
+opts.Update (env)
+#opts.Save ('config.cache', env)
+
+
 env.CacheDir (os.path.join (env['build'], '=build-cache'))
 
 #ugh
@@ -185,7 +194,6 @@ command = r"""python -c 'import sys; sys.stdout.write ("%s/include/python%s" % (
 PYTHON_INCLUDE = os.popen (command).read ()
 env.Append (CPPPATH = PYTHON_INCLUDE)
 
-
 headers = ('sys/stat.h', 'assert.h', 'kpathsea/kpathsea.h', 'Python.h')
 for i in headers:
        if conf.CheckCHeader (i):
@@ -333,26 +341,42 @@ env['PYTHON'] = 'python'
 env['LILYPOND_BIN'] = os.path.join (absbuild, 'lily', out, 'lilypond-bin')
 env['LILYPONDPREFIX'] =        os.path.join (outdir, 'usr/share/lilypond')
 env['LILYPOND_BOOK'] = srcdir + '/scripts/lilypond-book.py'
+env['ABC2LY_PY'] = srcdir + '/scripts/abc2ly.py'
+env['MF_TO_TABLE_PY'] = srcdir + '/buildscripts/mf-to-table.py'
+env['LILYPOND_PY'] = srcdir + '/scripts/lilypond.py'
 env['LILYPOND_BOOK_FLAGS'] = ''
 env['LILYPOND_BOOK_FORMAT'] = 'texi-html'
+# ugh?
 env['LILYPOND_BOOK_PATH'] = ['.', '#/input', '#/input/regression',
                             '#/input/test', '#/input/tutorial',
                             os.path.join (absbuild, 'mf', out),
                             '#/Documentation/user',
-                            os.path.join (absbuild, 'Documentation', out)]
+                            os.path.join (absbuild, 'Documentation', out),
+                            os.path.join (absbuild, 'Documentation/user', out),
+                            ]
                             
 env['MAKEINFO_PATH'] = ['.', '#/Documentation/user',
-                       os.path.join (absbuild, 'Documentation', out)]
+                       os.path.join (absbuild, 'Documentation/user', out)]
 
 ## TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
 env['TEXINFO_PAPERSIZE_OPTION'] = '-t @afourpaper'
+env.Append (PYTHONPATH = [os.path.join (outdir, 'usr/lib/python'),
+                         os.path.join (srcdir, 'buildscripts'),
+                         os.path.join (srcdir, 'python')])
+# huh, aha?
+# GS_FONTPATH, GS_LIB?
+env.Append (ENV = { 'PYTHONPATH' : string.join (env['PYTHONPATH'],
+                                               os.pathsep) } )
+# UGHR, lilypond.py uses lilypond-bin from PATH
+env.Append (ENV = { 'PATH' : os.path.join (outdir, 'usr/bin') })
 
 SConscript ('buildscripts/builder.py')
 
 #subdirs = ['mf',]
 #subdirs = ['flower', 'lily', 'parser', 'gui', 'main',]
 #subdirs = ['flower', 'lily', 'mf', 'scm', 'ly']
-subdirs = ['flower', 'lily', 'mf', 'scm', 'ly', 'Documentation']
+subdirs = ['flower', 'lily', 'mf', 'scm', 'ly', 'Documentation',
+          'Documentation/user', 'input']
 for d in subdirs:
        b = os.path.join (build, d, out)
        # Support clean sourctree build (srcdir build)
@@ -396,19 +420,26 @@ def symlink_tree (prefix):
                map (mkdir, string.split (dir, os.sep))
        #srcdir = os.getcwd ()
        def symlink (src, dst):
+               os.chdir (absbuild)
                dir = os.path.dirname (dst)
                mkdirs (dir)
                if src[0] == '#':
                        frm = os.path.join (srcdir, src[1:])
                else:
-                       depth = len (string.split (dir))
+                       print 'dst: ' + dst
+                       depth = len (string.split (dir, '/'))
+                       print 'depth: ' + `depth`
                        frm = os.path.join ('../' * depth, src, out)
+               print 'cwd: ' + `os.getcwd ()`
+               print 'frm: ' + frm
+               print 'dst: ' + dst
                os.symlink (frm, os.path.basename (dst))
-               os.chdir (srcdir)
        map (lambda x: symlink (x[0], os.path.join (prefix, x[1])),
             (('python', 'lib/lilypond/python'),
+             # UGHR, lilypond.py uses lilypond-bin from PATH
+             ('lily',   'bin'),
              ('#mf',    'share/lilypond/fonts/mf'),
-             ('mf',     'share/lilypond/fonts/amf'),
+             ('mf',     'share/lilypond/fonts/afm'),
              ('mf',     'share/lilypond/fonts/tfm'),
              ('mf',     'share/lilypond/fonts/type1'),
              ('#tex',   'share/lilypond/tex/source'),
@@ -417,8 +448,9 @@ def symlink_tree (prefix):
              ('#scm',   'share/lilypond/scm'),
              ('#ps',    'share/lilypond/ps'),
              ('elisp',  'share/lilypond/elisp')))
+       os.chdir (srcdir)
 
 if env['debugging']:
-       prefix = os.path.join (outdir, 'usr')
+       prefix = os.path.join (out, 'usr')
        if not os.path.exists (prefix):
                symlink_tree (prefix)