1# 2# Makefile 3# 4# Copyright (C) 2010 Creytiv.com 5# 6 7# Master version number 8VER_MAJOR := 0 9VER_MINOR := 5 10VER_PATCH := 3 11 12PROJECT := rem 13VERSION := 0.5.3 14OPT_SPEED := 1 15 16LIBRE_MK := $(shell [ -f ../re/mk/re.mk ] && \ 17 echo "../re/mk/re.mk") 18ifeq ($(LIBRE_MK),) 19LIBRE_MK := $(shell [ -f /usr/share/re/re.mk ] && \ 20 echo "/usr/share/re/re.mk") 21endif 22ifeq ($(LIBRE_MK),) 23LIBRE_MK := $(shell [ -f /usr/local/share/re/re.mk ] && \ 24 echo "/usr/local/share/re/re.mk") 25endif 26 27include $(LIBRE_MK) 28 29# List of modules 30MODULES += fir goertzel 31MODULES += g711 32MODULES += aubuf aufile auresamp autone dtmf 33MODULES += au auconv 34 35ifneq ($(HAVE_LIBPTHREAD),) 36MODULES += aumix vidmix 37endif 38 39MODULES += vid vidconv 40 41LIBS += -lm 42 43INSTALL := install 44ifeq ($(DESTDIR),) 45PREFIX := /usr/local 46else 47PREFIX := /usr 48endif 49ifeq ($(LIBDIR),) 50LIBDIR := $(PREFIX)/lib 51endif 52INCDIR := $(PREFIX)/include/rem 53CFLAGS += -I$(LIBRE_INC) -Iinclude 54 55 56# XXX 57ifneq ($(HAVE_ARMV6),) 58CFLAGS += -DHAVE_ARMV6=1 59endif 60ifneq ($(HAVE_NEON),) 61CFLAGS += -DHAVE_NEON=1 62endif 63 64 65MODMKS := $(patsubst %,src/%/mod.mk,$(MODULES)) 66SHARED := librem$(LIB_SUFFIX) 67STATIC := librem.a 68 69 70include $(MODMKS) 71 72 73OBJS ?= $(patsubst %.c,$(BUILD)/%.o,$(filter %.c,$(SRCS))) 74OBJS += $(patsubst %.S,$(BUILD)/%.o,$(filter %.S,$(SRCS))) 75 76 77all: $(SHARED) $(STATIC) 78 79 80-include $(OBJS:.o=.d) 81 82 83$(SHARED): $(OBJS) 84 @echo " LD $@" 85 @$(LD) $(LFLAGS) $(SH_LFLAGS) $^ -L$(LIBRE_SO) -lre $(LIBS) -o $@ 86 87 88$(STATIC): $(OBJS) 89 @echo " AR $@" 90 @$(AR) $(AFLAGS) $@ $^ 91ifneq ($(RANLIB),) 92 @$(RANLIB) $@ 93endif 94 95librem.pc: 96 @echo 'prefix='$(PREFIX) > librem.pc 97 @echo 'exec_prefix=$${prefix}' >> librem.pc 98 @echo 'libdir=$${prefix}/lib' >> librem.pc 99 @echo 'includedir=$${prefix}/include/rem' >> librem.pc 100 @echo '' >> librem.pc 101 @echo 'Name: librem' >> librem.pc 102 @echo 'Description: Audio and video processing media library' \ 103 >> librem.pc 104 @echo 'Version: '$(VERSION) >> librem.pc 105 @echo 'URL: http://creytiv.com/rem.html' >> librem.pc 106 @echo 'Libs: -L$${libdir} -lrem -lre' >> librem.pc 107 @echo 'Cflags: -I$${includedir}' >> librem.pc 108 109$(BUILD)/%.o: src/%.c $(BUILD) Makefile $(MK) $(MODMKS) 110 @echo " CC $@" 111 @$(CC) $(CFLAGS) -c $< -o $@ $(DFLAGS) 112 113 114$(BUILD)/%.o: src/%.S $(BUILD) Makefile $(MK) $(MODMKS) 115 @echo " AS $@" 116 @$(CC) $(CFLAGS) -c $< -o $@ $(DFLAGS) 117 118 119$(BUILD): Makefile $(MK) $(MODMKS) 120 @mkdir -p $(patsubst %,$(BUILD)/%,$(sort $(dir $(SRCS)))) 121 @touch $@ 122 123 124.PHONY: clean 125clean: 126 @rm -rf $(SHARED) $(STATIC) librem.pc test.d test.o test $(BUILD) 127 128 129install: $(SHARED) $(STATIC) librem.pc 130 @mkdir -p $(DESTDIR)$(LIBDIR) $(DESTDIR)$(LIBDIR)/pkgconfig \ 131 $(DESTDIR)$(INCDIR) 132 $(INSTALL) -m 0644 $(shell find include -name "*.h") \ 133 $(DESTDIR)$(INCDIR) 134 $(INSTALL) -m 0755 $(SHARED) $(DESTDIR)$(LIBDIR) 135 $(INSTALL) -m 0755 $(STATIC) $(DESTDIR)$(LIBDIR) 136 $(INSTALL) -m 0644 librem.pc $(DESTDIR)$(LIBDIR)/pkgconfig 137 138.PHONY: uninstall 139uninstall: 140 @rm -rf $(DESTDIR)$(INCDIR) 141 @rm -f $(DESTDIR)$(LIBDIR)/$(SHARED) 142 @rm -f $(DESTDIR)$(LIBDIR)/$(STATIC) 143 @rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/librem.pc 144 145-include test.d 146 147test.o: test.c 148 @echo " CC $@" 149 @$(CC) $(CFLAGS) -c $< -o $@ $(DFLAGS) 150 151test$(BIN_SUFFIX): test.o $(SHARED) $(STATIC) 152 @echo " LD $@" 153 @$(LD) $(LFLAGS) $< -L. -lrem -lre $(LIBS) -o $@ 154