#+ # # module # ====== # # génération des manuels ircaam # # TODO # ==== # # ++ doc executable vs doc sources (pour progfiltrage_simulation.F90) # # ++ 2 docs pour forfilter.f (filtre et kiser) # # ++ lien avec les guides # # EVOLUTIONS # ========== # # $Id$ # # - fplod 20100310T111645Z aedon.locean-ipsl.upmc.fr (Darwin) # # * add man_troff possible now with docutils 0.6 # can be test with # $ man -M ../doc//manuals/man ircaam_profile.sh # # - fplod 2009-05-13T12:48:45Z aedon.locean-ipsl.upmc.fr (Darwin) # # * implicit rules # # nb : may be will only work wih GNU make # but easier to update : only one line to add in thi makefile when # a new file (.pro or .sh) is added in $(DIRSRC) directory # # * rst2latex usage of manuals_many.sty and manual_one.sty (for TOC and parindent) # * bug fix for PDF manual (missing one pdf2latex) # # - fplod 2009-04-03T08:01:24Z aedon.locean-ipsl.upmc.fr (Darwin) # # * replace rst2newlatex by rst2latex and add options # * suppression of rawlatex # * add TOC thanks to http://docutils.sourceforge.net/docs/user/rst/demo.txt # # - fplod 2009-02-10T10:36:02Z aedon.locean-ipsl.upmc.fr (Darwin) # # * add progfiltrage_simulation.F90, forfilter.f (new category sources fortran) # * add progfiltrage_simulation.x (new category executable)++ # # - fplod 2009-02-02T13:25:23Z aedon.locean-ipsl.upmc.fr (Darwin) # # * add time_serie_eof_df.m, carte_eof_df.m, prepare_olr_filtre_simulation.m # # - fplod 2009-01-28T08:13:15Z aedon.locean-ipsl.upmc.fr (Darwin) # # * add reconstitution_ER_rossby_df.m, time_serie_histog_phase.m, # time_serie_histog_phase_num.m, composite_olr_phase.m, # composite_olr_phase_num.m, composite_olr_eof_df.m, # time_serie_jjas_df.m # # - fplod 2009-01-27T11:40:41Z aedon.locean-ipsl.upmc.fr (Darwin) # # * add time_serie_ER_rossby_df.m, time_serie_ER_rossby_df_complet.m, # carte_eof_ER_jjas_df.m, olr_eof_jjas2006_rossby_df.m, # carte_eof234_jjas_df.m # # - fplod 2009-01-06T13:47:14Z aedon.locean-ipsl.upmc.fr (Darwin) # # * add palette1.m palette3.m palettejerome30.m # # - fplod 2009-01-05T11:14:07Z aedon.locean-ipsl.upmc.fr (Darwin) # # * add sauvegrads.m cartemonde.m cartemonde1.m palette.m palettecomplet.m # # - fplod 2008-12-05T11:15:37Z aedon.locean-ipsl.upmc.fr (Darwin) # # * creation # # SEE ALSO # ======== # # extract_rst.sh_ # # .. _extract_rst.sh: ../extract_rst.sh.html # #- # PRODUCT = \ ircaam PRODUCTNAME = \ $$(echo $(PRODUCT) | tr [:lower:] [:upper:]) SUBPRODUCT = \ ircaam_ws DIRSRC = \ ../src/ DIRADM = \ ./ DIRTMP = \ ./ DIRDESIGN = \ ./design/ DIRWWW = \ ../doc/ URLPUBLISH = \ http://www.locean-ipsl.upmc.fr/~fplod/$(PRODUCT)/$(SUBPRODUCT)/doc/manuals/ LIST_SRCSH = \ $(DIRSRC)/$(PRODUCT)_profile.sh \ $(DIRSRC)/dlogd.sh \ $(DIRSRC)/elogd.sh \ $(DIRSRC)/plogd.sh \ $(DIRSRC)/tlogd.sh \ $(DIRSRC)/refdataget.sh LIST_SRCSH_RST = \ $(shell echo "$(LIST_SRCSH)" | \ sed -e "s+$(DIRSRC)+$(DIRTMP)+g" \ -e "s+\.sh+.sh.rst+g") LIST_SRCSH_TROFF = \ $(shell echo "$(LIST_SRCSH)" | \ sed -e "s+$(DIRSRC)+$(DIRWWW)/manuals/man/man1/+g" \ -e "s+\.sh+.sh.1+g") LIST_SRCSH_HTML = \ $(shell echo "$(LIST_SRCSH)" | \ sed -e "s+$(DIRSRC)+$(DIRWWW)/manuals/html/many/+g" \ -e "s+\.sh+.sh.html+g") LIST_SRCSH_PDF = \ $(shell echo "$(LIST_SRCSH)" | \ sed -e "s+$(DIRSRC)+$(DIRWWW)/manuals/pdf/many/+g" \ -e "s+\.sh+.sh.pdf+g") LIST_SRCMATLAB = \ $(DIRSRC)/$(PRODUCT)_startup.m \ $(DIRSRC)/sauvegrads.m \ $(DIRSRC)/cartemonde.m \ $(DIRSRC)/cartemonde1.m \ $(DIRSRC)/palette.m \ $(DIRSRC)/palettecomplet.m \ $(DIRSRC)/palette1.m \ $(DIRSRC)/palette3.m \ $(DIRSRC)/palettejerome30.m \ $(DIRSRC)/mode_sahelien/time_serie_ER_rossby_df.m \ $(DIRSRC)/mode_sahelien/time_serie_ER_rossby_df_complet.m \ $(DIRSRC)/mode_sahelien/carte_eof_ER_jjas_df.m \ $(DIRSRC)/mode_sahelien/olr_eof_jjas2006_rossby_df.m \ $(DIRSRC)/mode_sahelien/carte_eof234_jjas_df.m \ $(DIRSRC)/mode_sahelien/reconstitution_ER_rossby_df.m \ $(DIRSRC)/mode_sahelien/time_serie_histog_phase.m \ $(DIRSRC)/mode_sahelien/time_serie_histog_phase_num.m \ $(DIRSRC)/mode_sahelien/composite_olr_phase.m \ $(DIRSRC)/mode_sahelien/composite_olr_phase_num.m \ $(DIRSRC)/mode_sahelien/composite_olr_eof_df.m \ $(DIRSRC)/mode_sahelien/time_serie_jjas_df.m \ $(DIRSRC)/SIMULS_IRCAAM/time_serie_eof_df.m \ $(DIRSRC)/SIMULS_IRCAAM/carte_eof_df.m \ $(DIRSRC)/SIMULS_IRCAAM/prepare_olr_filtre_simulation.m LIST_SRCMATLAB_RST = \ $(shell echo "$(LIST_SRCMATLAB)" | \ sed -e "s+$(DIRSRC)/mode_sahelien+$(DIRTMP)+g" \ -e "s+$(DIRSRC)/SIMULS_IRCAAM+$(DIRTMP)+g" \ -e "s+$(DIRSRC)+$(DIRTMP)+g" \ -e "s+\.m+.m.rst+g") LIST_SRCMATLAB_HTML = \ $(shell echo "$(LIST_SRCMATLAB)" | \ sed -e "s+$(DIRSRC)/mode_sahelien/+$(DIRWWW)/manuals/html/many/+g" \ -e "s+$(DIRSRC)/SIMULS_IRCAAM/+$(DIRWWW)/manuals/html/many/+g" \ -e "s+$(DIRSRC)+$(DIRWWW)/manuals/html/many/+g" \ -e "s+\.m+.m.html+g") LIST_SRCMATLAB_PDF = \ $(shell echo "$(LIST_SRCMATLAB)" | \ sed -e "s+$(DIRSRC)/mode_sahelien/+$(DIRWWW)/manuals/pdf/many/+g" \ -e "s+$(DIRSRC)/SIMULS_IRCAAM/+$(DIRWWW)/manuals/pdf/many/+g" \ -e "s+$(DIRSRC)+$(DIRWWW)/manuals/pdf/many/+g" \ -e "s+\.m+.m.pdf+g") LIST_SRCFORTRAN = \ $(DIRSRC)/SIMULS_IRCAAM/progfiltrage_simulation.F90 \ $(DIRSRC)/forfilter.f LIST_SRCFORTRAN_RST = \ $(shell echo "$(LIST_SRCFORTRAN)" | \ sed -e "s+$(DIRSRC)/SIMULS_IRCAAM/+$(DIRTMP)+g" \ -e "s+$(DIRSRC)+$(DIRTMP)+g" \ -e "s+\.F90+.F90.rst+g" \ -e "s+\.f+.f.rst+g") LIST_SRCFORTRAN_HTML = \ $(shell echo "$(LIST_SRCFORTRAN)" | \ sed -e "s+$(DIRSRC)/SIMULS_IRCAAM/+$(DIRWWW)/manuals/html/many/+g" \ -e "s+$(DIRSRC)+$(DIRWWW)/manuals/html/many/+g" \ -e "s+\.F90+.F90.html+g" \ -e "s+\.f+.f.html+g") LIST_SRCFORTRAN_PDF = \ $(shell echo "$(LIST_SRCFORTRAN)" | \ sed -e "s+$(DIRSRC)/mode_sahelien/+$(DIRWWW)/manuals/pdf/many/+g" \ -e "s+$(DIRSRC)/SIMULS_IRCAAM/+$(DIRWWW)/manuals/pdf/many/+g" \ -e "s+$(DIRSRC)+$(DIRWWW)/manuals/pdf/many/+g" \ -e "s+\.F90+.F90.pdf+g" \ -e "s+\.f+.f.pdf+g") RST2MAN = \ rst2man.py RST2HTML = \ rst2html.py RST2LATEX = \ rst2latex.py RST2LATEX_OPTIONS_ONE = \ --documentclass=book \ --stylesheet=manual_one.sty \ --use-latex-toc \ --section-numbering \ --traceback \ --use-verbatim-when-possible RST2LATEX_OPTIONS_MANY = \ --documentclass=article \ --stylesheet=manuals_many.sty \ --traceback \ --use-verbatim-when-possible .PHONY : \ help \ before \ clean \ cleantmp \ design \ htmllinkcheckb \ htmllinkchecka \ spellcheck \ all \ man_troff \ man_html \ man_html_one \ man_html_many \ man_pdf \ man_pdf_one \ man_pdf_many help : @echo "Prepare output directories :" @echo "\$$ make before" @echo "" @echo "Following commands are available to build outputs :" @echo "\$$ make all" @echo " " @echo "Check links before installation : " @echo "\$$ make htmllinkcheckb" @echo " " @echo "Last step = installation of HTML and pdf files" @echo "\$$ make install_all" @echo " " @echo "Check links after installation : " @echo "\$$ make htmllinkchecka" @echo " " before : @mkdir -p $(DIRWWW)/manuals/man/man1/ @mkdir -p $(DIRWWW)/manuals/html/one/ @mkdir -p $(DIRWWW)/manuals/html/many/ @mkdir -p $(DIRWWW)/manuals/pdf/one/ @mkdir -p $(DIRWWW)/manuals/pdf/many/ install_all : \ install_html \ install_pdf install_html : @$(DIRADM)/install.sh -w $(DIRWWW)/manuals/html/ -u $(URLPUBLISH)/html/ install_pdf : @$(DIRADM)/install.sh -w $(DIRWWW)/manuals/pdf/ -u $(URLPUBLISH)/pdf/ clean : \ cleantmp -@rm -fr $(DIRWWW)/manuals/man/ -@rm -fr $(DIRWWW)/manuals/html/ -@rm -fr $(DIRWWW)/manuals/pdf/ -@rm -fr $(DIRWWW)/src_browser/ cleantmp : -@rm -f $(DIRTMP)/all.xml -@rm -f $(DIRTMP)/*.rst -@rm -f $(DIRTMP)/*.rst[12] -@rm -f $(DIRTMP)/links.rst* -@rm -f $(DIRTMP)/*.tex -@rm -f $(DIRWWW)/manuals/pdf/one/*.aux -@rm -f $(DIRWWW)/manuals/pdf/one/*.log -@rm -f $(DIRWWW)/manuals/pdf/one/*.out -@rm -f $(DIRWWW)/manuals/pdf/many/*.aux -@rm -f $(DIRWWW)/manuals/pdf/many/*.log -@rm -f $(DIRWWW)/manuals/pdf/many/*.out design : \ $(DIRDESIGN)/images/$(PRODUCT)_fulldependencies.png \ $(DIRDESIGN)/images/$(PRODUCT)_fulldependencies.svg htmllinkcheckb : @$(DIRADM)/linkchecker.sh -d $(DIRWWW)/manuals/html/ htmllinkchecka : @$(DIRADM)/linkchecker.sh -u $(URLPUBLISH) spellcheck : @++aspell --mode=sgml --master=english -c \ $(DIRSRC)/$(PRODUCT).xml all : \ man_troff \ man_html \ man_pdf man_troff : \ $(LIST_SRCSH_TROFF) man_html : \ man_html_one \ man_html_many man_html_one : \ $(DIRWWW)/manuals/html/one/index.html man_html_many : \ $(DIRWWW)/manuals/html/many/index.html \ $(LIST_SRCSH_HTML) \ $(LIST_SRCMATLAB_HTML) \ $(LIST_SRCFORTRAN_HTML) man_pdf : \ man_pdf_one \ man_pdf_many man_pdf_one : \ $(DIRWWW)/manuals/pdf/one/$(PRODUCT)_manuals.pdf \ man_pdf_many : \ $(LIST_SRCSH_PDF) \ $(LIST_SRCMATLAB_PDF) \ $(LIST_SRCFORTRAN_PDF) $(DIRWWW)/manuals/html/many/index.html : \ $(DIRTMP)/index_many.rst @$(RST2HTML) --input-encoding=ISO-8859-15 --strict \ $< $@ $(DIRWWW)/manuals/html/one/index.html : \ $(DIRTMP)/$(PRODUCT)_manuals.rst @$(RST2HTML) --input-encoding=ISO-8859-15 --strict \ $< $@ $(DIRWWW)/manuals/pdf/one/$(PRODUCT)_manuals.pdf : \ $(DIRTMP)/$(PRODUCT)_manuals.tex @-pdflatex -output-directory $(DIRWWW)/manuals/pdf/one/ $< @-pdflatex -output-directory $(DIRWWW)/manuals/pdf/one/ $< $(DIRTMP)/$(PRODUCT)_manuals.tex : \ $(DIRTMP)/$(PRODUCT)_manuals.rst @$(RST2LATEX) $(RST2LATEX_OPTIONS_ONE) --input-encoding=ISO-8859-15 --strict \ $< $@ $(DIRTMP)/$(PRODUCT)_manuals.rst : \ $(DIRTMP)/index_one.rst \ $(LIST_SRCSH_RST) \ $(LIST_SRCMATLAB_RST) \ $(LIST_SRCFORTRAN_RST) @cat $(DIRTMP)/index_one.rst > ${DIRTMP}/$(PRODUCT)_manuals.rst1 @echo "Shell scripts" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1 @echo "=============" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1 @for file in $(LIST_SRCSH); \ do echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo ".. _$$(basename $${file}) :" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo "$$(basename $${file})" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo "$$(basename $${file} | tr [:print:] -)" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1 ; \ echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ sed -e "s/^==*$$/-----------------/" \ -e "s/^--*$$/~~~~~~~~~~~~~~~~~~~~/" \ ${DIRTMP}/$$(basename $${file}).rst >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ done @echo "MATLAB scripts" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1 @echo "==============" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1 @for file in $(LIST_SRCMATLAB); \ do echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo ".. _$$(basename $${file}) :" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo "$$(basename $${file})" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo "$$(basename $${file} | tr [:print:] -)" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1 ; \ echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ sed -e "s/^==*$$/-----------------/" \ -e "s/^--*$$/~~~~~~~~~~~~~~~~~~~~/" \ ${DIRTMP}/$$(basename $${file}).rst >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ done @echo "Fortran Sources" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1 @echo "===============" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1 @for file in $(LIST_SRCFORTRAN); \ do echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo ".. _$$(basename $${file}) :" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo "$$(basename $${file})" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ echo "$$(basename $${file} | tr [:print:] -)" >> ${DIRTMP}/$(PRODUCT)_manuals.rst1 ; \ echo " " >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ sed -e "s/^==*$$/-----------------/" \ -e "s/^--*$$/~~~~~~~~~~~~~~~~~~~~/" \ ${DIRTMP}/$$(basename $${file}).rst >> ${DIRTMP}/$(PRODUCT)_manuals.rst1; \ done @grep "\.\. _.*: .*$$" ${DIRTMP}/$(PRODUCT)_manuals.rst1 > \ ${DIRTMP}/links.rst @sed -e "s/^ *//" ${DIRTMP}/links.rst | sort -u > ${DIRTMP}/links.rst2 @sed -e "/\.\. _.*: .*$$/d" ${DIRTMP}/$(PRODUCT)_manuals.rst1 > \ ${DIRTMP}/$(PRODUCT)_manuals.rst2 @cp ${DIRTMP}/$(PRODUCT)_manuals.rst2 $@ $(DIRTMP)/index_one.rst : @echo "=================" >> $@ @echo "$(PRODUCTNAME) manuals" >> $@ @echo "=================" >> $@ @echo " " >> $@ @echo ".. contents:: Table of Contents" >> $@ @echo " :depth: 2" >> $@ @echo ".. section-numbering::" >> $@ @echo " " >> $@ $(DIRTMP)/index_many.rst : @echo "=================" >> $@ @echo "$(PRODUCTNAME) manuals" >> $@ @echo "=================" >> $@ @echo " " >> $@ @echo "Shell scripts" >> $@ @echo "=============" >> $@ @for file in $(LIST_SRCSH); \ do echo " "; \ echo ".. _$$(basename $${file}) : $$(basename $${file}).html"; \ echo " "; \ echo "- $$(basename $${file})_"; \ done >> $@ @echo " " >> $@ @echo "MATLAB scripts" >> $@ @echo "==============" >> $@ @for file in $(LIST_SRCMATLAB); \ do echo " "; \ echo ".. _$$(basename $${file}) : $$(basename $${file}).html"; \ echo " "; \ echo "- $$(basename $${file})_"; \ done >> $@ @echo " " >> $@ @echo "Fortran Sources" >> $@ @echo "===============" >> $@ @for file in $(LIST_SRCFORTRAN); \ do echo " "; \ echo ".. _$$(basename $${file}) : $$(basename $${file}).html"; \ echo " "; \ echo "- $$(basename $${file})_"; \ done >> $@ @echo " " >> $@ $(DIRWWW)/manuals/man/man1/%.1:$(DIRTMP)/%.rst @$(RST2MAN) --input-encoding=ISO-8859-15 --strict \ $< $@ $(DIRWWW)/manuals/html/many/%.html:$(DIRTMP)/%.rst @$(RST2HTML) --input-encoding=ISO-8859-15 --strict \ $< $@ $(DIRWWW)/manuals/pdf/many/%.pdf : $(DIRTMP)/%.tex @-pdflatex -output-directory $(DIRWWW)/manuals/pdf/many/ $< @-pdflatex -output-directory $(DIRWWW)/manuals/pdf/many/ $< $(DIRTMP)/%.tex : $(DIRTMP)/%.rst @$(RST2LATEX) $(RST2LATEX_OPTIONS_MANY) --input-encoding=ISO-8859-15 --strict \ $< $@ $(DIRTMP)/%.sh.rst : $(DIRSRC)/%.sh @$(DIRADM)/extract_rst.sh -i $< -l sh -o $@ $(DIRTMP)/%.m.rst : $(DIRSRC)/%.m @$(DIRADM)/extract_rst.sh -i $< -l matlab -o $@ $(DIRTMP)/%.m.rst : $(DIRSRC)/mode_sahelien/%.m @$(DIRADM)/extract_rst.sh -i $< -l matlab -o $@ $(DIRTMP)/%.m.rst : $(DIRSRC)/SIMULS_IRCAAM/%.m @$(DIRADM)/extract_rst.sh -i $< -l matlab -o $@ $(DIRTMP)/%.F90.rst : $(DIRSRC)/SIMULS_IRCAAM/%.F90 @$(DIRADM)/extract_rst.sh -i $< -l fortran -o $@ $(DIRTMP)/%.f.rst : $(DIRSRC)/%.f @$(DIRADM)/extract_rst.sh -i $< -l fortran -o $@ $(DIRDESIGN)/images/%.png : $(DIRDESIGN)/images/%.svg @convert $< $@ $(DIRDESIGN)/images/%.svg : $(DIRDESIGN)/%.dot @dot -Tsvg -o $@ $< $(DIRDESIGN)/$(PRODUCT)_fulldependencies.dot : \ ./makefile @makeppgraph --graphviz --output=$@