export SNDFILE_PATH
 
 # Path to Faust.mr2
-FAUST_PATH = faust-0.9.47mr3
+FAUST_PATH = preprocessor/faust-0.9.47mr3
 
 # Path to preprocessor library
 PREPROCESSOR_PATH = $(FAUST_PATH)/compiler
 LEXER_MLL = $(filter %.mll, $(SOURCES))
 MIDDLE_ML = $(PARSER_MLY:.mly=.ml) $(LEXER_MLL:.mll=.ml)
 
-preprocessor:
-       @(cd $(FAUST_PATH) && $(MAKE))
-
-$(EXEC): $(OBJS) $(COBJS)
+$(EXEC): $(OBJS) $(COBJS) $(CLIBS)
        $(CAMLC) $(CAMLC_OPTIONS) -o $(EXEC) $(OBJS) $(COBJS) $(CLIBS)
 
-$(EXEC).opt: $(OPTOBJS) $(COBJS)
+$(EXEC).opt: $(OPTOBJS) $(COBJS) $(CLIBS)
        $(CAMLOPT) $(CAMLOPT_OPTIONS) -o $(EXEC) $(OPTOBJS) $(COBJS) $(CLIBS)
 
+$(CLIBS):
+       @(cd $(FAUST_PATH) && $(MAKE))
+
 document: $(SMLYL) $(OBJS)
        $(CAMLDOC) $(CAMLDOC_OPTIONS) $(SMLYL)