diff --git a/MSVCardour3/Ardour3.vcproj b/MSVCardour3/Ardour3.vcproj
index b757af6815..53738c6d7c 100644
--- a/MSVCardour3/Ardour3.vcproj
+++ b/MSVCardour3/Ardour3.vcproj
@@ -1606,7 +1606,7 @@
>
c)); } }
#define STATIC(n,c) else if (i == LuaSignal::n) { connect (LuaSignal::n, obj, c); }
if (0) {}
-# include "luasignal_syms.h"
+# include "luasignal_syms.inc.h"
else {
PBD::fatal << string_compose (_("programming error: %1: %2"), "Impossible LuaSignal type", i) << endmsg;
abort(); /*NOTREACHED*/
diff --git a/gtk2_ardour/luasignal.h b/gtk2_ardour/luasignal.h
index 7193050dab..2293a7aeb0 100644
--- a/gtk2_ardour/luasignal.h
+++ b/gtk2_ardour/luasignal.h
@@ -24,7 +24,7 @@ namespace LuaSignal {
#define SESSION(name,c) name,
enum LuaSignal {
-# include "luasignal_syms.h"
+# include "luasignal_syms.inc.h"
LAST_SIGNAL
};
diff --git a/gtk2_ardour/luasignal_syms.h b/gtk2_ardour/luasignal_syms.inc.h
similarity index 100%
rename from gtk2_ardour/luasignal_syms.h
rename to gtk2_ardour/luasignal_syms.inc.h
diff --git a/gtk2_ardour/note_base.cc b/gtk2_ardour/note_base.cc
index 3392ccf36d..4897e575e5 100644
--- a/gtk2_ardour/note_base.cc
+++ b/gtk2_ardour/note_base.cc
@@ -29,13 +29,13 @@
#include "note_base.h"
#include "editing_context.h"
-#include "editing_syms.h"
+#include "editing_syms.inc.h"
#include "keyboard.h"
#include "midi_view.h"
/* clang-format off */
// Include last, when GRIDTYPE has been defined by editing.h via midi_region_view.h
-#include "editing_syms.h"
+#include "editing_syms.inc.h"
/* clang-format on */
using namespace std;
diff --git a/gtk2_ardour/preference-metadata b/gtk2_ardour/preference-metadata
index 5300fd6053..10e54307ee 100644
--- a/gtk2_ardour/preference-metadata
+++ b/gtk2_ardour/preference-metadata
@@ -10,9 +10,6 @@
# [never-do-that-thing]
# thing that action prevent never stop otherthing
#
-# The file is processed via tools/process-metadata to create build/gtk2_ardour/configuration_metadata.h which is then incorporated via an #include directive
-# within gtk2_ardour/ui_config.cc
-#
# Whenever a new preference variable is added to the source code, its name should also be added here.
#
# GUIDANCE:
@@ -20,6 +17,12 @@
# use "synchronization" rather than sync, because that will match both "sync" and "synchronization". For languages that create plurals with a suffix,
# prefer plural forms for the same reason.
#
+# This file is processed automatically when invoking a custom tool manually:
+#
+# tools/process-metadata gtk2_ardour/preference-metadata > gtk2_ardour/configuration_metadata.inc.h
+#
+# The generated file is incorporated via an #include directive within gtk2_ardour/ui_config.cc .
+
[SECTION:UI]
[action-table-columns]
diff --git a/gtk2_ardour/ui_config.cc b/gtk2_ardour/ui_config.cc
index 6e42f750d9..37e716bd0f 100644
--- a/gtk2_ardour/ui_config.cc
+++ b/gtk2_ardour/ui_config.cc
@@ -84,8 +84,8 @@ UIConfiguration::UIConfiguration ()
#undef UI_CONFIG_VARIABLE
#define UI_CONFIG_VARIABLE(Type,var,name,val) var (name,val),
#define CANVAS_FONT_VARIABLE(var,name) var (name),
-#include "ui_config_vars.h"
-#include "canvas_vars.h"
+#include "ui_config_vars.inc.h"
+#include "canvas_vars.inc.h"
#undef UI_CONFIG_VARIABLE
#undef CANVAS_FONT_VARIABLE
@@ -101,7 +101,7 @@ UIConfiguration::UIConfiguration ()
#undef UI_CONFIG_VARIABLE
#define UI_CONFIG_VARIABLE(Type,var,name,value) _my_variables.insert (std::make_pair ((name), &(var)));
#define CANVAS_FONT_VARIABLE(var,name) /* no need for metadata for these */
-#include "ui_config_vars.h"
+#include "ui_config_vars.inc.h"
#undef UI_CONFIG_VARIABLE
#undef CANVAS_FONT_VARIABLE
@@ -222,7 +222,7 @@ UIConfiguration::map_parameters (std::function& functor)
{
#undef UI_CONFIG_VARIABLE
#define UI_CONFIG_VARIABLE(Type,var,Name,value) functor (Name);
-#include "ui_config_vars.h"
+#include "ui_config_vars.inc.h"
#undef UI_CONFIG_VARIABLE
}
@@ -572,8 +572,8 @@ UIConfiguration::get_variables (std::string const & node_name) const
#undef CANVAS_FONT_VARIABLE
#define UI_CONFIG_VARIABLE(Type,var,Name,value) if (node->name() == "UI") { var.add_to_node (*node); }
#define CANVAS_FONT_VARIABLE(var,Name) if (node->name() == "Canvas") { var.add_to_node (*node); }
-#include "ui_config_vars.h"
-#include "canvas_vars.h"
+#include "ui_config_vars.inc.h"
+#include "canvas_vars.inc.h"
#undef UI_CONFIG_VARIABLE
#undef CANVAS_FONT_VARIABLE
@@ -707,8 +707,8 @@ UIConfiguration::set_variables (const XMLNode& node)
#undef UI_CONFIG_VARIABLE
#define UI_CONFIG_VARIABLE(Type,var,name,val) if (var.set_from_node (node)) { ParameterChanged (name); }
#define CANVAS_FONT_VARIABLE(var,name) if (var.set_from_node (node)) { ParameterChanged (name); }
-#include "ui_config_vars.h"
-#include "canvas_vars.h"
+#include "ui_config_vars.inc.h"
+#include "canvas_vars.inc.h"
#undef UI_CONFIG_VARIABLE
#undef CANVAS_FONT_VARIABLE
}
@@ -867,4 +867,4 @@ UIConfiguration::color_to_hex_string_no_alpha (Gtkmm2ext::Color c)
return buf;
}
-#include "configuration_metadata.h"
+#include "configuration_metadata.inc.h"
diff --git a/gtk2_ardour/ui_config.h b/gtk2_ardour/ui_config.h
index d365eef0b4..2396a52141 100644
--- a/gtk2_ardour/ui_config.h
+++ b/gtk2_ardour/ui_config.h
@@ -114,13 +114,13 @@ public:
#define UI_CONFIG_VARIABLE(Type,var,name,value) \
Type get_##var () const { return var.get(); } \
bool set_##var (Type val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
-#include "ui_config_vars.h"
+#include "ui_config_vars.inc.h"
#undef UI_CONFIG_VARIABLE
#define CANVAS_FONT_VARIABLE(var,name) \
Pango::FontDescription get_##var () const { return ARDOUR_UI_UTILS::sanitized_font (var.get()); } \
Pango::FontDescription get_Ardour##var () const { return ARDOUR_UI_UTILS::ardour_font (var.get()); } \
bool set_##var (const std::string& val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
-#include "canvas_vars.h"
+#include "canvas_vars.inc.h"
#undef CANVAS_FONT_VARIABLE
private:
@@ -128,11 +128,11 @@ private:
#undef UI_CONFIG_VARIABLE
#define UI_CONFIG_VARIABLE(Type,var,name,value) PBD::ConfigVariable var;
-#include "ui_config_vars.h"
+#include "ui_config_vars.inc.h"
#undef UI_CONFIG_VARIABLE
#define CANVAS_FONT_VARIABLE(var,name) PBD::ConfigVariable var;
-#include "canvas_vars.h"
+#include "canvas_vars.inc.h"
#undef CANVAS_FONT_VARIABLE
XMLNode& state () const;
diff --git a/gtk2_ardour/ui_config_vars.h b/gtk2_ardour/ui_config_vars.inc.h
similarity index 100%
rename from gtk2_ardour/ui_config_vars.h
rename to gtk2_ardour/ui_config_vars.inc.h
diff --git a/libs/ardour/MSVClibardour/ardour.vcproj b/libs/ardour/MSVClibardour/ardour.vcproj
index 33c8ddb70c..5b131ef0b9 100644
--- a/libs/ardour/MSVClibardour/ardour.vcproj
+++ b/libs/ardour/MSVClibardour/ardour.vcproj
@@ -2350,7 +2350,7 @@
>
var;
#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) PBD::ConfigVariableWithMutation var;
-#include "ardour/rc_configuration_vars.h"
+#include "ardour/rc_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
diff --git a/libs/ardour/ardour/rc_configuration_vars.h b/libs/ardour/ardour/rc_configuration_vars.inc.h
similarity index 100%
rename from libs/ardour/ardour/rc_configuration_vars.h
rename to libs/ardour/ardour/rc_configuration_vars.inc.h
diff --git a/libs/ardour/ardour/session_configuration.h b/libs/ardour/ardour/session_configuration.h
index 88474b6114..d592234390 100644
--- a/libs/ardour/ardour/session_configuration.h
+++ b/libs/ardour/ardour/session_configuration.h
@@ -53,7 +53,7 @@ public:
#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) \
Type get_##var () const { return var.get(); } \
bool set_##var (Type val) { bool ret = var.set (val); if (ret) { ParameterChanged (name); } return ret; }
-#include "ardour/session_configuration_vars.h"
+#include "ardour/session_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
/* clang-format on */
@@ -67,7 +67,7 @@ public:
#undef CONFIG_VARIABLE_SPECIAL
#define CONFIG_VARIABLE(Type,var,name,value) PBD::ConfigVariable var;
#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) PBD::ConfigVariableWithMutation var;
-#include "ardour/session_configuration_vars.h"
+#include "ardour/session_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
/* clang-format on */
diff --git a/libs/ardour/ardour/session_configuration_vars.h b/libs/ardour/ardour/session_configuration_vars.inc.h
similarity index 100%
rename from libs/ardour/ardour/session_configuration_vars.h
rename to libs/ardour/ardour/session_configuration_vars.inc.h
diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc
index 5b90afc00c..38843d263f 100644
--- a/libs/ardour/luabindings.cc
+++ b/libs/ardour/luabindings.cc
@@ -3006,7 +3006,7 @@ LuaBindings::common (lua_State* L)
.addFunction ("set_" # var, &RCConfiguration::set_##var) \
.addProperty (#var, &RCConfiguration::get_##var, &RCConfiguration::set_##var)
-#include "ardour/rc_configuration_vars.h"
+#include "ardour/rc_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
@@ -3025,7 +3025,7 @@ LuaBindings::common (lua_State* L)
.addFunction ("set_" # var, &SessionConfiguration::set_##var) \
.addProperty (#var, &SessionConfiguration::get_##var, &SessionConfiguration::set_##var)
-#include "ardour/session_configuration_vars.h"
+#include "ardour/session_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
diff --git a/libs/ardour/midi_ui.cc b/libs/ardour/midi_ui.cc
index 81a865934e..60d1c20313 100644
--- a/libs/ardour/midi_ui.cc
+++ b/libs/ardour/midi_ui.cc
@@ -43,7 +43,7 @@ using namespace Glib;
MidiControlUI* MidiControlUI::_instance = 0;
-#include "pbd/abstract_ui.cc" /* instantiate the template */
+#include "pbd/abstract_ui.inc.cc" /* instantiate the template */
MidiControlUI::MidiControlUI (Session& s)
: AbstractUI (X_("midiUI"))
diff --git a/libs/ardour/rc_configuration.cc b/libs/ardour/rc_configuration.cc
index ebbf028bda..7c8f7f3f86 100644
--- a/libs/ardour/rc_configuration.cc
+++ b/libs/ardour/rc_configuration.cc
@@ -70,7 +70,7 @@ RCConfiguration::RCConfiguration ()
#undef CONFIG_VARIABLE_SPECIAL
#define CONFIG_VARIABLE(Type,var,name,value) var (name,value),
#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) var (name,value,mutator),
-#include "ardour/rc_configuration_vars.h"
+#include "ardour/rc_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
_control_protocol_state (0)
@@ -84,7 +84,7 @@ RCConfiguration::RCConfiguration ()
#undef CONFIG_VARIABLE_SPECIAL
#define CONFIG_VARIABLE(Type,var,name,value) _my_variables.insert (std::make_pair ((name), &(var)));
#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) _my_variables.insert (std::make_pair ((name), &(var)));
-#include "ardour/rc_configuration_vars.h"
+#include "ardour/rc_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
@@ -243,7 +243,7 @@ RCConfiguration::get_variables (std::string const & node_name) const
var.add_to_node (*node);
#define CONFIG_VARIABLE_SPECIAL(type,var,Name,value,mutator) \
var.add_to_node (*node);
-#include "ardour/rc_configuration_vars.h"
+#include "ardour/rc_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
@@ -299,7 +299,7 @@ RCConfiguration::set_variables (const XMLNode& node)
ParameterChanged (name); \
}
-#include "ardour/rc_configuration_vars.h"
+#include "ardour/rc_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
@@ -311,7 +311,7 @@ RCConfiguration::map_parameters (std::function& functor)
#undef CONFIG_VARIABLE_SPECIAL
#define CONFIG_VARIABLE(type,var,name,value) functor (name);
#define CONFIG_VARIABLE_SPECIAL(type,var,name,value,mutator) functor (name);
-#include "ardour/rc_configuration_vars.h"
+#include "ardour/rc_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
}
diff --git a/libs/ardour/session_configuration.cc b/libs/ardour/session_configuration.cc
index 8d908dc927..4222975f22 100644
--- a/libs/ardour/session_configuration.cc
+++ b/libs/ardour/session_configuration.cc
@@ -50,7 +50,7 @@ SessionConfiguration::SessionConfiguration ()
#undef CONFIG_VARIABLE_SPECIAL
#define CONFIG_VARIABLE(Type,var,name,value) var (name,value),
#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) var (name,value,mutator),
-#include "ardour/session_configuration_vars.h"
+#include "ardour/session_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
foo (0) // needed because above macros end in a comma
@@ -62,7 +62,7 @@ SessionConfiguration::SessionConfiguration ()
#undef CONFIG_VARIABLE_SPECIAL
#define CONFIG_VARIABLE(Type,var,name,value) _my_variables.insert (std::make_pair ((name), &(var)));
#define CONFIG_VARIABLE_SPECIAL(Type,var,name,value,mutator) _my_variables.insert (std::make_pair ((name), &(var)));
-#include "ardour/session_configuration_vars.h"
+#include "ardour/session_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
@@ -97,7 +97,7 @@ SessionConfiguration::get_variables (std::string const & node_name) const
var.add_to_node (*node);
#define CONFIG_VARIABLE_SPECIAL(type,var,Name,value,mutator) \
var.add_to_node (*node);
-#include "ardour/session_configuration_vars.h"
+#include "ardour/session_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
@@ -136,7 +136,7 @@ SessionConfiguration::set_variables (const XMLNode& node)
ParameterChanged (name); \
}
-#include "ardour/session_configuration_vars.h"
+#include "ardour/session_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
@@ -148,7 +148,7 @@ SessionConfiguration::map_parameters (std::function& functor
#undef CONFIG_VARIABLE_SPECIAL
#define CONFIG_VARIABLE(type,var,name,value) functor (name);
#define CONFIG_VARIABLE_SPECIAL(type,var,name,value,mutator) functor (name);
-#include "ardour/session_configuration_vars.h"
+#include "ardour/session_configuration_vars.inc.h"
#undef CONFIG_VARIABLE
#undef CONFIG_VARIABLE_SPECIAL
}
diff --git a/libs/ardour/test/test_ui.cc b/libs/ardour/test/test_ui.cc
index 867eafba7d..bc1406f016 100644
--- a/libs/ardour/test/test_ui.cc
+++ b/libs/ardour/test/test_ui.cc
@@ -25,7 +25,7 @@
#include "ardour/session_event.h"
#include "ardour/rc_configuration.h"
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
using namespace ARDOUR;
diff --git a/libs/ctrl-interface/midi_surface/midi_surface.cc b/libs/ctrl-interface/midi_surface/midi_surface.cc
index a295ac3df2..f77a91a572 100644
--- a/libs/ctrl-interface/midi_surface/midi_surface.cc
+++ b/libs/ctrl-interface/midi_surface/midi_surface.cc
@@ -35,7 +35,7 @@ using namespace ARDOUR;
using namespace Glib;
using namespace PBD;
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
MIDISurface::MIDISurface (ARDOUR::Session& s, std::string const & namestr, std::string const & port_prefix, bool use_pad_filter)
: ControlProtocol (s, namestr)
diff --git a/libs/gtkmm2ext/gtk_ui.cc b/libs/gtkmm2ext/gtk_ui.cc
index af9d2bd198..2459fa32ae 100644
--- a/libs/gtkmm2ext/gtk_ui.cc
+++ b/libs/gtkmm2ext/gtk_ui.cc
@@ -69,7 +69,7 @@ BaseUI::RequestType Gtkmm2ext::SetTip = BaseUI::new_request_type();
BaseUI::RequestType Gtkmm2ext::AddIdle = BaseUI::new_request_type();
BaseUI::RequestType Gtkmm2ext::AddTimeout = BaseUI::new_request_type();
-#include "pbd/abstract_ui.cc" /* instantiate the template */
+#include "pbd/abstract_ui.inc.cc" /* instantiate the template */
template class AbstractUI;
diff --git a/libs/pbd/pbd/abstract_ui.cc b/libs/pbd/pbd/abstract_ui.inc.cc
similarity index 100%
rename from libs/pbd/pbd/abstract_ui.cc
rename to libs/pbd/pbd/abstract_ui.inc.cc
diff --git a/libs/surfaces/cc121/cc121.cc b/libs/surfaces/cc121/cc121.cc
index f7e34cfec6..a3117ec4a3 100644
--- a/libs/surfaces/cc121/cc121.cc
+++ b/libs/surfaces/cc121/cc121.cc
@@ -69,7 +69,7 @@ using namespace std;
#include "pbd/i18n.h"
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
CC121::CC121 (Session& s)
: ControlProtocol (s, _("Steinberg CC121"))
diff --git a/libs/surfaces/console1/console1.cc b/libs/surfaces/console1/console1.cc
index 6269cf88d0..84336229be 100644
--- a/libs/surfaces/console1/console1.cc
+++ b/libs/surfaces/console1/console1.cc
@@ -18,7 +18,7 @@
#include
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
#include "pbd/controllable.h"
#include "pbd/i18n.h"
diff --git a/libs/surfaces/contourdesign/contourdesign.cc b/libs/surfaces/contourdesign/contourdesign.cc
index 21f13d856f..793e15547d 100644
--- a/libs/surfaces/contourdesign/contourdesign.cc
+++ b/libs/surfaces/contourdesign/contourdesign.cc
@@ -38,7 +38,7 @@ using namespace Glib;
using namespace std;
using namespace ArdourSurface;
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
static const uint16_t ContourDesign = 0x0b33;
static const uint16_t ShuttlePRO_id = 0x0010;
diff --git a/libs/surfaces/faderport/faderport.cc b/libs/surfaces/faderport/faderport.cc
index 5e298c4e59..e9d569768b 100644
--- a/libs/surfaces/faderport/faderport.cc
+++ b/libs/surfaces/faderport/faderport.cc
@@ -63,7 +63,7 @@ using namespace std;
#include "pbd/i18n.h"
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
FaderPort::FaderPort (Session& s)
: MIDISurface (s, X_("PreSonus FaderPort"), X_("FaderPort"), false)
diff --git a/libs/surfaces/faderport8/faderport8.cc b/libs/surfaces/faderport8/faderport8.cc
index 7854acb8da..f962a9458e 100644
--- a/libs/surfaces/faderport8/faderport8.cc
+++ b/libs/surfaces/faderport8/faderport8.cc
@@ -62,7 +62,7 @@ using namespace ArdourSurface::FP_NAMESPACE::FP8Types;
#include "pbd/i18n.h"
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
#ifndef NDEBUG
//#define VERBOSE_DEBUG
diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
index c1bf68a5bb..08e88716d1 100644
--- a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
+++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
@@ -66,7 +66,7 @@
#include "midifunction.h"
#include "midiaction.h"
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
#include "pbd/i18n.h"
diff --git a/libs/surfaces/launch_control_xl/launch_control_xl.cc b/libs/surfaces/launch_control_xl/launch_control_xl.cc
index af77e5f225..732cc344fa 100644
--- a/libs/surfaces/launch_control_xl/launch_control_xl.cc
+++ b/libs/surfaces/launch_control_xl/launch_control_xl.cc
@@ -65,7 +65,7 @@ using namespace std;
using namespace PBD;
using namespace Glib;
using namespace ArdourSurface;
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
/* init global object */
LaunchControlXL* lcxl = 0;
diff --git a/libs/surfaces/launchkey_4/launchkey_4.cc b/libs/surfaces/launchkey_4/launchkey_4.cc
index ab5dfe218e..b03f52ad7b 100644
--- a/libs/surfaces/launchkey_4/launchkey_4.cc
+++ b/libs/surfaces/launchkey_4/launchkey_4.cc
@@ -78,7 +78,7 @@ using namespace ArdourSurface;
using namespace ArdourSurface::LAUNCHPAD_NAMESPACE;
using namespace Gtkmm2ext;
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
/* USB IDs */
diff --git a/libs/surfaces/launchpad_pro/lppro.cc b/libs/surfaces/launchpad_pro/lppro.cc
index 913bfc17e2..e9ee1ca58d 100644
--- a/libs/surfaces/launchpad_pro/lppro.cc
+++ b/libs/surfaces/launchpad_pro/lppro.cc
@@ -73,7 +73,7 @@ using namespace Glib;
using namespace ArdourSurface;
using namespace Gtkmm2ext;
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
#define NOVATION 0x1235
#define LAUNCHPADPROMK3 0x0123
diff --git a/libs/surfaces/launchpad_x/lpx.cc b/libs/surfaces/launchpad_x/lpx.cc
index c2393f6df7..e21f9bf970 100644
--- a/libs/surfaces/launchpad_x/lpx.cc
+++ b/libs/surfaces/launchpad_x/lpx.cc
@@ -80,7 +80,7 @@ using namespace ArdourSurface;
using namespace ArdourSurface::LAUNCHPAD_NAMESPACE;
using namespace Gtkmm2ext;
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
#define NOVATION 0x1235
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc
index 61d8f70807..a527f9c5f1 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.cc
+++ b/libs/surfaces/mackie/mackie_control_protocol.cc
@@ -98,7 +98,7 @@ using namespace ArdourSurface::MACKIE_NAMESPACE;
#include "pbd/i18n.h"
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
const int MACKIE_NAMESPACE::MackieControlProtocol::MODIFIER_OPTION = 0x1;
const int MACKIE_NAMESPACE::MackieControlProtocol::MODIFIER_CONTROL = 0x2;
diff --git a/libs/surfaces/maschine2/maschine2.cc b/libs/surfaces/maschine2/maschine2.cc
index 616f3eab2e..114cf5f74e 100644
--- a/libs/surfaces/maschine2/maschine2.cc
+++ b/libs/surfaces/maschine2/maschine2.cc
@@ -42,7 +42,7 @@
#include "canvas.h"
-#include "pbd/abstract_ui.cc" // instantiate template, includes i18n
+#include "pbd/abstract_ui.inc.cc" // instantiate template, includes i18n
using namespace ARDOUR;
using namespace PBD;
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index 78f3e1943d..de1246074f 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -84,7 +84,7 @@ using namespace std;
using namespace Glib;
using namespace ArdourSurface;
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
OSC* OSC::_instance = 0;
diff --git a/libs/surfaces/push2/push2.cc b/libs/surfaces/push2/push2.cc
index c7f45fc1ff..c666cc9be2 100644
--- a/libs/surfaces/push2/push2.cc
+++ b/libs/surfaces/push2/push2.cc
@@ -74,7 +74,7 @@ using namespace Glib;
using namespace ArdourSurface;
using namespace Gtkmm2ext;
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
#define ABLETON 0x2982
#define PUSH2 0x1967
diff --git a/libs/surfaces/us2400/us2400_control_protocol.cc b/libs/surfaces/us2400/us2400_control_protocol.cc
index e025526660..0a922ef280 100644
--- a/libs/surfaces/us2400/us2400_control_protocol.cc
+++ b/libs/surfaces/us2400/us2400_control_protocol.cc
@@ -83,7 +83,7 @@ using namespace US2400;
#include "pbd/i18n.h"
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
const int US2400Protocol::MODIFIER_OPTION = 0x1;
const int US2400Protocol::MODIFIER_CONTROL = 0x2;
diff --git a/libs/surfaces/websockets/ardour_websockets.cc b/libs/surfaces/websockets/ardour_websockets.cc
index 5fec5d5819..962845bd84 100644
--- a/libs/surfaces/websockets/ardour_websockets.cc
+++ b/libs/surfaces/websockets/ardour_websockets.cc
@@ -32,7 +32,7 @@
using namespace ARDOUR;
using namespace ArdourSurface;
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
ArdourWebsockets::ArdourWebsockets (Session& s)
: ControlProtocol (s, X_ (surface_name))
diff --git a/libs/surfaces/websockets/feedback.cc b/libs/surfaces/websockets/feedback.cc
index dd094052b8..3ca284460b 100644
--- a/libs/surfaces/websockets/feedback.cc
+++ b/libs/surfaces/websockets/feedback.cc
@@ -20,7 +20,7 @@
#include "ardour/session.h"
#include "ardour/tempo.h"
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
#include "feedback.h"
#include "transport.h"
diff --git a/libs/surfaces/wiimote/wiimote.cc b/libs/surfaces/wiimote/wiimote.cc
index 0578d0c42d..a6ab558685 100644
--- a/libs/surfaces/wiimote/wiimote.cc
+++ b/libs/surfaces/wiimote/wiimote.cc
@@ -31,7 +31,7 @@ using namespace ARDOUR;
using namespace PBD;
using namespace std;
-#include "pbd/abstract_ui.cc" // instantiate template
+#include "pbd/abstract_ui.inc.cc" // instantiate template
void wiimote_control_protocol_mesg_callback (cwiid_wiimote_t *wiimote, int mesg_count, union cwiid_mesg mesg[], timespec *t);