diff --git a/mex/build/matlab/configure.ac b/mex/build/matlab/configure.ac
index 8b0ed2a8b061fada212a6751367c6467faa1ca0e..5200c5e841df2ebc4f625a50bccd3b49bff02559 100644
--- a/mex/build/matlab/configure.ac
+++ b/mex/build/matlab/configure.ac
@@ -54,6 +54,7 @@ AC_PROG_CC
 AC_PROG_CXX
 AC_PROG_RANLIB
 AX_PROG_LN_S
+AC_PROG_MKDIR_P
 AX_PTHREAD
 # Check for dlopen(), needed by k_order_perturbation DLL
 AC_CHECK_LIB([dl], [dlopen], [LIBADD_DLOPEN="-ldl"], [])
diff --git a/mex/build/matlab/mex.am b/mex/build/matlab/mex.am
index 5c01bb4e260fa17501f368bdd72f49c6f94a97c2..89caf3954f7dc24b85b94fb9c10730f63a2d8136 100644
--- a/mex/build/matlab/mex.am
+++ b/mex/build/matlab/mex.am
@@ -10,6 +10,7 @@ LDFLAGS += $(MATLAB_LDFLAGS)
 LIBS += $(MATLAB_LIBS)
 
 all-local:
+	$(MKDIR_P) $(top_srcdir)/../../matlab
 	cd $(top_srcdir)/../../matlab && \
 	for p in $(PROGRAMS); do \
 		$(LN_S) -f $(abs_srcdir)/$$p $$p; \
diff --git a/mex/build/octave/configure.ac b/mex/build/octave/configure.ac
index 995e942649d49c93ac70484ab8b074ee9ff72a0b..49ce6134aefc266895f23ee93b2e4ab8b3670ef2 100644
--- a/mex/build/octave/configure.ac
+++ b/mex/build/octave/configure.ac
@@ -35,6 +35,7 @@ AC_PROG_CC
 AC_PROG_CXX
 AC_PROG_RANLIB
 AX_PROG_LN_S
+AC_PROG_MKDIR_P
 AX_PTHREAD
 # Check for dlopen(), needed by k_order_perturbation DLL
 AC_CHECK_LIB([dl], [dlopen], [LIBADD_DLOPEN="-ldl"], [])
diff --git a/mex/build/octave/mex.am b/mex/build/octave/mex.am
index 5e1aff55e4f2c64d402cfef453579ceaf01bdaea..0bcd97ebb1d740091358e3d0ecbbf405e71e2e51 100644
--- a/mex/build/octave/mex.am
+++ b/mex/build/octave/mex.am
@@ -22,6 +22,7 @@ LIBS += $(shell $(MKOCTFILE) -p FLIBS)
 LIBS += $(shell $(MKOCTFILE) -p CXXLIBS) # Only used for Octave/MinGW
 
 all-local:
+	$(MKDIR_P) $(top_srcdir)/../../octave
 	cd $(top_srcdir)/../../octave && \
 	for p in $(PROGRAMS); do \
 		$(LN_S) -f $(abs_srcdir)/$$p $$p; \