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