X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/29c1f4c9f2543b9b079aa3960761214c920bb1f2..e3449439410ee92986e5ef95fc933813dfa6c67b:/Makefile diff --git a/Makefile b/Makefile index 0a0a5a7..5f8cbba 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) +lib := $(wildcard lib/*.*) 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'" + +examples:: + @($(MAKE) -C $(EXAMPLES_DIR)) + +install : + mkdir -p $(prefix)/lib/faustine/ + mkdir -p $(prefix)/bin/ + install $(SRC_DIR)/faustine $(prefix)/bin/ + install -m 0644 $(lib) $(prefix)/lib/faustine/ + +uninstall : + rm -rf $(prefix)/lib/faustine/ + rm -f $(prefix)/bin/faustine