### STK demo Makefile - for various flavors of unix

PROGRAMS = demo
RM = /bin/rm
SRC_PATH = ../../src
OBJECT_PATH = Release
vpath %.o $(OBJECT_PATH)

OBJECTS	=	Stk.o Noise.o SubNoise.o Envelope.o ADSR.o \
					WvIn.o WaveLoop.o WvOut.o \
					Filter.o OneZero.o OnePole.o PoleZero.o TwoZero.o \
					BiQuad.o FormSwep.o Delay.o DelayL.o DelayA.o \
					ReedTabl.o JetTabl.o BowTabl.o \
					Reverb.o PRCRev.o \
					Modulate.o SingWave.o Voicer.o \
					Vector3D.o Sphere.o \
					\
					Instrmnt.o Clarinet.o BlowHole.o Saxofony.o Flute.o Brass.o BlowBotl.o \
					Bowed.o Plucked.o StifKarp.o Sitar.o PluckTwo.o Mandolin.o Mesh2D.o \
					FM.o Rhodey.o Wurley.o TubeBell.o HevyMetl.o PercFlut.o BeeThree.o FMVoices.o \
					Sampler.o Moog.o Simple.o Drummer.o Shakers.o \
					Modal.o ModalBar.o BandedWG.o Resonate.o VoicForm.o Phonemes.o Whistle.o \
					\
					Messager.o SKINI.o utilities.o

INCLUDE = 
ifeq ($(strip $(INCLUDE)), )
	INCLUDE = ../../include
endif
vpath %.h $(INCLUDE)

CC       = g++
DEFS     = 
DEFS    += 
CFLAGS   = -O2
CFLAGS  += -Wall -g -I$(INCLUDE)
LIBRARY = -lstdc++ -lpthread -lm 
LIBRARY += -framework CoreAudio -framework CoreMIDI -framework CoreFoundation

REALTIME = yes
ifeq ($(REALTIME),yes)
	OBJECTS += RtMidi.o RtAudio.o RtWvOut.o Thread.o Socket.o
	DEFS    += -D__MACOSX_CORE__
	DEFS    += 
endif

RAWWAVES = 
ifeq ($(strip $(RAWWAVES)), )
	RAWWAVES = ../../rawwaves/
endif
DEFS    += -DRAWWAVE_PATH=\"$(RAWWAVES)\"

%.o : $(SRC_PATH)/%.cpp
	$(CC) $(CFLAGS) $(DEFS) -c $(<) -o $(OBJECT_PATH)/$@

all : $(PROGRAMS)

demo: demo.cpp $(OBJECTS)
	$(CC) $(CFLAGS) $(DEFS) -o demo demo.cpp $(OBJECT_PATH)/*.o $(LIBRARY)

Md2Skini: Md2Skini.cpp Stk.o RtMidi.o Thread.o Socket.o
	$(CC) $(CFLAGS) $(DEFS) -o Md2Skini Md2Skini.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/RtMidi.o $(OBJECT_PATH)/Thread.o $(OBJECT_PATH)/Socket.o $(LIBRARY)

$(OBJECTS) : Stk.h

clean : 
	-rm $(OBJECT_PATH)/*.o
	-rm $(PROGRAMS)

strip : 
	strip $(PROGRAMS)

# Project specific objects:

utilities.o: utilities.cpp
	$(CC) $(CFLAGS) $(DEFS) -c utilities.cpp -o $(OBJECT_PATH)/$@
