+# Faustine interpreter Makefile.
+
########################## User's variables #####################
#
# The Caml sources (including camlyacc and camllex source files)
SOURCES = types.ml parser.mly lexer.mll basic.ml symbol.ml aux.ml value.ml signal.ml beam.ml process.ml faustio.ml preprocess.ml main.ml preprocess_stubs.cpp
# The executable file to generate
-
EXEC = faustine
# Path to ocaml include header files
-export OCAML_INCLUDE_PATH
+OCAML_INCLUDE_PATH := $(subst bin,lib,$(shell which ocaml))
# Path to sndfile library
-#SNDFILE_PATH = /home/wang/Desktop/libsndfile-ocaml
-export SNDFILE_PATH
+SNDFILE_PATH := lib/libsndfile
-# Path to Faust.mr2
+# Path to Faust.mr3
FAUST_PATH = preprocessor/faust-0.9.47mr3
# Path to preprocessor library
CAMLOPT_OPTIONS = -p $(GPP_CALL) $(INCLUDE) $(LIBS:.cma=.cmxa)
CAMLDOC_OPTIONS = -d $(OCAML_DOC_PATH) -html $(INCLUDE)
+
CC_OPTIONS = -c -I$(PREPROCESSOR_INCLUDE_PATH) -I$(OCAML_INCLUDE_PATH)
################ End of user's variables #####################
LEXER_MLL = $(filter %.mll, $(SOURCES))
MIDDLE_ML = $(PARSER_MLY:.mly=.ml) $(LEXER_MLL:.mll=.ml)
+preprocessor::
+ @echo "Compiling preprocessor..."
+ cd $(FAUST_PATH) && $(MAKE)
+
$(EXEC): $(OBJS) $(COBJS) $(CLIBS)
+ @echo "Compiling $(EXEC)..."
$(CAMLC) $(CAMLC_OPTIONS) -o $(EXEC) $(OBJS) $(COBJS) $(CLIBS)
$(EXEC).opt: $(OPTOBJS) $(COBJS) $(CLIBS)
+ @echo "Compiling optimized $(EXEC)..."
$(CAMLOPT) $(CAMLOPT_OPTIONS) -o $(EXEC) $(OPTOBJS) $(COBJS) $(CLIBS)
-$(CLIBS):
- @(cd $(FAUST_PATH) && $(MAKE))
-
document: $(SMLYL) $(OBJS)
+ @echo "Compiling documentation..."
$(CAMLDOC) $(CAMLDOC_OPTIONS) $(SMLYL)
main.cmo: main.ml