ASSEMBLY_SOURCES=Song.cs Device.cs
ASSEMBLY_RESOURCES=
MCS=$(shell which gmcs)
MCS_FLAGS = -debug

ifeq ($(MCS),)
	HAS_MONO=
else
	HAS_MONO=true
endif

ifdef HAS_MONO
	ASSEMBLY=karma-sharp.dll
else
	ASSEMBLY=
	PRINT = Note: mcs not found, not building karma-sharp!
endif

all: $(ASSEMBLY)
	@echo $(PRINT)


karma-sharp.pc: FORCE
	sed -e 's,@prefix@,$(PREFIX),g; s,@VERSION@,$(VERSION),g' \
	karma-sharp.pc.in > karma-sharp.pc

ifdef HAS_MONO
install: $(ASSEMBLY) karma-sharp.pc $(ASSEMBLY).config
	../install-sh -d $(DESTDIR)$(PREFIX)/lib/karma-sharp
	../install-sh -d $(DESTDIR)$(PREFIX)/lib/pkgconfig
	../install-sh -t $(DESTDIR)$(PREFIX)/lib/karma-sharp $(ASSEMBLY) $(ASSEMBLY).config
	../install-sh -t $(DESTDIR)$(PREFIX)/lib/pkgconfig -m 0644 karma-sharp.pc
else
install:

endif

uninstall: FORCE
	$(RM) -r $(PREFIX)/lib/karma-sharp
	$(RM) $(PREFIX)/lib/pkgconfig/karma-sharp.pc

$(ASSEMBLY): $(ASSEMBLY_SOURCES) $(ASSEMBLY_RESOURCES)
	$(MCS) $(MCS_FLAGS) -unsafe -target:library -out:$@ $(ASSEMBLY_SOURCES) $(ASSEMBLY_RESOURCES:%=-resource:%) -r:Mono.Posix

clean: FORCE
	$(RM) *.dll *.mdb karma-sharp.pc

FORCE:
