annotate skeleton/Makefile.skeleton @ 354:e85513153c71

Initialise rate to 0. Otherwise there's a danger plugins will change the SampleType (e.g. to VariableSampleRate) but not set the rate because they don't think they need it (when in fact it needs to be set to 0)
author Chris Cannam
date Thu, 28 Mar 2013 15:49:17 +0000
parents d5c5a52e6c9f
children
rev   line source
cannam@299 1
cannam@299 2 ## Skeleton Makefile for Vamp plugin builds using command-line tools.
Chris@312 3 ## This requires GNU make, which is what you get with OS/X, Linux, or
Chris@312 4 ## MinGW/Cygwin on Windows.
cannam@299 5 ##
cannam@299 6 ## Rename this to Makefile, and edit as appropriate.
cannam@299 7 ## This Makefile WILL NOT WORK until you have edited it as described
cannam@299 8 ## below -- the Makefile as supplied does nothing useful at all!
cannam@299 9 ##
cannam@299 10 ## Various sets of options are provided, commented out -- just uncomment
cannam@299 11 ## (remove the '#' characters for) the set that most closely resembles
Chris@312 12 ## your own situation, and adjust to taste. Then run "gmake".
cannam@299 13 ##
cannam@299 14 ## (For Windows builds using MS Visual Studio, start instead with the
cannam@299 15 ## VampExamplePlugins project found in the build directory of the SDK.)
cannam@299 16
cannam@299 17
cannam@299 18 # Edit this to the base name of your plugin library
cannam@299 19 #
Chris@312 20 PLUGIN_LIBRARY_NAME := myplugins
cannam@299 21
Chris@312 22 # Edit this to list the .cpp or .c files in your plugin project
cannam@299 23 #
Chris@312 24 PLUGIN_SOURCES := MyPlugin.cpp plugins.cpp
Chris@312 25
Chris@312 26 # Edit this to list the .h files in your plugin project
Chris@312 27 #
Chris@312 28 PLUGIN_HEADERS := MyPlugin.h
cannam@299 29
cannam@299 30 # Edit this to the location of the Vamp plugin SDK, relative to your
cannam@299 31 # project directory
cannam@299 32 #
Chris@312 33 VAMP_SDK_DIR := ../vamp-plugin-sdk
cannam@299 34
cannam@299 35
Chris@337 36 ## Uncomment these for an OS/X universal binary (32- and 64-bit Intel)
Chris@337 37 ## supporting 10.5 or newer. Use this if you have OS/X 10.7 with the
Chris@337 38 ## Xcode 4 command-line tools.
Chris@337 39
Chris@337 40 # CXX := g++
Chris@337 41 # CXXFLAGS := -mmacosx-version-min=10.5 -arch i386 -arch x86_64 -I$(VAMP_SDK_DIR) -Wall -fPIC
Chris@337 42 # PLUGIN_EXT := .dylib
Chris@337 43 # LDFLAGS := $(CXXFLAGS) -dynamiclib -install_name $(PLUGIN_LIBRARY_NAME)$(PLUGIN_EXT) $(VAMP_SDK_DIR)/libvamp-sdk.a -exported_symbols_list vamp-plugin.list
Chris@337 44
Chris@337 45
cannam@306 46 ## Uncomment these for an OS/X universal binary (PPC and 32- and
Chris@337 47 ## 64-bit Intel) supporting 10.5 or newer. Use this if you have OS/X
Chris@337 48 ## 10.6 with the Xcode 3 command-line tools.
Chris@337 49
Chris@337 50 # CXXFLAGS := -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -arch i386 -arch x86_64 -arch ppc -I$(VAMP_SDK_DIR) -Wall -fPIC
Chris@337 51 # PLUGIN_EXT := .dylib
Chris@337 52 # LDFLAGS := $(CXXFLAGS) -dynamiclib -install_name $(PLUGIN_LIBRARY_NAME)$(PLUGIN_EXT) $(VAMP_SDK_DIR)/libvamp-sdk.a -exported_symbols_list vamp-plugin.list
Chris@337 53
Chris@337 54
Chris@337 55 ## Uncomment these for an OS/X universal binary (PPC and 32- and
Chris@337 56 ## 64-bit Intel) supporting 10.4 or newer. Use this if you have OS/X
Chris@337 57 ## 10.4, 10.5 or 10.6 and you have the 10.4 SDK installed.
cannam@299 58
Chris@314 59 # CXX := g++-4.0
Chris@312 60 # CXXFLAGS := -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch i386 -arch x86_64 -arch ppc -I$(VAMP_SDK_DIR) -Wall -fPIC
Chris@312 61 # PLUGIN_EXT := .dylib
Chris@330 62 # LDFLAGS := $(CXXFLAGS) -dynamiclib -install_name $(PLUGIN_LIBRARY_NAME)$(PLUGIN_EXT) $(VAMP_SDK_DIR)/libvamp-sdk.a -exported_symbols_list vamp-plugin.list
cannam@299 63
cannam@299 64
cannam@299 65 ## Uncomment these for Linux using the standard tools:
cannam@299 66
Chris@312 67 # CXXFLAGS := -I$(VAMP_SDK_DIR) -Wall -fPIC
Chris@312 68 # PLUGIN_EXT := .so
Chris@330 69 # LDFLAGS := -shared -Wl,-soname=$(PLUGIN_LIBRARY_NAME)$(PLUGIN_EXT) $(VAMP_SDK_DIR)/libvamp-sdk.a -Wl,--version-script=vamp-plugin.map
cannam@299 70
cannam@299 71
cannam@299 72 ## Uncomment these for a cross-compile from Linux to Windows using MinGW:
cannam@299 73
Chris@312 74 # CXX := i586-mingw32msvc-g++
Chris@312 75 # CXXFLAGS := -I$(VAMP_SDK_DIR) -Wall
Chris@312 76 # PLUGIN_EXT := .dll
Chris@330 77 # LDFLAGS := --static-libgcc -Wl,-soname=$(PLUGIN_LIBRARY_NAME)$(PLUGIN_EXT) -shared $(VAMP_SDK_DIR)/libvamp-sdk.a
cannam@299 78
cannam@299 79
cannam@299 80 ## Uncomment these for OpenSolaris using SunStudio compiler and GNU make:
cannam@299 81
Chris@312 82 # CXX := CC
Chris@312 83 # CXXFLAGS := -G -I$(VAMP_SDK_DIR) +w -KPIC
Chris@312 84 # PLUGIN_EXT := .so
Chris@330 85 # LDFLAGS := -G -h$(PLUGIN_LIBRARY_NAME)$(PLUGIN_EXT) $(VAMP_SDK_DIR)/libvamp-sdk.a -Qoption ld -Mvamp-plugin.map
cannam@299 86
cannam@299 87
cannam@299 88
cannam@299 89 ## All of the above
cannam@299 90
Chris@312 91 PLUGIN_OBJECTS := $(PLUGIN_SOURCES:.cpp=.o)
Chris@312 92 PLUGIN_OBJECTS := $(PLUGIN_OBJECTS:.c=.o)
Chris@312 93
Chris@330 94 $(PLUGIN_LIBRARY_NAME)$(PLUGIN_EXT): $(PLUGIN_OBJECTS)
cannam@299 95 $(CXX) -o $@ $^ $(LDFLAGS)
cannam@299 96
Chris@312 97 $(PLUGIN_OBJECTS): $(PLUGIN_HEADERS)
Chris@312 98
cannam@299 99 clean:
cannam@299 100 rm -f *.o
cannam@299 101