X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/cae947e13e0edb12892f269670b430108e924c06..509aeb980ddb8825bfbbb59f060bbca48918fac8:/Makefile

diff --git a/Makefile b/Makefile
index 7ed6e35..c8c0630 100644
--- a/Makefile
+++ b/Makefile
@@ -1,38 +1,58 @@
-SRC_DIR = interpretor
-PREPROCESSOR_DIR = $(SRC_DIR)/faust-0.9.47mr3
-OUTPUTSOUNDS_DIR = output_sounds
+# Faustine top-level Makefile.
+
 EXEC = faustine
+SRC_DIR = interpreter
+PREPROCESSOR_DIR = $(SRC_DIR)/preprocessor/faust-0.9.47mr3
+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) clean
+	$(MAKE) -C $(SRC_DIR) opt    # using ocamlopt compiler (optimized)
+
+.PHONY: clean mrproper test help install uninstall
 
-.PHONY: clean mrproper
+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)
+	@($(MAKE) -C $(SRC_DIR) clean)
 	@(rm -f *~)
 
 mrproper: clean
-	@(cd $(SRC_DIR) && $(MAKE) mrproper)
-	@(cd $(PREPROCESSOR_DIR) && $(MAKE) clean)
+	@($(MAKE) -C $(SRC_DIR) mrproper)
+	@($(MAKE) -C $(PREPROCESSOR_DIR) clean)
+	@($(MAKE) -C $(EXAMPLES_DIR) clean)
 
-test: 
-	@rm -f $(OUTPUTSOUNDS_DIR)/output0.wav
-	@cd $(SRC_DIR) && ./faustine -csv -wav ../dsp_files/sin.dsp
-	@ls -l $(OUTPUTSOUNDS_DIR)/output0.wav
+test:
+	@$(MAKE) -C $(SINWAVE_DIR)
+	@ls -l $(SINWAVE_DIR)/output1.wav
 
 	@echo "    You might want to check the output file with either:"
-	@echo "audacity ../output_sounds/output0.wav"
-	@echo "open ../output_sounds/output0.wav"
-	@echo "octave -q --eval 'plot(wavread(\"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 = ~/Boulot/2013-07-CRI/lib/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'"
+
+example:
+	@($(MAKE) -C $(EXAMPLES_DIR))
+
+install :
+	mkdir -p $(prefix)/lib/faustine/
+	mkdir -p $(prefix)/bin/
+	install $(SRC_DIR)/faustine $(prefix)/bin/
+	install -m 0644 $(arch) $(prefix)/lib/faustine/
+
+uninstall :
+	rm -rf $(prefix)/lib/faustine/
+	rm -f $(prefix)/bin/faustine