MCS=mcs -g

 GNOME_PATH=-L ../art -L ../gnome
 GNOME_ASSEMBLY=-r art-sharp.dll -r gnome-sharp.dll
 GNOME_TARGETS=gnome-hello-world.exe canvas-example.exe fifteen.exe print.exe

 GLADE_PATH=-L ../glade
 GLADE_ASSEMBLY=-r glade-sharp.dll
 GLADE_TARGETS=glade-viewer.exe glade-test.exe

 VTE_PATH=-L ../vte
 VTE_ASSEMBLY=-r vte-sharp.dll
 VTE_TARGETS=vte-example.exe

local_paths=-L ../glib -L ../pango -L ../atk -L ../gdk -L ../gtk $(GNOME_PATH) $(GLADE_PATH) $(VTE_PATH)
all_assemblies=-r glib-sharp.dll -r pango-sharp.dll -r atk-sharp.dll -r gdk-sharp.dll -r gtk-sharp.dll $(GNOME_ASSEMBLY) $(GLADE_ASSEMBLY) $(VTE_ASSEMBLY) -r System.Drawing


all: linux

windows:
	$(CSC) /unsafe /out:gtk-hello-world.exe /r:../glib/glib-sharp.dll /r:../gtk/gtk-sharp.dll /r:../gdk/gdk-sharp.dll HelloWorld.cs
	$(CSC) /unsafe /out:button.exe /r:../glib/glib-sharp.dll /r:../gtk/gtk-sharp.dll ButtonApp.cs

linux: gtk-hello-world.exe button.exe calendar.exe subclass.exe menu.exe size.exe scribble.exe treeviewdemo.exe managedtreeviewdemo.exe testdnd.exe $(GNOME_TARGETS) $(GLADE_TARGETS) $(VTE_TARGETS)

	$(MAKE) -C gconf 
	$(MAKE) -C rsvg

gtk-hello-world.exe: HelloWorld.cs
	$(MCS)  -out:gtk-hello-world.exe $(local_paths) $(all_assemblies) HelloWorld.cs

gnome-hello-world.exe: GnomeHelloWorld.cs
	$(MCS)  -out:gnome-hello-world.exe $(local_paths) $(all_assemblies) GnomeHelloWorld.cs

canvas-example.exe: CanvasExample.cs
	$(MCS)  -out:canvas-example.exe $(local_paths) $(all_assemblies) CanvasExample.cs

fifteen.exe: Fifteen.cs
	$(MCS)  -out:fifteen.exe $(local_paths) $(all_assemblies) Fifteen.cs

print.exe: PrintSample.cs
	$(MCS)  -out:print.exe $(local_paths) $(all_assemblies) PrintSample.cs

button.exe: ButtonApp.cs
	$(MCS)  -out:button.exe $(local_paths) $(all_assemblies) ButtonApp.cs

calendar.exe: CalendarApp.cs
	$(MCS)  -out:calendar.exe $(local_paths) $(all_assemblies) CalendarApp.cs

subclass.exe: Subclass.cs
	$(MCS)  -out:subclass.exe $(local_paths) $(all_assemblies) Subclass.cs

menu.exe: Menu.cs
	$(MCS)  -out:menu.exe $(local_paths) $(all_assemblies) Menu.cs

size.exe: Size.cs
	$(MCS)  -out:size.exe $(local_paths) $(all_assemblies) Size.cs

scribble.exe: Scribble.cs
	$(MCS)  -out:scribble.exe $(local_paths) $(all_assemblies) Scribble.cs

treeviewdemo.exe: TreeViewDemo.cs
	$(MCS)  -out:treeviewdemo.exe $(local_paths) $(all_assemblies) TreeViewDemo.cs

managedtreeviewdemo.exe: ManagedTreeViewDemo.cs
	$(MCS)  -out:managedtreeviewdemo.exe $(local_paths) $(all_assemblies) ManagedTreeViewDemo.cs

glade-viewer.exe: GladeViewer.cs
	$(MCS)  -out:glade-viewer.exe $(local_paths) $(all_assemblies) GladeViewer.cs

glade-test.exe: GladeTest.cs test.glade
	$(MCS)  -resource:test.glade -out:glade-test.exe $(local_paths) $(all_assemblies) GladeTest.cs

cairo-sample.exe: CairoSample.cs
	$(MCS) -out:cairo-sample.exe $(local_paths) $(all_assemblies) -r:Mono.Cairo CairoSample.cs

testdnd.exe: TestDnd.cs
	$(MCS) -g --unsafe -o testdnd.exe $(local_paths) $(all_assemblies) TestDnd.cs

vte-example.exe: VteTest.cs
	$(MCS) -g --unsafe -o vte-example.exe $(local_paths) $(all_assemblies) VteTest.cs

clean:
	rm -f *.exe
	$(MAKE) -C gconf clean 
	$(MAKE) -C rsvg clean 

distclean: clean
	$(MAKE) -C rsvg distclean


unix:
	@echo "'make unix' is broken for now."

install: linux
	$(MAKE) -C gconf install 

