diff --git a/Makefile b/Makefile
index ed3e46a7f5c9d50ecad176fbd7bd4e931732bc01..904e6b80b13e604572dc5575e74cc6fdf30aa494 100644
--- a/Makefile
+++ b/Makefile
@@ -47,7 +47,7 @@ compile: variables initialtag
 ifneq (${UNAME},WIN32MSVC)
 	@for i in ${GMSH_DIRS}; do (cd $$i && ${MAKE}); done
 else
-	for %%i in (${GMSH_DIRS}) do gmake -C %%i
+	for %%i in (${GMSH_DIRS}) do ${MAKE} -C %%i
 endif
 
 install: variables
@@ -96,7 +96,7 @@ ifneq (${UNAME},WIN32MSVC)
 	${RANLIB} lib/libGmsh${LIBEXT}
 	rm -f lib/*${OBJEXT}
 else
-	for %%i in (${GMSH_DIRS}); do gmake -C %%i
+	for %%i in (${GMSH_DIRS}); do ${MAKE} -C %%i
 	${AR} ${ARFLAGS}bin\libGmsh${LIBEXT} lib\*${LIBEXT}
 	erase lib\*${LIBEXT}
 	move bin\libGmsh${LIBEXT} lib
@@ -190,7 +190,7 @@ ifneq (${UNAME},WIN32MSVC)
 	for i in doc lib ${GMSH_DIRS}; do (cd $$i && ${MAKE} clean); done
 	rm -f ${GMSH_VERSION_FILE}
 else
-	for %%i in (doc lib ${GMSH_DIRS}) do gmake -C %%i clean
+	for %%i in (doc lib ${GMSH_DIRS}) do ${MAKE} -C %%i clean
 	erase Common\GmshVersion.h
 endif
 
diff --git a/contrib/ANN/Makefile b/contrib/ANN/Makefile
index b27c183b6f46edc3b5b7f935a68509f958f32f47..4d64216ae2111ffcac420dfeda5d950aad2b181e 100644
--- a/contrib/ANN/Makefile
+++ b/contrib/ANN/Makefile
@@ -3,6 +3,8 @@
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
 
+include ../../variables
+
 default:
 	@cd src && ${MAKE}
 
diff --git a/doc/Makefile b/doc/Makefile
index 54c6f5546c9d5da15097964134217e439dd08247..8a9021ec88a1ced016c0a34f499f7b50a1d3ab89 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -3,6 +3,8 @@
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
 
+include ../variables
+
 clean:
-	rm -f *~ .*~
+	${RM} *~ .*~
 	cd texinfo && ${MAKE} clean
diff --git a/doc/README.msvc b/doc/README.msvc
index 3cf982ce679d758ce1d7021fea6ed42935f800b0..4eb9070124f2496b55541601188d7f3aac2f90ef 100644
--- a/doc/README.msvc
+++ b/doc/README.msvc
@@ -1,13 +1,13 @@
 To compile Gmsh with Microsoft Visual C++
 
-1) Install GNU make and related tools (e.g. from cygwin or mingw)
-    
-2) launch the Visual Studio command prompt
+1) launch the Visual Studio command prompt
 
-3) set PATH=%PATH%;C:\cygwin\bin  (or wherever the make tools are installed)
+2) go to the gmsh source directory
 
-4) go to the gmsh directory and rename "utils/misc/variables.msvc" to "variables"
+4) rename "utils\misc\variables.msvc" into "variables" (in the root 
+   of the gmsh source directory)
 
 5) edit "variables" to match your local installation of Visual C++
 
-6) type "make"
+6) type "utils\misc\gmake.exe"
+
diff --git a/doc/texinfo/Makefile b/doc/texinfo/Makefile
index 2251f69963a79866a4d370b20bf9c1481128e502..737981c7f44d788a22419f3367e1aa6fa38808ee 100644
--- a/doc/texinfo/Makefile
+++ b/doc/texinfo/Makefile
@@ -3,6 +3,8 @@
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
 
+include ../../variables
+
 dvi:
 	texi2dvi gmsh.texi 
 
@@ -39,7 +41,7 @@ txt:
 all: pdf html html1 infoz txt
 
 clean:
-	rm -f *.cp* *.fn* *.ky* *.pg* *.tp* *.vr* *.mv*\
+	${RM} *.cp* *.fn* *.ky* *.pg* *.tp* *.vr* *.mv*\
           *.log *.toc *.aux *.dvi *.html *.txt\
           gmsh.ps gmsh.pdf gmsh.info* gmsh-info.tgz