486b4454412524698432880f6fcee327c79f7644
[vamp-aubio-plugins.git] / Makefile
1
2 # Location of Vamp SDK
3 #
4 VAMPDIR         = ../vamp-plugin-sdk
5 VAMPLIBDIR      = $(VAMPDIR)/vamp-sdk
6
7 # Location of our plugins
8 #
9 PLUGINDIR       = plugins
10
11 # Compile flags
12 #
13 CXXFLAGS        := $(CXXFLAGS) -DNDEBUG -O2 -march=pentium3 -mfpmath=sse -ffast-math -Wall -I$(VAMPDIR) -I.
14
15 # Libraries required for the plugins.  Note that we can (and actively
16 # want to) statically link libstdc++, because our plugin exposes only
17 # a C API so there are no boundary compatibility problems.
18 #
19 PLUGIN_LIBS     = -L$(VAMPLIBDIR) -Wl,-Bstatic -lvamp-sdk -laubio -lfftw3f -Wl,-Bdynamic
20 #PLUGIN_LIBS    = -L$(VAMPLIBDIR) -lvamp-sdk /usr/lib/libaubio.a /usr/lib/libfftw3f.a
21 #PLUGIN_LIBS    = -L$(VAMPLIBDIR) -lvamp-sdk $(shell g++ -print-file-name=libstdc++.a)
22
23 # Flags required to tell the compiler to make a dynamically loadable object
24 #
25 PLUGIN_LDFLAGS  = -shared -Wl,-Bsymbolic -static-libgcc
26
27 # File extension for a dynamically loadable object
28 #
29 PLUGIN_EXT      = .so
30
31 ## For OS/X with g++:
32 #PLUGIN_LDFLAGS = -dynamiclib
33 #PLUGIN_EXT     = .dylib
34
35
36 ### End of user-serviceable parts
37
38 PLUGIN_OBJECTS  = libmain.o $(patsubst %.cpp,%.o,$(wildcard $(PLUGINDIR)/*.cpp))
39 PLUGIN_HEADERS  = $(patsubst %.cpp,%.h,$(wildcard $(PLUGINDIR)/*.cpp))
40 PLUGIN_TARGET   = vamp-aubio$(PLUGIN_EXT)
41
42 all:            $(PLUGIN_TARGET)
43
44 $(PLUGIN_TARGET):       $(PLUGIN_OBJECTS) $(PLUGIN_HEADERS)
45                 $(CXX) $(LDFLAGS) $(PLUGIN_LDFLAGS) -o $@ $(PLUGIN_OBJECTS) $(PLUGIN_LIBS)
46
47 clean:          
48                 rm -f $(PLUGIN_OBJECTS)
49
50 distclean:      clean
51                 rm -f $(PLUGIN_TARGET) *~ */*~
52
53