Clone in a terminal:
wscript
BIRDFONT = [
	'Allocation.vala',
	'Argument.vala',
	'Font.vala',
	'BackgroundTool.vala',
	'BackgroundSelection.vala',
	'Birdfont.vala',
	'EotWriter.vala',
	'Expander.vala',
	'ExportTool.vala',
	'FontDisplay.vala',
	'CharDatabase.vala',
	'Config.vala',
	'Context.vala',
	'CutBackgroundTool.vala',
	'CutTool.vala',
	'ClipTool.vala',
	'DropMenu.vala',
	'EditPoint.vala',
	'EditPointHandle.vala',
	'Glyph.vala',
	'GlyphBackgroundImage.vala',
	'GlyphCanvas.vala',
	'GlyphCollection.vala',
	'GlyphRange.vala',
	'GlyphTable.vala',
	'GridTool.vala',
	'Icons.vala',
	'Kerning.vala', 
	'KeyBindings.vala', 
	'Line.vala',
	'MainWindow.vala',
	'MenuAction.vala',
	'MenuTab.vala',
	'MergeTool.vala',
	'MoveTool.vala',
	'NativeWindow.vala',
	'Intersection.vala',
	'IntersectionList.vala',
	'IOThread.vala',
	'OpenFontFormatWriter.vala',
	'OpenFontFormatReader.vala',
	'OverView.vala',
	'Path.vala',
	'PenTool.vala',
	'Preview.vala',
	'ResizeTool.vala',
	'SaveDialog.vala',
	'Scrollbar.vala',
	'ShrinkTool.vala',
	'SpinButton.vala',
	'Supplement.vala',
	'Svg.vala',
	'SvgFontFormatWriter.vala',
	'Preferences.vala',
	'Tab.vala',
	'TabBar.vala',
	'TestCases.vala', 
	'TestSupplement.vala', 
	'Tool.vala',
	'Toolbox.vala',
	'TooltipArea.vala',
	'UniRange.vala',
	'VersionList.vala',
	'ZoomTool.vala',
]

PARAM = [
	'-X -D\'GETTEXT_PACKAGE="birdfont"\' '
	'--thread',
	'--disable-warnings',
	'--enable-experimental',
	'--enable-experimental-non-null',
	'--vapidir=./',
]

def build (bld):

	bld.shlib (
		target        = 'birdfont',
		param         = PARAM,
		packages      = 'libxml-2.0',
		uselib        = 'CAIRO GLIB GIO PIXBUF XML',
		source        = BIRDFONT,
		name          = "libbirdfont",
	)

	bld (
		rule          = "mv src/birdfont.h ./",
		depends       = "libbirdfont",
		name          = "birdfont_h"
	)
	
	bld (
		rule = 'valac -C ./src/birdfont.vapi ../src/Main.vala ../src/GtkWindow.vala -X ../build/src/libbirdfont.so -X ./birdfont.h --pkg gtk+-2.0 --pkg libxml-2.0 --pkg gdk-2.0 --pkg webkit-1.0',
		name = 'main_c',
		source  = ['../src/Main.vala', '../src/GtkWindow.vala'],
		target = '../Main.c',
		depends = 'libbirdfont'
	)

	bld (
		rule = "valac -C ./src/birdfont.vapi ../src/BirdfontExport.vala -X ../build/src/libbirdfont.so -X ./birdfont.h --pkg gtk+-2.0 --pkg libxml-2.0 --pkg gdk-2.0 --pkg webkit-1.0",
		depends = 'libbirdfont',
		target = '../BirdfontExport.c',
		name = 'birdfont_export'
	)

	bld (
		rule = """gcc ../build/Main.c ../build/GtkWindow.c \
				-D 'GETTEXT_PACKAGE="birdfont"' \
				-I ../build/ -I ../build/src -L ../build/src -l birdfont \
				-o ${TGT} \
				$(pkg-config --cflags --libs glib-2.0) \
				$(pkg-config --cflags --libs libxml-2.0) \
				$(pkg-config --cflags --libs gio-2.0) \
				$(pkg-config --cflags --libs libsoup-2.4) \
				$(pkg-config --cflags --libs gtk+-2.0) \
				$(pkg-config --cflags --libs webkit-1.0)""",
		source  = ['../Main.c'],
		target  = 'birdfont',
		depends = 'main_c'
	)

	bld (
		rule = 'gcc  ../build/BirdfontExport.c -I../build/ -L  ../build/src -l birdfont -o ${TGT} \
				$(pkg-config --cflags --libs glib-2.0) \
				$(pkg-config --cflags --libs libxml-2.0) \
				$(pkg-config --cflags --libs gio-2.0) \
				$(pkg-config --cflags --libs libsoup-2.4) \
				$(pkg-config --cflags --libs gtk+-2.0) \
				$(pkg-config --cflags --libs webkit-1.0)',
		source  = ['../BirdfontExport.c'],
		target  = 'birdfont-export',
		depends = 'birdfont_export'
	)

	bld.install_files('${PREFIX}/bin/', ['../build/src/birdfont'], chmod=755)
	bld.install_files('${PREFIX}/bin/', ['../build/src/birdfont-export'], chmod=755)

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112