Import('LocalEnvironment') def build_buildconfig(target, source, env): outfilepath = str(target[0]) optionsconfpath = str(source[0]) ofile = file(outfilepath,"w") print >> ofile, "// generated by scons, do not touch" print >> ofile, "#pragma once" print >> ofile, '#define JACKER_PREFIX "%s"' % str(env.Dir("${PREFIX}")) print >> ofile, '#define JACKER_SHARE_DIR "%s"' % str(env.Dir("${PREFIX}/share/jacker")) ofile.close() env = LocalEnvironment() env.ParseConfig("pkg-config jack --cflags --libs") env.Append( CPPPATH = [ '.', ], ) env['BUILDERS'].update(dict( BuildConfig = Builder(action = build_buildconfig) )) env.BuildConfig('jacker_config.hpp', 'options.conf') gtk_env = env.Clone() gtk_env.ParseConfig("pkg-config gtkmm-2.4 --cflags --libs") gtk_env.ParseConfig("pkg-config sigc++-2.0 --cflags --libs") json_files = [ 'json/json_reader.cpp', 'json/json_value.cpp', 'json/json_writer.cpp', ] objects = env.Object(['jack.cpp', 'player.cpp', 'jsong.cpp', 'model.cpp', 'drag.cpp', ] + json_files) gtk_objects = gtk_env.Object(['main.cpp', 'songview.cpp', 'patternview.cpp', 'trackview.cpp', 'measure.cpp']) jacker = gtk_env.Program('jacker', objects + gtk_objects) env.install("${DESTDIR}${PREFIX}/bin", jacker) share_dir = "${DESTDIR}${PREFIX}/share/jacker" env.install(share_dir, "jacker.glade") env.install(share_dir, "jacker.png") env.install(share_dir, "cheatsheet.txt") env.install(share_dir, "commands.txt")