Site perso : Emmanuel Branlard
######################################################################## ### General syntax # target: dependencies # command # ### Variables : in a command: # $@ : target name # $< : current(first) dependency # $ˆ : all dependency, even in other folders(cf VPATH) # $? : dependency that have been modified (were not up to date) # $* : target name without extension (%) # * : like in a shell, *.c *.o # In target and dependency # % : particular target or rule # # Functions $() # SRC:=$(wildcard *.o) ######################################################################## FC = ifort CC = gcc FFLAGS = -g CFLAGS = -Df2cFortran LDFLAGS = INCLS = BINNAME = NWTCLIB = ../../NWTC_Lib/Source/ INFLOWLIB = ../../InflowWind/Source/ PATHSEP =: ######################################################################## SRC=$(wildcard *.f90) OBJ= $(patsubst %.f90,%.o,$(SRC)) all: $(OBJ) init: @echo $(SRC) @echo $(OBJ) @(cd $(NWTCLIB) ; $(MAKE) all); @(cd $(INFLOWLIB) ; $(MAKE) all); clean: rm *.mod *.o %.o: %.f90 $(FC) $(FFLAGS) $(INCLS) -c $< -I$(NWTCLIB) -I$(INFLOWLIB) AeroDyn.o : SharedTypes.o AeroMods.o AeroSubs.o AeroSubs.o: GenSubs.o AeroMods.o GenSubs.o : AeroMods.o
#---------------------------------------------------- # DOCUMENT OPTIONS #---------------------------------------------------- MASTER=WTbook-Branlard OS=WINDOWS USE_BIBTEX=1 USE_MAKEINDEX=1 USE_MAKEGLOSS=0 USE_PSTRICKS=0 #---------------------------------------------------- # PATHS #---------------------------------------------------- FIGSDIR=figs FIGSDUMPDIR=figsdump SVGDIR=svg SVGTEXDIR=svgtex BIBDIR=bib SRCDIR=. #---------------------------------------------------- # BINARIES #---------------------------------------------------- ifeq ($(OS),Windows_NT) LATEX = C:/Unix/Miktex/miktex/bin/latex BIBTEX = C:/Unix/Miktex/miktex/bin/bibtex DVIPS = C:/Unix/Miktex/miktex/bin/dvips PDFLATEX = C:/Unix/Miktex/miktex/bin/pdflatex MAKEINDEX= C:/Unix/Miktex/miktex/bin/makeindex LATEXHTML= C:/Unix/Miktex/miktex/bin/latex2html PS4PDF= ps4pdf else LATEX = latex BIBTEX = bibtex DVIPS =dvips PDFLATEX =pdflatex MAKEINDEX= makeindex LATEXHTML= latex2html PS4PDF= ps4pdf endif test: @echo Done @echo $(LATEX) CONVERT=convert LN=ln PDFTOEPS=pdftops -eps EPSTOPDF=epstopdf SVGTOLATEX=svg2latex.py SVGTOPDF=inkscape -D -A SVGTOEPS=inkscape -D -E #---------------------------------------------------- # FLAGS #---------------------------------------------------- TEX_FLAGS = --file-line-error-style --interaction=nonstopmode BIB_FLAGS = HTML_FLAGS = PDFLATEX_FLAGS = --file-line-error-style --interaction=nonstopmode PS2PDF_FLAGS = -dMaxSubsetPct=100 -dCompatibilityLevel=1.2 -dSubsetFonts=true -dEmbedAllFonts=true MAKEINDEX_FLAGS = -s pre/index_style.ist MAKEGLOSS_FLAGS = -s pre/glossaire_style.ist DVIPS_FLAGS = -Ppdf -G0 #---------------------------------------------------- # SRC FILES #---------------------------------------------------- FIGS=$(notdir $(wildcard $(FIGSDUMPDIR)/*)) FIGSRC=$(patsubst %,$(FIGSDUMPDIR)/%,$(FIGS)) TEXSRC = $(wildcard $(SRCDIR)/pre/*.tex) \ $(wildcard $(SRCDIR)/tex/*.tex) BIBSRC = $(wildcard $(BIBDIR)/*.bib) # Using Bibtex ifneq ($(strip $(BIBSRC)),) BBLSRC = $(MASTER).bbl endif #---------------------------------------------------- # Display Codes (this is so we can track passes) #---------------------------------------------------- SETCOLOR_BLACK = @echo "\\033[0;30m" SETCOLOR_RED = @echo "\\033[0;31m" SETCOLOR_GREEN = @echo "\\033[0;32m" SETCOLOR_BLUE = @echo "\\033[0;34m" #---------------------------------------------------- # PNG #----------------------------------------------------- PNGS=$(notdir $(wildcard $(FIGSDUMPDIR)/*.png)) PNGS2EPSS=$(patsubst %,$(FIGSDIR)/%,$(PNGS:.png=.eps)) PNGS2PDFS=$(patsubst %,$(FIGSDIR)/%,$(PNGS:.png=.pdf)) #----------------------------------------------------- # JPG #----------------------------------------------------- JPGS=$(notdir $(wildcard $(FIGSDUMPDIR)/*.jpg)) JPGS2EPSS=$(patsubst %,$(FIGSDIR)/%,$(JPGS:.jpg=.eps)) JPGS2PDFS=$(patsubst %,$(FIGSDIR)/%,$(JPGS:.jpg=.pdf)) #----------------------------------------------------- # EPS #----------------------------------------------------- EPSS=$(notdir $(wildcard $(FIGSDUMPDIR)/*.eps)) EPSS2EPSS=$(patsubst %,$(FIGSDIR)/%,$(EPSS:.eps=.eps)) EPSS2PDFS=$(patsubst %,$(FIGSDIR)/%,$(EPSS:.eps=.pdf)) #----------------------------------------------------- # PDF #----------------------------------------------------- PDFS=$(notdir $(wildcard $(FIGSDUMPDIR)/*.pdf)) PDFS2EPSS=$(patsubst %,$(FIGSDIR)/%,$(PDFS:.pdf=.eps)) PDFS2PDFS=$(patsubst %,$(FIGSDIR)/%,$(PDFS:.pdf=.pdf)) #----------------------------------------------------- # SVGTEX #----------------------------------------------------- SVGTEXS=$(notdir $(wildcard $(SVGTEXDIR)/*.svg)) SVGTEXS2PDFS=$(patsubst %,$(FIGSDIR)/%,$(SVGTEXS:.svg=.pdf)) SVGTEX2SEPSS=$(patsubst %,$(FIGSDIR)/%,$(SVGTEXS:.svg=.eps)) #----------------------------------------------------- # SVG #----------------------------------------------------- SVGS=$(notdir $(wildcard $(SVGDIR)/*.svg)) SVGS2PDFS=$(patsubst %,$(FIGSDIR)/%,$(SVGS:.svg=.pdf)) SVGS2SEPSS=$(patsubst %,$(FIGSDIR)/%,$(SVGS:.svg=.eps)) #----------------------------------------------------- #----------------------------------------------------- # CONVERSION TO EPS #----------------------------------------------------- $(FIGSDIR)/%.eps : $(FIGSDUMPDIR)/%.png $(CONVERT) "$<" EPS3:"$@" $(FIGSDIR)/%.eps : $(FIGSDUMPDIR)/%.jpg $(CONVERT) "$<" EPS3:"$@" $(FIGSDIR)/%.eps : $(FIGSDUMPDIR)/%.pdf $(PDFTOEPS) "$<" "$@" $(FIGSDIR)/%.eps : $(FIGSDUMPDIR)/%.eps $(LN) "$<" "$@" $(FIGSDIR)/%.eps: $(SVGTEXDIR)/%.svg $(SVGTOLATEX) -f "$<" -l "$(FIGSDIR)/$*.tex" -e -o $(FIGSDIR)/%.eps: $(SVGDIR)/%.svg $(SVGTOEPS) "$@" "$<" #----------------------------------------------------- # CONVERSION TO PDF #----------------------------------------------------- $(FIGSDIR)/%.pdf : $(FIGSDUMPDIR)/%.png $(CONVERT) "$<" "$@" $(FIGSDIR)/%.pdf : $(FIGSDUMPDIR)/%.jpg $(CONVERT) "$<" "$@" $(FIGSDIR)/%.pdf : $(FIGSDUMPDIR)/%.eps $(EPSTOPDF) "$<" --outfile="$@" $(FIGSDIR)/%.pdf : $(FIGSDUMPDIR)/%.pdf $(LN) "$<" "$@" $(FIGSDIR)/%.pdf: $(SVGTEXDIR)/%.svg $(SVGTOLATEX) -f "$<" -l "$(FIGSDIR)/$*.tex" -o $(FIGSDIR)/%.pdf: $(SVGDIR)/%.svg $(SVGTOPDF) "$@" "$<" #----------------------------------------------------- # MAIN COMMANDS #----------------------------------------------------- all:allpdf allpdf: figspdf pdfall # $(MASTER).pdf #$(MASTER).pdf $(TEXSRC) $(FIGSRC) $(BIBSRC) clean : @rm -f *.aux *.bbl *.blg *.log *.dvi *.idx *.ilg *.ind *.toc *.lot *.thm *.cb *.cb2 *.gls *.mtc0\ *.lof *~ *.bak *.blg *.exa *.adx *.bmt *.mtc *.out *.som *.glo *.glx *.tns *.tpt *.maf *.brf cleansvgs: rm -f $(SVGTEXS2PDFS) $(SVGS2PDFS) figssvg: $(SVGTEXS2PDFS) $(SVGS2PDFS) cleanfigs: rm -f $(FIGSDIR)/* figspdf: $(JPGS2PDFS) $(PNGS2PDFS) $(SVGTEXS2PDFS) $(SVGS2PDFS) $(EPSS2PDFS) $(PDFS2PDFS) figseps: $(JPGS2EPSS) $(PNGS2EPSS) $(SVGTEXS2EPSS) $(SVGS2EPSS) $(EPSS2EPSS) $(PDFS2EPSS) fipspng: figslower: for i in figsdump/* ;do ext=`echo $${i#*.}|tr '[:upper:]' '[:lower:]'`; mv "$$i" "$${i%.*}.$$ext"; done #----------------------------------------------------- # SEQUENCES #----------------------------------------------------- pdf: $(PDFLATEX) $(PDFLATEX_FLAGS) $(MASTER) pdfall: ifeq ($(USE_PSTRICKS),1) @echo "======================================= PSTRICKS ================================================" $(PS4PDF) $(MASTER).tex endif @echo "======================================= PDFLATEX1 ================================================" $(PDFLATEX) $(PDFLATEX_FLAGS) $(MASTER) ifeq ($(USE_BIBTEX),1) @echo "======================================= BIBTEX ================================================" $(BIBTEX) $(BIB_FLAGS) $(MASTER) endif ifeq ($(USE_MAKEINDEX),1) @echo "======================================= MAKEINDEX ================================================" $(MAKEINDEX) $(MAKEINDEX_FLAGS) $(MASTER) endif ifeq ($(USE_MAKEGLOSS),1) @echo "======================================= MAKEGLOSS ================================================" $(MAKEINDEX) $(MAKEGLOSS_FLAGS) -o $(MASTER).gls $(MASTER).glo endif @echo "======================================= PDFLATEX2 ================================================" $(PDFLATEX) $(PDFLATEX_FLAGS) $(MASTER) @echo "======================================= PDFLATEX3 ================================================" $(PDFLATEX) $(PDFLATEX_FLAGS) $(MASTER) #~ $(LATEX) $(TEX_FLAGS) $(MASTER) #~ $(DVIPS) $(DVIPS_FLAGS) -o $(FIGSDIR)/PSTRICKSFIGURES.ps $(MASTER).dvi #~ $(PS2PDF) -dAutoRotatePages=/None pst-pdf-example1-pics.pdf #~ $(PDFLATEX) $(PDFLATEX_FLAGS) $(MASTER) latexquick: $(LATEX) $(MASTER) latex: $(LATEX) $(TEX_FLAGS) $(MASTER) $(BIBTEX) $(BIB_FLAGS) $(MASTER) $(LATEX) $(TEX_FLAGS) $(MASTER) $(LATEX) $(TEX_FLAGS) $(MASTER) #----------------------------------------------------- # LATEX #----------------------------------------------------- # To accomplish 2 compilation we chain from tex->aux->dvi # To generate a .aux file from a .tex file # To generate a .dvi file from a .tex file $(MASTER).dvi : $(MASTER).aux $(LATEX) $(TEX_FLAGS) $< >/dev/null # To generate a .ps file from a .dvi file $(MASTER).ps :$(MASTER).dvi $(DVIPS) $(DVIPS_FLAGS) -o $@ $< #----------------------------------------------------- # INDEX #----------------------------------------------------- index: $(MASTER).aux $(MASTER).idx $(MASTER).ilg $(MASTER).ind # To generate a .idx file from a .tex file %.ilg : %.idx $(MAKEINDEX) $(MAKEINDEX_FLAGS) $(*F) bibindex : bibtex index #makeindex -s bibidx/manuel.ist $(MASTER) #makeindex -s bibidx/glossaire.ist $(MASTER).glo -o $(MASTER).glx #bibtex $(MASTER) #----------------------------------------------------- # HTML Output #----------------------------------------------------- html : $(MASTER).php fipspng #----------------------------------------------------- # PDFLATEX #----------------------------------------------------- $(MASTER).pdf : $(MASTER).tex $(PDFLATEX) $(PDFLATEX_FLAGS) $< %.aux : %.tex $(PDFLATEX) $(PDFLATEX_FLAGS) $< #----------------------------------------------------- # BIBTEX #----------------------------------------------------- %.bbl : %.tex ifneq ($(strip $(BIBSRC)),) echo "Here" $(BIBTEX) $(BIB_FLAGS) $(*F) endif # Dependencies #$(MASTER).tex : $(TEXSRC) $(FIGSRC) #$(MASTER).aux : $(TEXSRC) $(FIGSRC) $(BBLSRC) #$(MASTER).bbl : $(BIBSRC) $(MASTER).aux #$(MASTER).pdf : $(MASTER).aux $(TEXSRC) $(FIGSRC) $(BBLSRC) $(BIBSRC) #$(MASTER).dvi : $(TEXSRC) $(FIGSRC) $(BBLSRC)