CPP  = g++
APPNAME = MIDItrk
EXECUTABLE = $(APPNAME)
SOURCES = $(EXECUTABLE).cpp RtMidi.cpp
REMOVE = rm -f
COPY = cp -f
MD = mkdir
LN = ln -s -f
ICON = MIDITRKicon.xpm
MENUENTRY = $(EXECUTABLE).desktop
BINDIR = ..
APPDIR = /usr/local/bin
#APPDIR2=/usr/local/apps/$(APPNAME1)
APPDIR3=/opt/$(APPNAME)
ICONDIR = /usr/share/icons
MENUDIR = /usr/share/applications
EXAMPLEDIR=examples

.PHONY: all all-before all-after clean install

all: all-before $(EXECUTABLE) all-after

$(EXECUTABLE): $(EXECUTABLE).cpp
	$(CPP) $(SOURCES) -o $(BINDIR)/$(EXECUTABLE) -D__LINUX_ALSA__ -lasound -lpthread `sdl-config --libs` -Wno-write-strings #-g
#for Linux (ALSA): g++ -Wall -D__LINUX_ALSA__ -o midiprobe midiprobe.cpp RtMidi.cpp -lasound -lpthread
#for Jack (Linux/OSX): g++ -Wall -D__UNIX_JACK__ -o midiprobe midiprobe.cpp RtMidi.cpp -ljack
#for OSX: g++ -Wall -D__MACOSX_CORE__ -o midiprobe midiprobe.cpp RtMidi.cpp -framework CoreMIDI -framework CoreAudio -framework CoreFoundation

#aid to convert binaries into array (e.g. charset/bitmap/etc.):
bin2array: bin2array.c
	$(CPP) bin2array.c -o bin2array


clean:
	$(REMOVE) $(ICONDIR)/$(ICON)
	$(REMOVE) $(MENUDIR)/$(MENUENTRY)
	$(REMOVE) $(BINDIR)/$(EXECUTABLE)
	$(REMOVE) $(APPDIR)/$(EXECUTABLE)
	$(REMOVE) $(APPDIR3)/$(EXECUTABLE)
	$(REMOVE) -R $(APPDIR3)/$(EXAMPLEDIR)

install:
	$(COPY) $(ICON) $(ICONDIR)
	$(COPY) $(MENUENTRY) $(MENUDIR)
	$(MD) -p $(APPDIR3)
	$(COPY) $(BINDIR)/$(EXECUTABLE) $(APPDIR3)
	chown 777 $(APPDIR3)/$(EXECUTABLE)
	$(LN) $(APPDIR3)/$(EXECUTABLE) $(APPDIR)/$(EXECUTABLE)
	$(COPY) -R ../$(EXAMPLEDIR) $(APPDIR3)/$(EXAMPLEDIR)