198 lines
5.7 KiB
Makefile
198 lines
5.7 KiB
Makefile
USER = $(shell whoami)
|
|
|
|
TEX = pdflatex
|
|
|
|
MODEL = tank
|
|
|
|
SOURCE_ALT = Alt/*.alt
|
|
|
|
SOURCE_SPEC = Spec/*.spe
|
|
|
|
ARCHIVE_SUJET = FD-2022-2023-M1-CC-sujet.tgz
|
|
|
|
ARCHIVE_RAPPORT = FD-2022-2023-M1-CC-rapport-$(USER).tgz
|
|
|
|
ARCHIVE_CORRIGE = FD-2022-2023-M1-CC-corrige.tgz
|
|
|
|
TARGET_SUJET = sujet.pdf\
|
|
$(ARCHIVE_SUJET)\
|
|
|
|
TARGET_RAPPORT = rapport-$(USER).pdf\
|
|
$(ARCHIVE_RAPPORT)\
|
|
|
|
TARGET_CORRIGE = corrige.pdf\
|
|
$(ARCHIVE_CORRIGE)\
|
|
|
|
TARGET = $(TARGET_SUJET)\
|
|
$(TARGET_RAPPORT)\
|
|
$(TARGET_CORRIGE)\
|
|
|
|
SOURCE_TEX = $(MODEL).tex\
|
|
sujet.tex\
|
|
rapport.tex\
|
|
corrige.tex\
|
|
|
|
SUBDIRS = Alt Spec
|
|
|
|
SUBDIRS2 = Res Controleurs Graphs LaTeX
|
|
|
|
SUBDIRS3 = ControleursOpt
|
|
|
|
SUBDIRS4 = Optimisations
|
|
|
|
SOURCE_SUJET = $(SUBDIRS)\
|
|
Controleurs/GNUmakefile\
|
|
ControleursOpt/GNUmakefile\
|
|
ControleursOpt/Optimisation.alt\
|
|
ControleursOpt/Optimisation-2.alt\
|
|
Graphs/GNUmakefile\
|
|
LaTeX/GNUmakefile\
|
|
Res/GNUmakefile\
|
|
$(MODEL).tex\
|
|
sujet.tex\
|
|
sujet.pdf\
|
|
TODO\
|
|
rapport.tex\
|
|
GNUmakefile\
|
|
|
|
SOURCE_RAPPORT = $(SUBDIRS)\
|
|
$(SUBDIRS2)\
|
|
$(SUBDIRS3)\
|
|
$(MODEL).tex\
|
|
rapport.tex\
|
|
rapport-$(USER).pdf\
|
|
GNUmakefile\
|
|
|
|
SOURCE_CORRIGE = $(SUBDIRS)\
|
|
$(SUBDIRS4)\
|
|
Controleurs/GNUmakefile\
|
|
Graphs/GNUmakefile\
|
|
LaTeX/GNUmakefile\
|
|
Res/GNUmakefile\
|
|
$(MODEL).tex\
|
|
TODO\
|
|
ControleursOpt/GNUmakefile\
|
|
ControleursOpt/Optimisation.alt\
|
|
corrige.tex\
|
|
corrige.pdf\
|
|
GNUmakefile\
|
|
|
|
# pour iterer sur le nombre de pannes
|
|
PANNES = 0 1 2 3
|
|
|
|
# pour iterer sur les controleurs generes
|
|
ITERATIONS = 1 2 3 4 5
|
|
|
|
# contient le controleur original
|
|
CONTROLEURS_INIT = Ctrl CtrlVV
|
|
|
|
# La liste des controleurs que l'on souhaite optimiser est genere automatiquement par la detection de la stabilite
|
|
|
|
all: sources $(MODEL).time $(TARGET)
|
|
|
|
clean:
|
|
for d in $(SUBDIRS); do \
|
|
$(MAKE) -C $$d $@ || exit 1;\
|
|
done
|
|
for d in $(SUBDIRS2); do \
|
|
$(MAKE) -C $$d $@ || exit 1;\
|
|
done
|
|
rm -f *.dvi *.eps *.log *.aux *.toc *.bbl *.blg *.out *.snm *.nav *~ *.core
|
|
|
|
cleandir: clean
|
|
for d in $(SUBDIRS); do \
|
|
$(MAKE) -C $$d $@ || exit 1;\
|
|
done
|
|
for d in $(SUBDIRS2); do \
|
|
$(MAKE) -C $$d $@ || exit 1;\
|
|
done
|
|
for d in $(SUBDIRS3); do \
|
|
$(MAKE) -C $$d $@ || exit 1;\
|
|
done
|
|
rm -f *.dot *.prop *.res *.results *.validate
|
|
rm -f $(TARGET) $(MODEL).time
|
|
|
|
sources :
|
|
for d in $(SUBDIRS); do \
|
|
$(MAKE) -C $$d all || exit 1;\
|
|
done
|
|
|
|
$(MODEL).time: $(SOURCE_ALT) $(SOURCE_SPEC)
|
|
for c in $(CONTROLEURS_INIT); do \
|
|
for p in $(PANNES); do \
|
|
cat Alt/Parameters.alt > Alt/tank.alt;\
|
|
cat Alt/Valve.alt >> Alt/tank.alt;\
|
|
cat Alt/ValveVirtual.alt >> Alt/tank.alt;\
|
|
cat Alt/Tank.alt >> Alt/tank.alt;\
|
|
cat 'Alt/'$$c'.alt' >> Alt/tank.alt;\
|
|
cat Alt/System.alt >> Alt/tank.alt;\
|
|
sed -e 's:NbPannes:'$$p':' -e 's:NomDuControleur:'$$c':' Alt/tank.alt > Alt/test.alt;\
|
|
sed -e 's:CtrlInitial:'$$c':' -e 's:NbPannes:'$$p':' -e 's:NumIter:1I:' -e 's:NomDuControleur:'$$c':' Spec/System.spe > Spec/test.spe;\
|
|
arc -b Alt/test.alt Spec/test.spe 2>> $(MODEL).time;\
|
|
echo '\small{\lstinputlisting{Res/System'$$p'F'$$c'.res}}' > 'LaTeX/System'$$p'F'$$c'.tex';\
|
|
for d in $(ITERATIONS); do \
|
|
cat Alt/Parameters.alt > Alt/tank.alt;\
|
|
cat Alt/Valve.alt >> Alt/tank.alt;\
|
|
cat Alt/ValveVirtual.alt >> Alt/tank.alt;\
|
|
cat Alt/Tank.alt >> Alt/tank.alt;\
|
|
cat 'Controleurs/'$$c$$p'F'$$d'I.alt' >> Alt/tank.alt;\
|
|
cat Alt/System.alt >> Alt/tank.alt;\
|
|
nd=$$(expr $$d + 1);\
|
|
pd=$$(expr $$d - 1);\
|
|
sed -e 's:NbPannes:'$$p':' -e 's:NomDuControleur:'$$c$$p'F'$$d'I:' Alt/tank.alt > Alt/test.alt;\
|
|
sed -e 's:CtrlInitial:'$$c':' -e 's:NbPannes:'$$p':' -e 's:NumIter:'$$nd'I:' -e 's:NomDuControleur:'$$c$$p'F'$$d'I:' Spec/System.spe > Spec/test.spe;\
|
|
arc -b Alt/test.alt Spec/test.spe 2>> $(MODEL).time;\
|
|
echo '\lstinputlisting{Res/System'$$p'F'$$c$$p'F'$$d'I.res}' >> 'LaTeX/System'$$p'F'$$c'.tex';\
|
|
if [ $$d -eq 1 ] ; \
|
|
then diff -I "Properties for node" 'Res/System'$$p'F'$$c$$p'F'$$d'I.res' 'Res/System'$$p'F'$$c'.res';\
|
|
else diff -I "Properties for node" 'Res/System'$$p'F'$$c$$p'F'$$d'I.res' 'Res/System'$$p'F'$$c$$p'F'$$pd'I.res';\
|
|
fi;\
|
|
if [ $$? -eq 0 ] ;\
|
|
then \
|
|
sed -e 's:'$$c$$p'F'$$d'I:'$$c$$p'F'$$d'I_Opt:' -e 's:edon::' 'Controleurs/'$$c$$p'F'$$d'I.alt' > 'ControleursOpt/'$$c$$p'F'$$d'I_Opt.alt';\
|
|
cat ControleursOpt/Optimisation.alt >> 'ControleursOpt/'$$c$$p'F'$$d'I_Opt.alt';\
|
|
cat Alt/Parameters.alt > Alt/tank.alt;\
|
|
cat Alt/Valve.alt >> Alt/tank.alt;\
|
|
cat Alt/ValveVirtual.alt >> Alt/tank.alt;\
|
|
cat Alt/Tank.alt >> Alt/tank.alt;\
|
|
cat 'ControleursOpt/'$$c$$p'F'$$d'I_Opt.alt' >> Alt/tank.alt;\
|
|
cat Alt/System.alt >> Alt/tank.alt;\
|
|
nd=$$(expr $$d + 1);\
|
|
pd=$$(expr $$d - 1);\
|
|
sed -e 's:NbPannes:'$$p':' -e 's:NomDuControleur:'$$c$$p'F'$$d'I_Opt:' Alt/tank.alt > Alt/test.alt;\
|
|
sed -e 's:CtrlInitial:'$$c':' -e 's:NbPannes:'$$p':' -e 's:NumIter:'$$nd'I_Opt:' -e 's:NomDuControleur:'$$c$$p'F'$$d'I_Opt:' Spec/System.spe > Spec/test.spe;\
|
|
sed -e 's:CtrlInitial:'$$c':' -e 's:NbPannes:'$$p':' -e 's:NumIter:'$$nd'I_Opt:' -e 's:NomDuControleur:'$$c$$p'F'$$d'I_Opt:' Spec/Graphs.spe >> Spec/test.spe;\
|
|
arc -b Alt/test.alt Spec/test.spe 2>> $(MODEL).time;\
|
|
echo '\fbox{\small{\lstinputlisting{Res/System'$$p'F'$$c$$p'F'$$d'I_opt.res}}}' > 'LaTeX/System'$$p'F'$$c'_opt.tex';\
|
|
break ;\
|
|
fi;\
|
|
done;\
|
|
done;\
|
|
done;
|
|
for d in $(SUBDIRS2); do \
|
|
$(MAKE) -C $$d || exit 1;\
|
|
done
|
|
uname -mps > $(MODEL).time
|
|
|
|
sujet.pdf: sujet.tex tank.tex
|
|
|
|
rapport.pdf: rapport.tex $(MODEL).time
|
|
|
|
rapport-$(USER).pdf: rapport.pdf
|
|
ln -f rapport.pdf rapport-$(USER).pdf
|
|
|
|
corrige.pdf: corrige.tex $(MODEL).time
|
|
|
|
$(ARCHIVE_SUJET): $(SOURCE_SUJET)
|
|
tar -czf $(ARCHIVE_SUJET) $(SOURCE_SUJET)
|
|
|
|
$(ARCHIVE_RAPPORT): $(SOURCE_RAPPORT)
|
|
tar -czf $(ARCHIVE_RAPPORT) $(SOURCE_RAPPORT)
|
|
|
|
$(ARCHIVE_CORRIGE): $(SOURCE_CORRIGE)
|
|
tar -czf $(ARCHIVE_CORRIGE) $(SOURCE_CORRIGE)
|
|
|
|
.SUFFIXES: .pdf .tex
|
|
|
|
.tex.pdf:
|
|
$(TEX) $*.tex && $(TEX) $*.tex
|