#include "lily-version.hh"
#include "all-font-metrics.hh"
-#include "proto.hh"
#include "getopt-long.hh"
#include "misc.hh"
#include "string.hh"
#include <libintl.h>
#endif
+#if KPATHSEA && HAVE_KPATHSEA_KPATHSEA_H
+extern "C" {
+#include <kpathsea/kpathsea.h>
+}
+#endif
-bool version_ignore_global_b = false;
+bool verbose_global_b = false;
bool no_paper_global_b = false;
bool no_timestamps_global_b = false;
bool find_old_relative_b = false;
{0, "safe", 's', _i ("inhibit file output naming and exporting")},
{0, "no-timestamps", 'T', _i ("don't timestamp the output")},
{0, "test", 't', _i ("switch on experimental features")},
- {0, "ignore-version", 'V', _i ("ignore mudela version")},
{0, "version", 'v', _i ("print version number")},
+ {0, "verbose", 'V', _i("verbose")},
{0, "warranty", 'w', _i ("show warranty and copyright")},
{0,0,0, 0}
};
void
identify (ostream* os)
{
- *os << gnu_lilypond_version_str () << endl;
+ //*os << gnu_lilypond_version_str () << endl;
+ *os << gnu_lilypond_version_str ();
}
void
global_path.parse_path (env_sz);
- char *suffixes[] = {"ly", "afm", "scm", "tfm", "cmtfm", "ps", 0};
+ /*
+ Should use kpathsea, this is getting out of hand.
+ */
+ char *suffixes[] = {"ly", "afm", "scm", "tfm", "ps", 0};
+ String prefix = prefix_directory;
+ if (prefix.empty_b ()) prefix = DIR_DATADIR;
for (char **s = suffixes; *s; s++)
{
- if (!prefix_directory.empty_b())
- global_path.add (prefix_directory + to_str ('/') + String (*s));
- else
- global_path.add (String (DIR_DATADIR) + to_str ('/') + String(*s));
+ String p = prefix + to_str ('/') + String (*s);
+ global_path.add (p);
+
+#if !KPATHSEA
+ /*
+ Although kpathsea seems nice, it is not universally available
+ (GNU/Windows).
+
+ Compiling kpathsea seems not possible without
+ (compiling) a matching tex installation. Apart from the fact
+ that I cannot get kpathsea compiled for GNU/Windows, another
+ major problem is that TeX installations may be different on
+ different clients, so it wouldn't work anyway. While ugly,
+ this code is simple and effective.
+ -- jcn
+ */
+
+ /* Urg: GNU make's $(word) index starts at 1 */
+ int i = 1;
+ while (global_path.try_add (p + to_str (".") + to_str (i)))
+ i++;
+#endif
}
}
need to do this first. Engravers use lily.scm contents.
*/
init_lily_guile ();
+ if (verbose_global_b)
+ progress_indication ("\n");
read_lily_scm_file ("lily.scm");
cout << endl;
debug_init (); // should be first
setup_paths ();
+ /*
+ prepare guile for heavy mem usage.
+
+ putenv is POSIX, setenv is BSD 4.3
+ */
+ putenv ("GUILE_INIT_SEGMENT_SIZE_1=4194304");
+ putenv ("GUILE_MAX_SEGMENT_SIZE=8388608");
+
+#if KPATHSEA && HAVE_KPATHSEA_KPATHSEA_H
+ /*
+ initialize kpathsea
+ */
+ kpse_set_program_name(argv[0], NULL);
+ kpse_maketex_option("tfm", TRUE);
+#endif
+
oparser_global_p = new Getopt_long(argc, argv,theopts);
while (Long_option_init const * opt = (*oparser_global_p)())
{
exit (0);
break;
case 'V':
- version_ignore_global_b = true;
+ verbose_global_b = true;
break;
case 's':
safe_global_b = true;