diff --git a/Makefile.conf.in b/Makefile.conf.in
index adc18cda09788f34cc550884d2dbaa34290ec621..b525a10a4916aed8b4a6c789858b7e107629e704 100644
--- a/Makefile.conf.in
+++ b/Makefile.conf.in
@@ -18,6 +18,8 @@ program_name=@program_name@
 program_transform_name=@program_transform_name@
 program_can_run_mpi=@program_can_run_mpi@
 program_can_run=@program_can_run@
+make_pdfdoc=@make_pdfdoc@
+make_doc=@make_doc@
 PACKAGE_TARNAME=@program_name@
 LD_RO=@LD_RO@
 exec_prefix=@exec_prefix@
diff --git a/configure b/configure
index 2586638be2a2438638832454a32a2939007a59a9..87bd64d4399f70c961de46f4cda522691e9415f6 100755
--- a/configure
+++ b/configure
@@ -626,8 +626,10 @@ LD_RO
 program_can_run_mpi
 program_can_run
 xxd
+make_pdfdoc
 dot
 doxygen
+make_doc
 LD
 OPENMP_CXXFLAGS
 EGREP
@@ -691,6 +693,8 @@ ac_subst_files=''
 ac_user_opts='
 enable_option_checking
 enable_modules
+enable_doc
+enable_pdfdoc
 enable_debug
 enable_basic_warnings
 enable_fussy
@@ -1349,6 +1353,8 @@ Optional Features:
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --enable-modules        all/none/reset or : separated list such as
                           +crystallization:-bias default: reset
+  --enable-doc            enable documentation, default: yes
+  --enable-pdfdoc         enable pdf version of the manual, default: yes
   --enable-debug          enable debugging, default: no
   --enable-basic-warnings enable basic warnings, default: yes
   --enable-fussy          enable fussy warnings, default: no
@@ -2392,6 +2398,42 @@ fi
 
 # set enable flags for ./configure
 
+doc=
+# Check whether --enable-doc was given.
+if test "${enable_doc+set}" = set; then :
+  enableval=$enable_doc; case "${enableval}" in
+             (yes) doc=true ;;
+             (no)  doc=false ;;
+             (*)   as_fn_error $? "wrong argument to --enable-doc" "$LINENO" 5 ;;
+  esac
+else
+  case "yes" in
+             (yes) doc=true ;;
+             (no)  doc=false ;;
+  esac
+
+fi
+
+
+
+pdfdoc=
+# Check whether --enable-pdfdoc was given.
+if test "${enable_pdfdoc+set}" = set; then :
+  enableval=$enable_pdfdoc; case "${enableval}" in
+             (yes) pdfdoc=true ;;
+             (no)  pdfdoc=false ;;
+             (*)   as_fn_error $? "wrong argument to --enable-pdfdoc" "$LINENO" 5 ;;
+  esac
+else
+  case "yes" in
+             (yes) pdfdoc=true ;;
+             (no)  pdfdoc=false ;;
+  esac
+
+fi
+
+
+
 debug=
 # Check whether --enable-debug was given.
 if test "${enable_debug+set}" = set; then :
@@ -6532,6 +6574,13 @@ $as_echo "$as_me: WARNING: dynamic library will be disabled" >&2;}
 fi
 #### Options for dynamic library to work properly ####
 
+
+make_doc=no
+if test "$doc" == true
+then
+
+make_doc=yes
+
 ### Look for doxygen
 # Extract the first word of "doxygen", so it can be a program name with args.
 set dummy doxygen; ac_word=$2
@@ -6578,8 +6627,9 @@ then
     { $as_echo "$as_me:${as_lineno-$LINENO}: Doxygen version is fine" >&5
 $as_echo "$as_me: Doxygen version is fine" >&6;}
   else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Doxygen version is <1.8. You might have problems in generating manuals" >&5
-$as_echo "$as_me: WARNING: Doxygen version is <1.8. You might have problems in generating manuals" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Doxygen version is <1.8" >&5
+$as_echo "$as_me: WARNING: Doxygen version is <1.8" >&2;}
+    make_doc=no
   fi
   # Extract the first word of "dot", so it can be a program name with args.
 set dummy dot; ac_word=$2
@@ -6624,6 +6674,29 @@ fi
 $as_echo "$as_me: WARNING: You will not be able to see diagrams in the manual" >&2;}
   fi
 fi
+fi
+
+if test "$make_doc" = yes
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: Manuals will be generated" >&5
+$as_echo "$as_me: Manuals will be generated" >&6;}
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: Manuals will not be generated" >&5
+$as_echo "$as_me: Manuals will not be generated" >&6;}
+fi
+
+
+make_pdfdoc=""
+if test "$pdfdoc" == true && test "$make_doc" == yes
+then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: A PDF version of the manual will be generated" >&5
+$as_echo "$as_me: A PDF version of the manual will be generated" >&6;}
+  make_pdfdoc=yes
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: A PDF version of the manual will not be generated" >&5
+$as_echo "$as_me: A PDF version of the manual will not be generated" >&6;}
+  make_pdfdoc=no
+fi
 
 ### Look for xxd
 # Extract the first word of "xxd", so it can be a program name with args.
diff --git a/configure.ac b/configure.ac
index c003c4136bd1bb830a4af2c9b6c4cfce2b5713ef..48926f216d1c53c3e8bf507386c9886831230989 100644
--- a/configure.ac
+++ b/configure.ac
@@ -156,6 +156,8 @@ AC_ARG_ENABLE([modules],
 
 
 # set enable flags for ./configure
+PLUMED_CONFIG_ENABLE([doc],[doc],[documentation],[yes])
+PLUMED_CONFIG_ENABLE([pdfdoc],[pdfdoc],[pdf version of the manual],[yes])
 PLUMED_CONFIG_ENABLE([debug],[debug],[debugging],[no])
 PLUMED_CONFIG_ENABLE([basic_warnings],[basic-warnings],[basic warnings],[yes])
 PLUMED_CONFIG_ENABLE([fussy],[fussy],[fussy warnings],[no])
@@ -534,6 +536,13 @@ then
 fi
 #### Options for dynamic library to work properly ####
 
+AC_SUBST(make_doc)
+make_doc=no
+if test "$doc" == true
+then
+
+make_doc=yes
+
 ### Look for doxygen
 AC_CHECK_PROG([doxygen],[doxygen],[found])
 if test "$doxygen" == found
@@ -543,7 +552,8 @@ then
   then
     AC_MSG_NOTICE([Doxygen version is fine])
   else
-    AC_MSG_WARN([Doxygen version is <1.8. You might have problems in generating manuals])
+    AC_MSG_WARN([Doxygen version is <1.8])
+    make_doc=no
   fi
   AC_CHECK_PROG([dot],[dot],[found])
   if test "$dot" != found
@@ -551,6 +561,25 @@ then
     AC_MSG_WARN([You will not be able to see diagrams in the manual])
   fi
 fi
+fi
+
+if test "$make_doc" = yes
+then
+  AC_MSG_NOTICE([Manuals will be generated])
+else
+  AC_MSG_NOTICE([Manuals will not be generated])
+fi
+
+AC_SUBST(make_pdfdoc)
+make_pdfdoc=""
+if test "$pdfdoc" == true && test "$make_doc" == yes
+then
+  AC_MSG_NOTICE([A PDF version of the manual will be generated])
+  make_pdfdoc=yes
+else
+  AC_MSG_NOTICE([A PDF version of the manual will not be generated])
+  make_pdfdoc=no
+fi
 
 ### Look for xxd
 AC_CHECK_PROG([xxd],[xxd],[found])
diff --git a/developer-doc/Makefile b/developer-doc/Makefile
index f62e49febc4f28472d18301879a74d9a9a2eafd7..da31eaa8b19dd25e539fe596f2748fbece96c3cd 100644
--- a/developer-doc/Makefile
+++ b/developer-doc/Makefile
@@ -1,10 +1,14 @@
+# include the machine dependent configuration
+-include ../Makefile.conf
 
 .PHONY: all clean
 
 all:
+ifeq ($(make_doc),yes)
 	./extract
 	./go-doxygen
 	cp *png html/
+endif
 
 clean:
 	rm -fr automatic html latex *~ links-to-user-manual.txt
diff --git a/user-doc/Intro.txt b/user-doc/Intro.txt
index a1d6d7b1e3e29d6836c26283bf3e7e92e2855c6f..eab2c19e0eed8412d5d325641806d5f7f7b0ae78 100644
--- a/user-doc/Intro.txt
+++ b/user-doc/Intro.txt
@@ -10,10 +10,7 @@ new methods, more straightforward to add it to MD codes and hopefully simpler to
 This is the user manual -  if you want to modify PLUMED or to understand how it works internally, have a look at the 
 <a href="../../developer-doc/html/index.html"> developer manual </a>.
 
-\htmlonly
-An experimental PDF copy of this manual can be found
-<a href="../manual.pdf"> here </a>.
-\endhtmlonly
+@PDFMANUAL@
 
 To understand the difference between PLUMED 1 and PLUMED 2, and to
 follow the development of PLUMED 2, you can look at the detailed \ref Changelog.
@@ -27,7 +24,7 @@ To install PLUMED 2, see this page: \ref Installation
 
 @VERSION@
 
-Since version 2.1 we provide an experimental PDF manual.
+Since version 2.1 we optionally provide an experimental PDF manual.
 The PDF version is still not complete and has some known issue (e.g. some
 links are not working properly and images are not correctly included),
 and the html documentation should be considered as the official one.
diff --git a/user-doc/Makefile b/user-doc/Makefile
index 934a4267514520c4fc75eea82508d2659f1714d6..604feb26259d1dc97b91fcf4f8b6767c0dc95e62 100644
--- a/user-doc/Makefile
+++ b/user-doc/Makefile
@@ -13,11 +13,12 @@ all:
 else
 
 all:
-	./extract
-	./go-doxygen
+ifeq ($(make_doc),yes)
+	make_pdfdoc=$(make_pdfdoc) ./extract
+	make_pdfdoc=$(make_pdfdoc) ./go-doxygen
 	cp *png html/
 	./report_errors
-
+endif
 endif
 
 clean:
diff --git a/user-doc/extract b/user-doc/extract
index 368ed57f5ba3187d59da1c29b8dc94c5c39b8338..2c48711d5689686087ecae7615d89a241157b1a6 100755
--- a/user-doc/extract
+++ b/user-doc/extract
@@ -46,6 +46,17 @@ for file in ../CHANGES/* ; do
 echo "- Changes for \\subpage $(cat $file | grep "@page" | awk '{print $2}')"
 done > automatic/changes.tmp
 
+if test "$make_pdfdoc" = yes ; then
+cat > automatic/pdfmanual.tmp << \EOF
+\htmlonly
+An experimental PDF copy of this manual can be found
+<a href="../manual.pdf"> here </a>.
+\endhtmlonly
+EOF
+else
+touch automatic/pdfmanual.tmp
+fi
+
 # Check for files that register actions with no documentation
 for file in ../src/*/*.cpp
 do
@@ -284,5 +295,6 @@ cat $file.txt |
     /^ *@CODESL@ *$/r     automatic/codesl.list
     /^ *@VERSION@ *$/r    automatic/version.tmp
     /^ *@CHANGES@ *$/r    automatic/changes.tmp
+    /^ *@PDFMANUAL@ *$/r  automatic/pdfmanual.tmp
 " | grep -Ev '^ *@[A-Z]*@ *$' > ${file}PP.txt
 done
diff --git a/user-doc/go-doxygen b/user-doc/go-doxygen
index c58e5c1f6f081ac49a9a0a9939f9e3cbaac18107..edf3465a2de246b1e63c2cfdd32c2c67960130ac 100755
--- a/user-doc/go-doxygen
+++ b/user-doc/go-doxygen
@@ -54,6 +54,10 @@ done
 cat html/doxygen.css plumed.css > html/doxygen.css.tmp
 mv html/doxygen.css.tmp html/doxygen.css
 
+if [ "$make_pdfdoc" != yes ] ; then
+  exit
+fi
+
 cd latex
 
 # this is a workaround for a problem on the linux workstation