matthiasm@0: matthiasm@0: PLUGIN_EXT ?= .so matthiasm@0: matthiasm@0: CXX ?= g++ matthiasm@0: CC ?= gcc matthiasm@0: matthiasm@0: CFLAGS := $(CFLAGS) matthiasm@0: CXXFLAGS := -I. $(CXXFLAGS) matthiasm@0: matthiasm@1: PLUGIN := pyin$(PLUGIN_EXT) matthiasm@0: matthiasm@36: SOURCES := PYinVamp.cpp \ matthiasm@35: YinVamp.cpp \ matthiasm@31: LocalCandidatePYIN.cpp \ matthiasm@49: YinVampFreqConstrained.cpp \ matthiasm@0: Yin.cpp \ matthiasm@0: YinUtil.cpp \ matthiasm@0: MonoNote.cpp \ matthiasm@0: MonoPitch.cpp \ matthiasm@0: MonoNoteParameters.cpp \ matthiasm@0: SparseHMM.cpp \ matthiasm@0: MonoNoteHMM.cpp \ matthiasm@0: MonoPitchHMM.cpp \ matthiasm@0: matthiasm@0: PLUGIN_MAIN := libmain.cpp matthiasm@0: matthiasm@0: TESTS := test/test-meanfilter \ matthiasm@0: test/test-fft \ matthiasm@0: test/test-yin \ matthiasm@0: test/test-mononote matthiasm@0: matthiasm@0: OBJECTS := $(SOURCES:.cpp=.o) matthiasm@0: OBJECTS := $(OBJECTS:.c=.o) matthiasm@0: matthiasm@0: PLUGIN_OBJECTS := $(OBJECTS) $(PLUGIN_MAIN:.cpp=.o) matthiasm@0: matthiasm@0: all: $(PLUGIN) $(TESTS) matthiasm@0: for t in $(TESTS); do echo "Running $$t"; ./"$$t" || exit 1; done matthiasm@0: matthiasm@0: plugin: $(PLUGIN) matthiasm@0: matthiasm@0: $(PLUGIN): $(PLUGIN_OBJECTS) matthiasm@0: $(CXX) -o $@ $^ $(PLUGIN_LDFLAGS) matthiasm@0: matthiasm@0: test/test-meanfilter: test/TestMeanFilter.o $(OBJECTS) matthiasm@0: $(CXX) -o $@ $^ $(TEST_LDFLAGS) matthiasm@0: matthiasm@0: test/test-fft: test/TestFFT.o $(OBJECTS) matthiasm@0: $(CXX) -o $@ $^ $(TEST_LDFLAGS) matthiasm@0: matthiasm@0: test/test-yin: test/TestYin.o $(OBJECTS) matthiasm@0: $(CXX) -o $@ $^ $(TEST_LDFLAGS) matthiasm@0: matthiasm@0: test/test-mononote: test/TestMonoNote.o $(OBJECTS) matthiasm@0: $(CXX) -o $@ $^ $(TEST_LDFLAGS) matthiasm@0: matthiasm@0: clean: matthiasm@0: rm -f $(PLUGIN_OBJECTS) test/*.o matthiasm@0: matthiasm@0: distclean: clean matthiasm@0: rm -f $(PLUGIN) $(TESTS) matthiasm@0: matthiasm@0: depend: matthiasm@0: makedepend -Y -fMakefile.inc *.cpp test/*.cpp *.h test/*.h matthiasm@0: matthiasm@0: # DO NOT DELETE matthiasm@0: matthiasm@36: PYinVamp.o: PYinVamp.h matthiasm@35: YinVamp.o: YinVamp.h matthiasm@49: YinVampFreqConstrained.o: YinVampFreqConstrained.h matthiasm@31: LocalCandidatePYIN.o: LocalCandidatePYIN.h matthiasm@0: Yin.o: Yin.h matthiasm@0: MonoNoteParameters.o: MonoNoteParameters.h matthiasm@0: MonoNote.o: MonoNote.h matthiasm@0: MonoPitch.o: MonoPitch.h matthiasm@0: MonoPitchHMM.o: MonoPitchHMM.h matthiasm@0: SparseHMM.o: SparseHMM.h matthiasm@0: MonoNoteHMM.o: MonoNoteHMM.h matthiasm@36: libmain.o: PYinVamp.h YinVamp.h LocalCandidatePYIN.h matthiasm@0: test/TestMeanFilter.o: MeanFilter.h matthiasm@0: test/TestYin.o: Yin.h matthiasm@0: