added tuning knob
[nekobee.git] / wscript
blob6ed171ea8c44ee3ccb356346872969a07d03468e
1 #! /usr/bin/env python
2 # encoding: utf-8
4 import os
6 # the following two variables are used by the target "waf dist"
7 VERSION='0.2'
8 APPNAME='nekobee'
10 # these variables are mandatory ('/' are converted automatically)
11 srcdir = '.'
12 blddir = 'build'
14 def set_options(opt):
15 opt.tool_options('compiler_cc')
16 #opt.tool_options('lv2plugin', tooldir='.')
18 def configure(conf):
19 conf.check_tool('compiler_cc')
20 #conf.check_tool('lv2plugin', tooldir='.')
22 conf.check_cfg(package='dssi', args='--cflags --libs')
23 conf.check_cfg(package='lv2core', args='--cflags --libs')
24 conf.check_cfg(package='liblo', args='--cflags --libs')
25 conf.check_cfg(package='gtk+-2.0', args='--cflags --libs')
27 conf.env['DSSI_DIR'] = os.path.normpath(os.path.join(conf.env['PREFIX'], 'lib', 'dssi'))
28 conf.env['INSTALL_DIR'] = os.path.join(conf.env['DSSI_DIR'], 'nekobee')
29 conf.env['LV2_DIR'] = os.path.normpath(os.path.join(conf.env['PREFIX'], 'lib', 'lv2', 'nekobee.lv2'))
31 conf.define('INSTALL_DIR', conf.env['INSTALL_DIR'])
32 conf.write_config_header('config.h')
34 # /usr/lib/dssi/nekobee.la
35 # /usr/lib/dssi/nekobee.so
36 # /usr/lib/dssi/nekobee/bg.png
37 # /usr/lib/dssi/nekobee/knob.png
38 # /usr/lib/dssi/nekobee/nekobee_gtk
39 # /usr/lib/dssi/nekobee/newknob.png
40 # /usr/lib/dssi/nekobee/slider.png
41 # /usr/lib/dssi/nekobee/switch.png
42 # /usr/lib/lv2/nekobee.lv2/bg.png
43 # /usr/lib/lv2/nekobee.lv2/lv2_ui_dssi.la
44 # /usr/lib/lv2/nekobee.lv2/lv2_ui_dssi.so
45 # /usr/lib/lv2/nekobee.lv2/manifest.ttl
46 # /usr/lib/lv2/nekobee.lv2/nekobee.so
47 # /usr/lib/lv2/nekobee.lv2/nekobee.ttl
48 # /usr/lib/lv2/nekobee.lv2/nekobee_gtk
49 # /usr/lib/lv2/nekobee.lv2/newknob.png
50 # /usr/lib/lv2/nekobee.lv2/slider.png
53 def build(bld):
54 # DSSI plugin
55 plugin_dssi = bld.new_task_gen('cc', 'shlib')
56 plugin_dssi.env['shlib_PATTERN'] = '%s.so'
57 plugin_dssi.env.append_value("LINKFLAGS", "-module -avoid-version -Wc,-nostartfiles")
58 plugin_dssi.includes = ['.', 'src']
59 plugin_dssi.defines = 'HAVE_CONFIG_H'
60 plugin_dssi.source = [
61 'src/nekobee-dssi.c',
62 'src/nekobee_data.c',
63 'src/nekobee_ports.c',
64 'src/nekobee_synth.c',
65 'src/nekobee_voice.c',
66 'src/nekobee_voice_render.c',
67 'src/minblep_tables.c',
69 plugin_dssi.target = 'nekobee'
70 plugin_dssi.install_path = '${DSSI_DIR}/'
71 bld.install_files('${INSTALL_DIR}', 'extra/*')
73 # DSSI UI executable
74 gui_gtk = bld.new_task_gen('cc', 'program')
75 gui_gtk.includes = ['.', 'src', 'src/gtk']
76 gui_gtk.defines = 'HAVE_CONFIG_H'
77 gui_gtk.source = [
78 'src/gtk/callbacks.c',
79 'src/gtk/data.c',
80 'src/gtk/interface.c',
81 'src/gtk/knob.c',
82 'src/gtk/slider.c',
83 'src/gtk/main.c',
84 'src/nekobee_data.c',
85 'src/nekobee_ports.c',
87 gui_gtk.uselib = 'GTK+-2.0 LIBLO'
88 gui_gtk.target = 'nekobee_gtk'
89 gui_gtk.install_path = '${INSTALL_DIR}/'
91 # LV2 plugin
92 plugin_lv2 = bld.new_task_gen('cc', 'shlib')
93 plugin_lv2.env['shlib_PATTERN'] = '%s.so'
94 plugin_lv2.env.append_value("LINKFLAGS", "-module -avoid-version -Wc,-nostartfiles")
95 plugin_lv2.includes = ['.', 'src']
96 plugin_lv2.defines = ['HAVE_CONFIG_H', 'USE_LV2']
97 plugin_lv2.source = [
98 'src/nekobee-dssi.c',
99 'src/nekobee_data.c',
100 'src/nekobee_ports.c',
101 'src/nekobee_synth.c',
102 'src/nekobee_voice.c',
103 'src/nekobee_voice_render.c',
104 'src/minblep_tables.c',
106 plugin_lv2.target = 'nekobee'
107 plugin_lv2.install_path = '${LV2_DIR}/'
108 bld.install_files('${LV2_DIR}', 'src/*.ttl')
109 bld.install_files('${LV2_DIR}', 'extra/*')
111 # LV2 UI wrapper library
112 lv2_ui_dssi = bld.new_task_gen('cc', 'shlib')
113 lv2_ui_dssi.env['shlib_PATTERN'] = '%s.so'
114 #lv2_ui_dssi.env.append_value("LINKFLAGS", "-module -avoid-version -Wc,-nostartfiles")
115 lv2_ui_dssi.includes = ['.', 'src']
116 lv2_ui_dssi.defines = ['HAVE_CONFIG_H', "UI_EXECUTABLE='\"nekobee_gtk\"'", "UI_URI='\"http://nekosynth.co.uk/wiki/nekobee-dssi-gui\"'"]
117 lv2_ui_dssi.source = [
118 'src/lv2_ui_dssi.c',
120 lv2_ui_dssi.uselib = 'LIBLO'
121 lv2_ui_dssi.target = 'lv2_ui_dssi'
122 lv2_ui_dssi.install_path = '${LV2_DIR}/'
124 # LV2 UI executable
125 gui_gtk = bld.new_task_gen('cc', 'program')
126 gui_gtk.includes = ['.', 'src', 'src/gtk']
127 gui_gtk.defines = 'HAVE_CONFIG_H'
128 gui_gtk.source = [
129 'src/gtk/callbacks.c',
130 'src/gtk/data.c',
131 'src/gtk/interface.c',
132 'src/gtk/knob.c',
133 'src/gtk/slider.c',
134 'src/gtk/main.c',
135 'src/nekobee_data.c',
136 'src/nekobee_ports.c',
138 gui_gtk.uselib = 'GTK+-2.0 LIBLO'
139 gui_gtk.target = 'nekobee_gtk'
140 gui_gtk.install_path = '${LV2_DIR}/'