d99831cb890bb3df7c0ea85afb4e2bd937d6ca5f
[vamp-aubio-plugins.git] / Makefile
1
2 # Location of our plugins
3 #
4 PLUGINDIR       = plugins
5
6 # Location of aubio code
7 #
8 AUBIODIR        = aubio
9
10 # Compile flags
11 #
12 CFLAGS          := -I. -Iaubio/src $(CFLAGS) -fPIC -DDEBUG -O2 -Wall -I.
13 CXXFLAGS        := $(CFLAGS)
14
15 # Libraries required for the plugins.
16 #
17 PLUGIN_LIBS     = -Wl,-Bstatic -lvamp-sdk -Wl,-Bdynamic
18
19 # Flags required to tell the compiler to make a dynamically loadable object
20 #
21 PLUGIN_LDFLAGS  = -shared -Wl,-Bsymbolic -Wl,--version-script=vamp-plugin.map
22
23 # File extension for a dynamically loadable object
24 #
25 PLUGIN_EXT      = .so
26
27 ## For OS/X with g++:
28 #PLUGIN_LDFLAGS = -dynamiclib -exported_symbols_list=vamp-plugin.list
29 #PLUGIN_EXT     = .dylib
30
31
32 ### End of user-serviceable parts
33
34 PLUGIN_OBJECTS  = libmain.o $(patsubst %.cpp,%.o,$(wildcard $(PLUGINDIR)/*.cpp))
35 AUBIO_OBJECTS   = $(patsubst %.c,%.o,$(wildcard $(AUBIODIR)/src/*.c $(AUBIODIR)/src/*/*.c ))
36 PLUGIN_HEADERS  = $(patsubst %.cpp,%.h,$(wildcard $(PLUGINDIR)/*.cpp))
37 PLUGIN_TARGET   = vamp-aubio$(PLUGIN_EXT)
38
39 all:            $(PLUGIN_TARGET)
40
41 $(PLUGIN_TARGET):       $(PLUGIN_OBJECTS) $(AUBIO_OBJECTS) $(PLUGIN_HEADERS)
42                 $(CXX) $(LDFLAGS) $(PLUGIN_LDFLAGS) -o $@ $(PLUGIN_OBJECTS) $(AUBIO_OBJECTS) $(PLUGIN_LIBS)
43
44 clean:          
45                 rm -f $(PLUGIN_OBJECTS)
46
47 distclean:      clean
48                 rm -f $(PLUGIN_TARGET) *~ */*~
49
50