Makefile.inc: add getwaf / expandwaf rules
[vamp-aubio-plugins.git] / Makefile.inc
1 # Makefile for vamp-aubio. This file gets included from platform specific makefiles.
2 #
3 # To build on OSX, use:
4 #
5 #   $ make -f Makefile.osx
6 #
7 # To build on linux, use:
8 #
9 #   $ make -f Makefile.linux
10 #
11 # To build with mingw32, use:
12 #
13 #   $ make -f Makefile.mingw
14
15 # Defaults, overridden from the platform-specific Makefile
16 VAMPSDK_DIR     ?= ./contrib/vamp-plugin-sdk-2.6
17 PLUGIN_EXT      ?= .so
18 CXX             ?= g++
19 CC              ?= gcc
20
21 CFLAGS          := $(ARCHFLAGS) $(CFLAGS)
22 CXXFLAGS        := $(CFLAGS) -I$(VAMPSDK_DIR) $(CXXFLAGS)
23
24 LDFLAGS         := $(ARCHFLAGS) -L$(VAMPSDK_DIR) $(LDFLAGS)
25 PLUGIN_LDFLAGS  := $(LDFLAGS) $(PLUGIN_LDFLAGS)
26
27 # Location of our plugins
28 #
29 PLUGINDIR       = plugins
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 # use local aubio, can be build with ./scripts/get_aubio.sh
36 CXXFLAGS := $(CXXFLAGS) -I./contrib/aubio-dist/include
37
38 all:            $(PLUGIN_TARGET)
39
40 $(PLUGIN_TARGET):       $(PLUGIN_OBJECTS) $(PLUGIN_HEADERS)
41                 $(CXX) -o $@ $(PLUGIN_OBJECTS) $(PLUGIN_LDFLAGS) $(PLUGIN_LIBS)
42
43 clean:
44                 rm -f $(PLUGIN_OBJECTS)
45
46 distclean:      clean
47                 rm -f $(PLUGIN_TARGET) *~ */*~
48
49 WAFCMD=python waf
50 WAFURL=https://waf.io/waf-1.9.6
51
52 checkwaf:
53         @[ -f waf ] || make getwaf
54
55 getwaf:
56         ./scripts/get_waf.sh
57
58 expandwaf: getwaf
59         [ -d wafilb ] || rm -fr waflib
60         $(WAFCMD) --help > /dev/null
61         mv .waf*/waflib . && rm -fr .waf*
62         sed '/^#==>$$/,$$d' waf > waf2 && mv waf2 waf
63         chmod +x waf && chmod -R go-w waflib
64
65 cleanwaf:
66         rm -rf waf waflib .waf*