1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
#!/usr/bin/make -f
# these can be overridden using make variables. e.g.
# make CFLAGS=-O2
#
OPTIMIZATIONS ?= -ffast-math -fomit-frame-pointer -O3 -fno-finite-math-only
PREFIX ?= /usr/local
CFLAGS ?= $(OPTIMIZATIONS) -Wall
LIBDIR ?= lib
###############################################################################
LV2DIR ?= $(PREFIX)/$(LIBDIR)/lv2
LOADLIBES=-lm
LV2NAME=xfade
BUNDLE=xfade.lv2
UNAME=$(shell uname)
ifeq ($(UNAME),Darwin)
LV2LDFLAGS=-dynamiclib
LIB_EXT=.dylib
else
LV2LDFLAGS=-Wl,-Bstatic -Wl,-Bdynamic
LIB_EXT=.so
endif
targets=$(LV2NAME)$(LIB_EXT)
# check for build-dependencies
ifeq ($(shell pkg-config --exists lv2 || echo no), no)
$(error "LV2 SDK was not found")
endif
override CFLAGS += -fPIC -std=c99
override CFLAGS += `pkg-config --cflags lv2`
# build target definitions
default: all
all: manifest.ttl $(LV2NAME).ttl $(targets)
manifest.ttl: manifest.ttl.in
sed "s/@LV2NAME@/$(LV2NAME)/;s/@LIB_EXT@/$(LIB_EXT)/" \
manifest.ttl.in > manifest.ttl
$(LV2NAME).ttl: $(LV2NAME).ttl.in
cat $(LV2NAME).ttl.in > $(LV2NAME).ttl
$(LV2NAME)$(LIB_EXT): $(LV2NAME).c
$(CC) $(CPPFLAGS) $(CFLAGS) \
-o $(LV2NAME)$(LIB_EXT) $(LV2NAME).c \
-shared $(LV2LDFLAGS) $(LDFLAGS) $(LOADLIBES)
# install/uninstall/clean target definitions
install: all
install -d $(DESTDIR)$(LV2DIR)/$(BUNDLE)
install -m755 $(LV2NAME)$(LIB_EXT) $(DESTDIR)$(LV2DIR)/$(BUNDLE)
install -m644 manifest.ttl $(LV2NAME).ttl $(DESTDIR)$(LV2DIR)/$(BUNDLE)
uninstall:
rm -f $(DESTDIR)$(LV2DIR)/$(BUNDLE)/manifest.ttl
rm -f $(DESTDIR)$(LV2DIR)/$(BUNDLE)/$(LV2NAME).ttl
rm -f $(DESTDIR)$(LV2DIR)/$(BUNDLE)/$(LV2NAME)$(LIB_EXT)
-rmdir $(DESTDIR)$(LV2DIR)/$(BUNDLE)
clean:
rm -f manifest.ttl $(LV2NAME).ttl $(LV2NAME)$(LIB_EXT)
.PHONY: clean all install uninstall
|