summaryrefslogtreecommitdiff
path: root/src/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile145
1 files changed, 145 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..c339524
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,145 @@
+###############################################################################
+#
+# Installation DIRECTORIES
+#
+# Change these if you want to install somewhere else.
+
+INSTALL_PLUGINS_DIR = /usr/lib/ladspa/
+INSTALL_INCLUDE_DIR = /usr/include/
+INSTALL_BINARY_DIR = /usr/bin/
+
+###############################################################################
+#
+# GENERAL
+#
+
+INCLUDES = -I.
+LIBRARIES = -ldl -lm
+CFLAGS = $(INCLUDES) -Wall -Werror -O2 -fPIC \
+ -DDEFAULT_LADSPA_PATH=$(INSTALL_PLUGINS_DIR)
+BINFLAGS = -fPIE -pie
+CXXFLAGS = $(CFLAGS)
+PLUGINS = ../plugins/amp.so \
+ ../plugins/delay.so \
+ ../plugins/filter.so \
+ ../plugins/noise.so \
+ ../plugins/sine.so
+PROGRAMS = ../bin/analyseplugin \
+ ../bin/applyplugin \
+ ../bin/listplugins
+CC = cc
+CPP = c++
+
+###############################################################################
+#
+# RULES TO BUILD PLUGINS FROM C OR C++ CODE
+#
+
+../plugins/%.so: plugins/%.c ladspa.h gcc_exports.map
+ $(CC) $(CFLAGS) -o plugins/$*.o -c plugins/$*.c
+ $(CC) -o ../plugins/$*.so \
+ plugins/$*.o \
+ -shared \
+ $(CFLAGS) \
+ -fvisibility=hidden \
+ -fvisibility-inlines-hidden \
+ -s \
+ -Wl,--version-script=gcc_exports.map
+
+../plugins/%.so: plugins/%.cpp ladspa.h gcc_exports.map
+ $(CPP) $(CXXFLAGS) -o plugins/$*.o -c plugins/$*.cpp
+ $(CPP) -o ../plugins/$*.so \
+ plugins/$*.o \
+ -shared \
+ $(CXXFLAGS) \
+ -fvisibility=hidden \
+ -fvisibility-inlines-hidden \
+ -s \
+ -Wl,--version-script=gcc_exports.map
+
+###############################################################################
+#
+# TARGETS
+#
+
+test: /tmp/test.wav ../snd/noise.wav always
+ @echo ---------------------------------------------
+ @echo First listen to the white noise input signal:
+ @echo ---------------------------------------------
+ -sndfile-play ../snd/noise.wav
+ @echo -------------------------
+ @echo Compare to plugin output.
+ @echo -------------------------
+ @echo Should be a noise band around 6000Hz, repeated quietly after 1s.
+ -sndfile-play /tmp/test.wav
+ @echo Test complete.
+
+install: targets
+ -mkdir -p $(INSTALL_PLUGINS_DIR)
+ -mkdir -p $(INSTALL_INCLUDE_DIR)
+ -mkdir -p $(INSTALL_BINARY_DIR)
+ cp ../plugins/* $(INSTALL_PLUGINS_DIR)
+ cp ladspa.h $(INSTALL_INCLUDE_DIR)
+ cp ../bin/* $(INSTALL_BINARY_DIR)
+
+/tmp/test.wav: targets ../snd/noise.wav
+ ../bin/listplugins
+ ../bin/analyseplugin ../plugins/filter.so
+ ../bin/analyseplugin ../plugins/delay.so
+ ../bin/analyseplugin ../plugins/sine.so
+ echo ; ../bin/analyseplugin -l ../plugins/sine.so ; echo
+ ../bin/analyseplugin ../plugins/amp.so
+ ../bin/analyseplugin ../plugins/noise.so
+ ../bin/applyplugin -s 1 \
+ ../snd/noise.wav /tmp/test.wav \
+ ../plugins/filter.so lpf 500 \
+ ../plugins/filter.so lpf 500 \
+ ../plugins/sine.so sine_fcaa 6000 \
+ ../plugins/delay.so delay_5s 1 0.1 \
+ ../plugins/amp.so amp_mono 4 \
+
+targets: $(PLUGINS) $(PROGRAMS)
+
+###############################################################################
+#
+# PROGRAMS
+#
+
+../bin/applyplugin: applyplugin.o load.o default.o
+ $(CC) $(CFLAGS) $(BINFLAGS) \
+ -o ../bin/applyplugin \
+ applyplugin.o load.o default.o \
+ $(LIBRARIES)
+
+../bin/analyseplugin: analyseplugin.o load.o default.o
+ $(CC) $(CFLAGS) $(BINFLAGS) \
+ -o ../bin/analyseplugin \
+ analyseplugin.o load.o default.o \
+ $(LIBRARIES)
+
+../bin/listplugins: listplugins.o search.o
+ $(CC) $(CFLAGS) $(BINFLAGS) \
+ -o ../bin/listplugins \
+ listplugins.o search.o \
+ $(LIBRARIES)
+
+###############################################################################
+#
+# UTILITIES
+#
+
+always:
+
+clean:
+ -rm -f `find . -name "*.o"` ../bin/* ../plugins/*
+ -rm -f `find .. -name "*~"`
+ -rm -f *.bak core score.srt
+ -rm -f *.bb *.bbg *.da *-ann gmon.out bb.out
+ -rm -f `find .. -name "*.class"`
+
+backup: clean
+ (cd ../../; \
+ tar czf `date '+../backup/ladspa_sdk.%Y%m%d%H%M.tgz'` ladspa_sdk/)
+
+###############################################################################
+