Add octave scripts for examples into track list.
[Faustine.git] / Makefile
index 281af3b..9bebbd3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,16 +1,31 @@
+# Faustine top-level Makefile.
+
+EXEC = faustine
 SRC_DIR = interpretor
 PREPROCESSOR_DIR = $(SRC_DIR)/preprocessor/faust-0.9.47mr3
-OUTPUTSOUNDS_DIR = examples/output_sounds
-EXEC = faustine
+EXAMPLES_DIR = examples
+SINWAVE_DIR = $(EXAMPLES_DIR)/sinwave
+
+DESTDIR ?= 
+PREFIX ?= /usr/local
+prefix := $(DESTDIR)$(PREFIX)
+arch   := $(wildcard architecture/*.*)
 
 all: $(EXEC)
 
 faustine:
-       @cp $(SNDFILE_PATH)/sndfile_stub.o $(SRC_DIR)
-       @cd $(SRC_DIR) && $(MAKE) opt OCAML_INCLUDE_PATH=$(OCAML_INCLUDE_PATH) SNDFILE_PATH=$(SNDFILE_PATH)
+       @cd $(SRC_DIR) && $(MAKE) opt      # using ocamlopt
        @cd $(SRC_DIR) && $(MAKE) clean
 
-.PHONY: clean mrproper
+.PHONY: clean mrproper test help install uninstall
+
+help :
+       @echo "make or make all : compiler the faustine interpreter"
+       @echo "make clean : remove all object files"
+       @echo "make doc : generate the documentation using ocamldoc (TODO)"
+       @echo "make install : install the interpreter and the library files in $(prefix)/bin $(prefix)/lib/faustine"
+       @echo "make uninstall : undo what install did"
+       @echo "make dist : make a tar.gz file ready for distribution (TODO)"
 
 clean:
        @(cd $(SRC_DIR) && $(MAKE) clean)
@@ -20,18 +35,21 @@ mrproper: clean
        @(cd $(SRC_DIR) && $(MAKE) mrproper)
        @(cd $(PREPROCESSOR_DIR) && $(MAKE) clean)
 
-test: 
-       @rm -f $(OUTPUTSOUNDS_DIR)/output0.wav
-       @cd $(SRC_DIR) && ./faustine -d ../dsp_files/sin.dsp
-       @ls -l $(OUTPUTSOUNDS_DIR)/output0.wav
+test:
+       @cd $(SINWAVE_DIR) && $(MAKE)
+       @ls -l $(SINWAVE_DIR)/output1.wav
 
        @echo "    You might want to check the output file with either:"
-       @echo "audacity ../examples/output_sounds/output0.wav"
-       @echo "open ../examples/output_sounds/output0.wav"
-       @echo "octave -q --eval 'plot(wavread(\"../examples/output_sounds/output0.wav\")); pause'"
-
-# Library paths for OCaml and libsndfile-ocaml
-# OCAML_INCLUDE_PATH
-# SNDFILE_PATH
-OCAML_INCLUDE_PATH = /usr/local/lib/ocaml
-SNDFILE_PATH = /Users/karimbarkati/Boulot/2013-07-CRI/Interpretor/libsndfile-ocaml
+       @echo "audacity $(SINWAVE_DIR)/output1.wav"
+       @echo "open $(SINWAVE_DIR)/output1.wav"
+       @echo "octave -q --eval 'plot(wavread(\"$(SINWAVE_DIR)/output1.wav\")); pause'"
+
+install :
+       mkdir -p $(prefix)/lib/faustine/
+       mkdir -p $(prefix)/bin/
+       install interpretor/faustine $(prefix)/bin/
+       install -m 0644 $(arch) $(prefix)/lib/faustine/
+
+uninstall :
+       rm -rf $(prefix)/lib/faustine/
+       rm -f $(prefix)/bin/faustine