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