- sys::path module_directory(MODULE_DIR);
- module_directory /= "ardour2";
- return module_directory;
+ static std::string s;
+
+ if (s.empty()) {
+ s = Glib::getenv("ARDOUR_DLL_PATH");
+ std::cerr << _("ARDOUR_DLL_PATH not set in environment - exiting\n");
+ ::exit (1);
+ }
+
+ return s;
+}
+
+SearchPath
+ardour_config_search_path ()
+{
+ static SearchPath search_path;
+
+ if (search_path.empty()) {
+ search_path += user_config_directory();
+
+ std::string s = Glib::getenv("ARDOUR_CONFIG_PATH");
+ if (s.empty()) {
+ std::cerr << _("ARDOUR_CONFIG_PATH not set in environment - exiting\n");
+ ::exit (1);
+ }
+
+ search_path += SearchPath (s);
+ }
+
+ return search_path;
+}
+
+SearchPath
+ardour_data_search_path ()
+{
+ static SearchPath search_path;
+
+ if (search_path.empty()) {
+ search_path += user_config_directory();
+
+ std::string s = Glib::getenv("ARDOUR_DATA_PATH");
+ if (s.empty()) {
+ std::cerr << _("ARDOUR_DATA_PATH not set in environment - exiting\n");
+ ::exit (1);
+ }
+
+ search_path += SearchPath (s);
+ }
+
+ return search_path;