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