- String argv0_abs;
- if (argv0_filename.is_absolute ())
- argv0_abs = argv0_filename.to_string ();
- else if (argv0_filename.dir_.length ())
- argv0_abs = get_working_directory ()
- + "/" + String (argv0_filename.to_string ());
- else
- {
- /* Find absolute ARGV0 name, using PATH. */
- File_path path;
- path.parse_path (getenv ("PATH"));
-
+ string prefix_directory;
+ if (getenv ("LILYPOND_RELOCATE_PREFIX"))
+ {
+ prefix_directory = getenv ("LILYPOND_RELOCATE_PREFIX");
+#ifdef __MINGW32__
+ /* Normalize file name. */
+ prefix_directory = File_name (prefix_directory).to_string ();
+#endif /* __MINGW32__ */
+
+ prefix_relocation (prefix_directory);
+ string bindir = prefix_directory + "/bin";
+ framework_relocation (bindir);
+ }
+ else if (relocate_binary)
+ {
+ string argv0_abs;
+ if (argv0_filename.is_absolute ())
+ {
+ argv0_abs = argv0_filename.to_string ();
+ debug_output (_f ("Relocation: is absolute: argv0=%s\n", argv0_ptr));
+ }
+ else if (argv0_filename.dir_.length ())
+ {
+ argv0_abs = get_working_directory ()
+ + "/" + string (argv0_filename.to_string ());
+ debug_output (_f ("Relocation: from cwd: argv0=%s\n", argv0_ptr));
+ }
+ else
+ {
+ /* Find absolute ARGV0 name, using PATH. */
+ File_path path;
+ path.parse_path (getenv ("PATH"));
+