2 from waflib.extras import autowaf as autowaf
3 from waflib import Options, TaskGen
4 import waflib.Logs as Logs, waflib.Utils as Utils
10 from waflib.Task import Task
12 I18N_PACKAGE = 'gtk2_ardour3'
19 src=task.inputs[0].abspath()
20 tgt=task.outputs[0].abspath()
21 if os.path.isfile(tgt) :
22 os.chmod(tgt, Utils.O755);
24 if os.path.isfile(tgt) :
25 os.chmod(tgt, Utils.O755);
27 path_prefix = 'gtk2_ardour/'
29 gtk2_ardour_sources = [
30 'mixer_bridge_view.cc',
32 'waves_zoom_control.cc',
37 'add_route_dialog.cc',
38 'add_tracks_dialog.cc',
39 'ambiguous_file_dialog.cc',
43 'waves_icon_button.cc',
49 'ardour_ui_dependents.cc',
50 'ardour_ui_dialogs.cc',
53 'ardour_ui_options.cc',
56 'audio_region_editor.cc',
57 'audio_region_view.cc',
58 'audio_streamview.cc',
60 'automation_controller.cc',
62 'automation_region_view.cc',
63 'automation_streamview.cc',
64 'automation_time_axis.cc',
66 'big_clock_window.cc',
72 'control_point_dialog.cc',
75 'device_connection_control.cc',
76 'midi_device_connection_control.cc',
77 'edit_note_dialog.cc',
81 'editor_audio_import.cc',
82 'editor_audiotrack.cc',
84 'editor_canvas_events.cc',
85 'editor_component.cc',
88 'editor_route_groups.cc',
89 'editor_export_audio.cc',
90 'editor_group_tabs.cc',
92 'editor_locations.cc',
100 'editor_selection.cc',
101 'editor_snapshots.cc',
103 'editor_tempodisplay.cc',
107 'export_channel_selector.cc',
109 'export_file_notebook.cc',
110 'export_filename_selector.cc',
111 'export_format_dialog.cc',
112 'export_format_selector.cc',
113 'export_preset_selector.cc',
114 'export_timespan_selector.cc',
118 'sfdb_freesound_mootcher.cc',
120 'generic_pluginui.cc',
122 'global_port_matrix.cc',
124 'gtk_pianokeyboard.c',
126 'insert_time_dialog.cc',
127 'interthread_progress_window.cc',
140 'midi_automation_line.cc',
141 'midi_channel_dialog.cc',
142 'midi_channel_selector.cc',
143 'midi_cut_buffer.cc',
144 'midi_export_dialog.cc',
145 'midi_list_editor.cc',
146 'midi_port_dialog.cc',
147 'midi_region_view.cc',
150 'midi_streamview.cc',
153 'midi_velocity_dialog.cc',
154 'missing_file_dialog.cc',
155 'missing_plugin_dialog.cc',
157 'mixer_group_tabs.cc',
161 'compact_meter_strip.cc',
162 'compact_meter_bridge.cc',
164 'monitor_section.cc',
166 'mono_panner_editor.cc',
169 'new_plugin_preset_dialog.cc',
170 'normalize_dialog.cc',
180 'panner_interface.cc',
183 'piano_roll_header.cc',
185 'playlist_selector.cc',
187 'plugin_selector.cc',
192 'port_matrix_body.cc',
193 'port_matrix_column_labels.cc',
194 'port_matrix_component.cc',
195 'port_matrix_grid.cc',
196 'port_matrix_labels.cc',
197 'port_matrix_row_labels.cc',
199 'patch_change_dialog.cc',
200 'progress_reporter.cc',
203 'quantize_dialog.cc',
204 'rc_option_editor.cc',
206 'region_gain_line.cc',
207 'region_layering_order_editor.cc',
208 'region_selection.cc',
212 'route_group_dialog.cc',
213 'route_group_menu.cc',
214 'route_params_ui.cc',
215 'route_processor_selection.cc',
216 'route_time_axis.cc',
219 'search_path_option.cc',
222 'session_close_dialog.cc',
224 'session_dialog.logic.cc',
225 'session_lock_dialog.cc',
226 'session_import_dialog.cc',
227 'session_metadata_dialog.cc',
228 'session_option_editor.cc',
230 'shuttle_control.cc',
231 'soundcloud_export_selector.cc',
237 'stereo_panner_editor.cc',
239 'strip_silence_dialog.cc',
241 'tape_region_view.cc',
246 'time_axis_view_item.cc',
250 'tracks_control_panel.cc',
251 'tracks_control_panel.logic.cc',
252 'track_selection.cc',
253 'track_view_list.cc',
254 'transpose_dialog.cc',
259 'visibility_group.cc',
260 'volume_controller.cc',
262 # video-timeline related sources:
263 'video_image_frame.cc',
264 'add_video_dialog.cc',
265 'editor_videotimeline.cc',
268 'transcode_ffmpeg.cc',
269 'transcode_video_dialog.cc',
270 'video_server_dialog.cc',
272 'export_video_dialog.cc',
273 'export_video_infobox.cc'
275 if sys.platform == 'darwin':
276 gtk2_ardour_sources.append('open_file_dialog.mm')
277 elif sys.platform == 'win32' or sys.platform == 'msvc':
279 gtk2_ardour_sources.append('open_file_dialog_windows.cc')
281 gtk2_ardour_sources.append('open_file_dialog_nix.cc')
284 autowaf.set_options(opt)
288 conf.load('compiler_cxx')
289 autowaf.build_version_files(
290 path_prefix + 'version.h',
291 path_prefix + 'version.cc',
292 'gtk2_ardour', conf.env['MAJOR'], conf.env['MINOR'], conf.env['MICRO'],
294 autowaf.configure(conf)
296 # TODO: Insert a sanity check for on OS X to ensure CoreAudio is present
298 autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F',
300 autowaf.check_pkg(conf, 'flac', uselib_store='FLAC',
301 atleast_version='1.2.1')
302 autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD',
303 atleast_version='2.10.1')
304 autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK',
305 atleast_version='2.18')
306 autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM',
307 atleast_version='2.18')
308 autowaf.check_pkg(conf, 'ogg', uselib_store='OGG', atleast_version='1.1.2')
309 autowaf.check_pkg(conf, 'x11', uselib_store='X11', atleast_version='1.1', mandatory=False)
310 autowaf.check_pkg(conf, 'fontconfig', uselib_store='FONTCONFIG')
312 conf.write_config_header('gtk2ardour-config.h', remove=False)
315 autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp')
316 autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp')
318 # Add a waf `feature' to allow compilation of things using winegcc
319 from waflib.TaskGen import feature
321 def set_winegcc(self):
322 self.env.LINK_CXX = self.env.LINK_CC = 'wineg++'
323 self.env.CC = 'winegcc'
325 def _doPyp(infileName, deps = False):
328 re_spaces = re.compile("\s+")
330 if infileName == '-':
333 fd = open(infileName)
334 inLines = fd.readlines()
340 bits = re_spaces.split(line)
341 if bits[0] == '##include':
346 # assume included file comes from same place as source file
347 incName = os.path.join (os.path.dirname (infileName), incName);
348 outStr += _doPyp(incName)
359 def include_processor(task):
360 infileName = task.inputs[0].srcpath()
361 outfileName = os.path.join(out, task.outputs[0].bldpath())
362 fdOut = open (outfileName, "w")
363 fdOut.write (_doPyp(infileName))
367 def build_color_scheme(path, prefix):
371 if re.search ('^#@color', line):
372 line.strip() # remove newline
374 if len(color_scheme):
376 color_scheme += prefix
378 color_scheme += words[1]
380 color_scheme += words[2]
386 VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
388 if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
389 # Windows VST support w/wine
390 # If we require VST support we build a stub main() and the FST library
391 # here using winegcc, and link it to the GTK front-end library
392 obj = bld (features = 'cxx c cxxprogram wine')
394 '../libs/fst/vstwin.c',
398 # XXX do we really need to explicitly link to all of these for the wine executable?
400 obj.use = [ 'libpbd',
410 obj.target = bld.env['EXECUTABLE_NAME'] + '.exe.so'
411 obj.includes = [ '../libs/fst', '.' ]
412 obj.linkflags = ['-mwindows', '-Wl,--export-dynamic']
413 obj.defines = ['_POSIX_SOURCE', 'USE_WS_PREFIX']
414 obj.install_path = bld.env['LIBDIR']
415 # end of the wine executable
417 # now the shared library containing the GTK GUI for ardour
418 obj = bld (features = 'cxx c cxxshlib')
419 obj.source = gtk2_ardour_sources
420 obj.includes = [ '../libs/fst', '.' ]
421 obj.name = 'libgtk2_ardour'
422 obj.target = 'gtk2_ardour'
424 # just the normal executable version of the GTK GUI
425 # this gets installed in LIBDIR/DLLDIR and is invoked
426 # by a startup script from BINDIR.
428 # SEE COMMENTS REGARDING EXECUTABLE/EXECUTABLE_NAME IN
429 # THE SETUP OF wrapper_subst_dict BELOW.
431 # bld.env['EXECUTABLE_NAME'] IS THE TARGET NAME OF
432 # A subst-PROCESSED SCRIPT, NOT A BINARY PROGRAM.
434 # NEITHER DEVELOPERS NOR USERS INVOKE THE BINARY
435 # TARGET BUILT HERE DIRECTLY, NOR DOES THIS NAME
436 # CONTROL THE BINARY NAME IN A RELEASE PACKAGE
438 obj = bld (features = 'cxx c cxxprogram')
439 obj.source = gtk2_ardour_sources
440 if sys.platform == 'win32' :
441 obj.target = bld.env['EXECUTABLE_NAME']
443 obj.target = bld.env['EXECUTABLE_NAME'] + '-' + str(bld.env['VERSION'])
445 obj.ldflags = ['-no-undefined']
447 if bld.is_defined('WINDOWS_VST_SUPPORT'):
448 # Windows VST support mingw
449 obj.source += [ '../vst/winmain.c' ]
450 obj.includes += [ '../libs/fst' ]
452 # at this point, "obj" refers to either the normal native executable
453 # OR the shared library built for use with wine on linux.
455 obj.use = [ 'libpbd',
465 'PACKAGE="' + I18N_PACKAGE + '"',
466 'VERSIONSTRING="' + str (bld.env['VERSION']) + '"',
467 'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
468 'CONFIG_DIR="' + os.path.normpath(bld.env['CONFDIR']) + '"',
469 'LOCALEDIR="' + os.path.join(os.path.normpath(bld.env['DATADIR']), 'locale') + '"',
471 obj.install_path = bld.env['DLLDIR']
472 obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL'
473 obj.uselib += ' GTKMM CANVAS FFTW3F'
474 obj.uselib += ' AUDIOUNITS OSX GTKOSX LO '
475 obj.uselib += ' TAGLIB '
477 if sys.platform == 'darwin':
478 obj.uselib += ' AUDIOUNITS OSX GTKOSX'
479 obj.use += ' libappleutility'
480 obj.source += [ 'cocoacarbon.mm', 'bundle_env_cocoa.cc' ]
481 elif bld.env['build_target'] == 'mingw':
482 obj.source += [ 'bundle_env_mingw.cc' ]
483 obj.lib = 'comdlg32 Shell32'
485 obj.source += [ 'bundle_env_linux.cc' ]
487 obj.includes += ['../libs']
489 if bld.env['build_target'] == 'mingw':
490 if bld.env['DEBUG'] == False:
491 obj.linkflags = ['-mwindows']
493 if bld.is_defined('HAVE_SUIL'):
494 obj.source += [ 'lv2_plugin_ui.cc' ]
495 obj.use += [ 'SUIL' ]
497 if bld.is_defined('NEED_INTL'):
498 obj.linkflags = ' -lintl'
500 if bld.is_defined('WINDOWS_VST_SUPPORT'):
501 obj.source += [ 'windows_vst_plugin_ui.cc' ]
502 obj.defines += [ 'WINDOWS_VST_SUPPORT' ]
503 if bld.env['build_target'] != 'mingw':
506 if bld.is_defined('LXVST_SUPPORT'):
507 obj.source += [ 'linux_vst_gui_support.cc', 'lxvst_plugin_ui.cc' ]
508 obj.defines += [ 'LXVST_SUPPORT' ]
511 if bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT'):
512 obj.source += [ 'vst_plugin_ui.cc' ]
514 if bld.is_defined('PHONE_HOME'):
515 obj.defines += [ 'PHONE_HOME' ]
517 if bld.is_defined('HAVE_COREAUDIO'):
518 TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc']
519 obj.use += ' libappleutility '
521 if bld.is_defined('AUDIOUNIT_SUPPORT'):
522 obj.source += [ 'au_pluginui.mm' ]
526 wrapper_subst_dict = {
527 'INSTALL_PREFIX' : bld.env['PREFIX'],
528 'LIBDIR' : os.path.normpath(bld.env['LIBDIR']),
529 'DATADIR' : os.path.normpath(bld.env['DATADIR']),
530 'CONFDIR' : os.path.normpath(bld.env['CONFDIR']),
531 'LIBS' : 'build/libs',
532 'VERSION' : bld.env['VERSION'],
534 # THIS IS **** NOT *** THE NAME OF THE EXECUTABLE
535 # THAT GETS PACKAGED FOR RELEASE. IT IS THE NAME OF THE EXECUTABLE
536 # THAT EXISTS IMMEDIATELY AFTER WAF HAS FINISHED BUILDING.
538 # this is for ardev and friends and refers to the executable
539 # that can be found in the build tree.
540 'EXECUTABLE' : 'build/gtk2_ardour/' + bld.env['EXECUTABLE_NAME'] + '-' + str (bld.env['VERSION']),
542 # THIS IS ALSO **** NOT *** THE NAME OF THE EXECUTABLE THAT GETS
543 # PACKAGED FOR RELEASE. IT IS THE NAME THE EXECUTABLE WOULD BE
544 # INSTALLED AS IF YOU USED "./waf install"
546 # this is for the script installed by ./waf install
547 'EXECUTABLE_NAME' : bld.env['EXECUTABLE_NAME'],
549 # THE NAME OF THE EXECUTABLE SEEN BY USERS IS DETERMINED *** ONLY ****
550 # IN THE PACKAGING SCRIPTS FOR A GIVEN PLATFORM (tools/*_packaging/....)
552 # THERE ARE TWO "EXECUTABLES" BUILT BY WAF
554 # * a binary executable
555 # * a script required to run the executable
557 # LIKEWISE, WHEN PACKAGED, THERE ARE TWO "EXECUTABLES" INCLUDED:
559 # * a binary executable
560 # * a script or some other startup mechanism that sets various required
561 # environment variables and related stuff before running the executable
563 # IF YOU NEED TO RENAME THE EXECUTABLE CONTAINED IN THE PACKAGE, MODIFY THE PACKAGING
564 # SCRIPT. DO NOT RENAME THE EXECUTABLE HERE WITHOUT MODIFYING ardev_common_sh.in
565 # AND ENSURING THAT THE STARTUP SCRIPT AND BINARY EXECUTABLE HAVE DIFFERENT NAMES
567 # THE "EXECUTABLE" INVOKED BY USERS IS THE *** STARTUP SCRIPT *** AND NOT THE
570 # c.f Firefox, Thunderbird, GIMP, Inkscape and others that use the same approach.
573 def set_subst_dict(obj, dict):
575 setattr(obj, i, dict[i])
577 obj = bld(features = 'subst', rule= 'chmod 0755 ${TGT}')
578 obj.source = 'ardev_common.sh.in'
579 obj.target = 'ardev_common_waf.sh'
580 obj.chmod = Utils.O755
581 obj.dict = wrapper_subst_dict
582 set_subst_dict(obj, wrapper_subst_dict)
585 # This is the startup script that gets installed in BINDIR
586 # and sets up the environment at runtime before invoking
587 # the executable built and installed in LIBDIR/DLLDIR
589 obj = bld(features = 'subst')
590 obj.source = 'ardour.sh.in'
591 obj.target = bld.env['EXECUTABLE_NAME']
592 obj.chmod = Utils.O755
593 obj.dict = wrapper_subst_dict
594 obj.install_path = bld.env['BINDIR']
595 set_subst_dict(obj, wrapper_subst_dict)
597 if bld.is_defined('WINDOWS_VST_SUPPORT'):
598 obj = bld(features = 'subst')
599 obj.source = '../vst/ardourvst.in'
601 # need to hack this name across products
603 obj.target = 'ardourvst3'
604 obj.chmod = Utils.O755
605 obj.dict = wrapper_subst_dict
606 obj.install_path = bld.env['BINDIR']
607 set_subst_dict(obj, wrapper_subst_dict)
611 dark_rc_subst_dict = {}
612 light_rc_subst_dict = {}
618 if bld.is_defined('GTKOSX'): # OS X fonts
632 # There is no acceptable monospace font available on older versions of OS X
633 # and no API on those versions to load TTF files that will work with
634 # GTK/fontconfig/pango.
636 # In addition, the ArdourMono font gets clipped for some reason on OS X
638 # Moreover, Lucida Grande just seems to work even though it is not monospace
642 'MONOSPACE' : 'Lucida Grande',
644 else: # Linux/X11 fonts
645 basefont = '' # unspecified - use system defaults
658 'MONOSPACE' : 'ArdourMono',
661 # Set up font substitution dictionary
663 for style in ['', 'BOLD', 'ITALIC']:
664 for sizename,points in iter(font_sizes.items()):
666 key = "_".join (['FONT',style,sizename])
667 fontstyle = " ".join ([basefont,style.lower(),points])
669 key = "_".join (['FONT',sizename])
670 fontstyle = " ".join ([basefont,points])
672 dark_rc_subst_dict[key] = fontstyle
673 light_rc_subst_dict[key] = fontstyle
674 ui_conf_dict[key] = points
677 for sizename,points in iter(font_sizes.items()):
678 key = "_".join (['FONT_SIZE',sizename])
679 dark_rc_subst_dict[key] = points
680 light_rc_subst_dict[key] = points
681 ui_conf_dict[key] = points
683 # various font names, eg @BOLD_MONOSPACE@
684 for font_sym,text in iter(font_names.items()):
686 dark_rc_subst_dict[key] = text
687 light_rc_subst_dict[key] = text
688 ui_conf_dict[key] = text
691 dark_rc_subst_dict['COLOR_SCHEME'] = build_color_scheme(
692 'gtk2_ardour/ui_dark.rc.in', 'ARDOUR_DARK')
693 dark_rc_subst_dict['COLPREFIX'] = 'ARDOUR_DARK'
694 light_rc_subst_dict['COLOR_SCHEME'] = build_color_scheme(
695 'gtk2_ardour/ui_light.rc.in', 'ARDOUR_LIGHT')
696 light_rc_subst_dict['COLPREFIX'] = 'ARDOUR_LIGHT'
698 obj = bld(features = 'subst')
699 obj.source = [ 'ui_dark.rc.in' ]
700 obj.target = 'ui_dark.rc.pre'
701 obj.install_path = None
702 set_subst_dict(obj, dark_rc_subst_dict)
704 obj = bld(features = 'subst')
705 obj.source = [ 'ui_light.rc.in' ]
706 obj.target = 'ui_light.rc.pre'
707 obj.install_path = None
708 set_subst_dict(obj, light_rc_subst_dict)
710 obj = bld(features = 'subst')
711 obj.source = [ 'styles.rc.in' ]
712 obj.target = 'dark_styles.rc'
713 obj.install_path = None
714 set_subst_dict(obj, dark_rc_subst_dict)
716 obj = bld(features = 'subst')
717 obj.source = [ 'styles.rc.in' ]
718 obj.target = 'light_styles.rc'
719 obj.install_path = None
720 set_subst_dict(obj, light_rc_subst_dict)
722 obj = bld(features = 'subst')
723 obj.source = [ 'fonts.rc.in' ]
724 obj.target = 'dark_fonts.rc'
725 obj.install_path = None
726 set_subst_dict(obj, dark_rc_subst_dict)
728 obj = bld(features = 'subst')
729 obj.source = [ 'fonts.rc.in' ]
730 obj.target = 'light_fonts.rc'
731 obj.install_path = None
732 set_subst_dict(obj, light_rc_subst_dict)
734 obj = bld(rule = copyfile)
735 obj.source = [ 'widget_list.rc' ]
736 obj.target = 'widgets.rc'
737 obj.install_path = None
739 obj = bld (rule = include_processor)
740 obj.source = [ 'ui_dark.rc.pre' ]
741 # find and add all ##include dependencies as sources
742 obj.source += _doPyp (bld.path.find_resource ('ui_dark.rc.in').srcpath(), True)
743 obj.target = 'ui_dark.rc'
744 obj.install_path = bld.env['CONFDIR']
746 obj = bld (rule = include_processor)
747 obj.source = [ 'ui_light.rc.pre' ]
748 # find and add all ##include dependencies as sources
749 obj.source += _doPyp (bld.path.find_resource ('ui_light.rc.in').srcpath(), True)
750 obj.target = 'ui_light.rc'
751 obj.install_path = bld.env['CONFDIR']
753 obj = bld(features = 'subst')
754 obj.source = [ 'default_ui_config.in' ]
755 obj.target = 'default_ui_config'
756 obj.install_path = None
757 set_subst_dict(obj, ui_conf_dict)
761 if bld.is_defined('GTKOSX'):
762 menus_argv = [ '-E', '-P', '-DGTKOSX' ]
764 menus_argv = [ '-E', '-P' ]
766 obj = bld(features = 'command-output')
768 obj.command_is_external = True
770 obj.argv = menus_argv
771 obj.dep_vars = ['GTKOSX']
773 obj.stdin = bld.env['EXECUTABLE_NAME'] + '.menus.in'
774 obj.stdout = bld.env['EXECUTABLE_NAME'] + '.menus'
775 bld.install_files(os.path.join(bld.env['CONFDIR']), obj.stdout)
779 # 'SAE-de-keypad', 'SAE-de-nokeypad', 'SAE-us-keypad',
780 # 'SAE-us-nokeypad', 'ergonomic-us'
783 # explicitly state the use of perl here so that it works on windows too
785 a_rule = 'perl ../tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap <${SRC} >${TGT}' % (sys.platform, bld.env['WINDOWS_KEY'] )
786 for b in [ 'mnemonic-us' ] :
788 target = b + '.bindings',
789 source = b + '.bindings.in',
792 obj.install_path = bld.env['CONFDIR']
794 # not modified at present
795 bld.install_files(bld.env['CONFDIR'], 'step_editing.bindings')
796 bld.install_files(bld.env['CONFDIR'], 'mixer.bindings')
799 bld.install_files(os.path.join (bld.env['DATADIR'], 'icons'), bld.path.ant_glob('icons/*.png'))
800 bld.install_files(os.path.join (bld.env['DATADIR'], 'icons', 'stereo_panner'), bld.path.ant_glob('icons/stereo_panner/*.png'))
801 bld.install_files(os.path.join (bld.env['DATADIR'], 'pixmaps'), bld.path.ant_glob('pixmaps/*.xpm'))
802 bld.install_files(os.path.join (bld.env['DATADIR'], 'ui'), bld.path.ant_glob('ui/*.*'))
803 bld.install_files(bld.env['DATADIR'], 'splash.png')
804 bld.install_files(bld.env['DATADIR'], 'small-splash.png')
805 bld.install_files(bld.env['DATADIR'], 'ArdourMono.ttf')
807 # Default UI configuration
808 bld.install_files(bld.env['CONFDIR'], 'default_ui_config')
810 # Default export stuff
811 bld.install_files(os.path.join (bld.env['CONFDIR'], 'export'), bld.path.ant_glob('export/*.format'))
814 if bld.is_defined('ENABLE_NLS'):
815 mo_files = bld.path.ant_glob('po/*.mo')
817 lang = os.path.basename(mo.srcpath()).replace('.mo', '')
818 bld.install_as(os.path.join(bld.env['PREFIX'], 'share', 'locale',
819 lang, 'LC_MESSAGES', I18N_PACKAGE + '.mo'),
823 autowaf.build_i18n(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources,
827 autowaf.build_i18n_pot(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources,
831 autowaf.build_i18n_po(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources,
835 autowaf.build_i18n_mo(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources,