+# 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
+
+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)
+# @cp $(SNDFILE_PATH)/sndfile_stub.o $(SRC_DIR)
+## Using ocamlopt with 'make opt'
+ @cd $(SRC_DIR) && $(MAKE) opt #OCAML_INCLUDE_PATH=$(OCAML_INCLUDE_PATH) SNDFILE_PATH=$(SNDFILE_PATH)
@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)
@(cd $(SRC_DIR) && $(MAKE) mrproper)
@(cd $(PREPROCESSOR_DIR) && $(MAKE) clean)
-test:
+test: # TODO, obsolete
@rm -f $(OUTPUTSOUNDS_DIR)/output0.wav
@cd $(SRC_DIR) && ./faustine -d ../dsp_files/sin.dsp
@ls -l $(OUTPUTSOUNDS_DIR)/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
+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