From 0941b5e09ee473dad694c57df0b3bdbcc672130a Mon Sep 17 00:00:00 2001
From: Moncef STITI <moncef.stiti@etu.u-pec.fr>
Date: Tue, 4 Feb 2025 19:27:56 +0100
Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20de=20la=20gestion=20des=20d?=
 =?UTF-8?q?=C3=A9pendances=20circulaires?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 bakefile.jar                                  | Bin 8694 -> 9456 bytes
 src/fr/monlouyan/bakefile/BakeCLI.java        |   6 +-
 src/fr/monlouyan/bakefile/BakeEngine.java     |   6 +-
 src/fr/monlouyan/bakefile/BakefileParser.java |  20 +++++
 .../monlouyan/bakefile/CommandExecutor.java   |   7 +-
 .../bakefile/DependencyResolver.java          |  72 +++++++++++++++---
 src/fr/monlouyan/bakefile/Main.java           |   3 +-
 tests/bakefile.jar                            | Bin 8694 -> 9456 bytes
 tests/test-01-depuis-rien/bakefile.jar        | Bin 8694 -> 9456 bytes
 tests/test-02-existe-deja/bakefile.jar        | Bin 8694 -> 9456 bytes
 tests/test-03-circulaire/Bakefile             |   6 +-
 tests/test-03-circulaire/README.md            |  14 +++-
 tests/test-03-circulaire/a.c                  |   8 +-
 tests/test-03-circulaire/a.h                  |   2 +-
 tests/test-03-circulaire/b.c                  |   6 +-
 tests/test-03-circulaire/b.h                  |   2 +-
 tests/test-03-circulaire/bakefile.jar         | Bin 8694 -> 9456 bytes
 tests/test-03-circulaire/c.c                  |   7 +-
 tests/test-03-circulaire/c.h                  |   2 +-
 19 files changed, 125 insertions(+), 36 deletions(-)

diff --git a/bakefile.jar b/bakefile.jar
index a268f9af06935865663b73b441a7c79f27806997..4e010784e81242211cca6ae68a6741f22ceb41ab 100644
GIT binary patch
delta 6597
zcmez7{K1naz?+$ci-CcIf#KK8i9DK2zh+J}Zvv6KjX>mk^ZNV#mjfhh%U@qxTawIY
zCSl+@W5<104+ATsxe~&Y7xF7hJimN5Y?jl@4cWdGpN`fa3XiY&=%~=Rg0sHi{XhL<
z5?``s3bbu|x%d9xs&_k|TYvvu_UkE&18=ub&4+G*6c&M$j@(b?F@`%<YMzgtopn2n
zL+|ynyl}}sH}6zQD7LuPdl<DT7%wr`N!^_-6`MYNwpVxlO6gq-wfZ$8R@$d>lw6s%
z*l@$L4voVd$KT!9weX5g_xo#K=jkdk?f0(sb(2x%S#(y{cWbrEvbx6dg`%AaoRXeB
zhArhgt_EjMb32goE%dKb#o=uw!K<HKbM`R&;U&vCd4|x$X@#=pdRHshmexyMz0POe
zp*e9azg56V)Aj;kW2Lmzl$fR$sgX~3-j{d;I$!t6vz~Tpg5-pKHKFla4=JoEv2KxD
z_j=i{GdJ^AUX#j~oYHBMbMIc%Q|o(CE{$h?yZ1hscCWhTnPIH|WJjgf*ZxUKoPWlq
zn=)hfq(A)@D=(I=+4jq&ob}{iYu()e^_!GkYMFnjY!}p+bmuhlVO@P|_QppH$1?W#
z&TOAj{PFS6WP|^TN7i@ju{riZG3n<aLAUQO<(;P;Q+dm@EOUSLF`kX*guL6z)X(3%
zcS+0R^W8&PAD6s}7ZP&%#msfIWkZ4e1g;~;`wc$IO>%htMzN|PLhFO%WxG8U>Kpdn
zzyIB~zVlt8u$-^pVvWG;DV~39_PXjM3R?R26m(7Kuu0y3hi}#&&X??*Ji^Pah#R|Z
z{>{NIU_WoV;FnF`IU?Jfmh&nk&u5#!|LfS<%dh&xb^kC1c(Zf-<Jpwt%f!I2gqeW>
zlmJB-I5;>Me$8}=Vn70F3=9luMUz)BtJL=fM+aYa5cxMvEXXNiq1Y59v8U6fd5efn
z3=`qfh|*)`G5#=Z+ETV#EuO+`^Zv;GW12s6;_P!4cE8R4h}$hlzpPaBvS;#{ck?!<
zpZ`AhcK>Gm`wTt_fo{AtLVvij0*_zVvh@9{C`a?px17qlpUbrEnvy7W&Z61BcfA*f
zK}r6t`lyRW+|zcipB)u;|JiJ}#_Y*c4=>7_zC*U*jDW@UlM@zj^tiQ&nHD#0dUK;~
zrvI_<*Md%yThdq)?<Bog(`T6bjCZo|Mp^!jh322_TP6ubNnDxjyZi^Ax%rNnx8onF
zuHJAuS8{uyyVL9@ja!mdtDKh@Z|0d4IO|cQ`TM1rv2HB&vPyTVdFo2{%ET^j`d#7R
zxlvnyr&H_9`pb&n?(*20&tASZDbU<}+4qWbr8<l5wemIISnl9DN1*a)+rsr+k3_{i
z12@#MGE1ba_$qW(AnfteQ#<<tFBrL<^z72f<dWkuwmd&q^zO2)Dv#vDK1ld$7*8#b
zY`ePp{Q6VZ|ClGRoUd2u(W>Y(Y<uuDyX#EBj<wYjx5g!zM_-)WE)wS<5&j|Qieb&&
z7L9$^y+7BS7u+Vyr8aTdrkP6;I_6aWO;=kXcA4kmY~h_xy7Jy1%4W@1kXk&an#+D!
z*vY*WPQnf|GP9d`oF!kquiQT4>9?+Vx)YA2?^bhuylL_CZO^~V?Fx(ARv%-1Je^0e
zMb9nSLtt4P_r)A$yQs`1FG7@moxi<Od(Yg?mCL{CdanL(nNz|`rdf5LQxx}g`Na<f
z9EFs!)iZ35-E}_V@k-0vw*7_e0&$-A8M&(Q4L)&F7kF3=O_Bs0cb)xn^oK)EOQ_aI
z$%D#S^|zA$s!LcMTD-F{*d}#`yiJVjq=(9jN-B<ikPS|*GkTr-Sw8XE<@fX1<%%06
zRQD^aVK^$j(BGNct<!zdtfF(fS6VvnZV`O%|5wTD$^GhmAJ{>OzWw`MkKIfR3{0%3
ziGK2FHoN-U!NTDZ|7AIDrbN0pTntzn7+55zlyy}t!<FS|n}eqd>lM9|Oxh>&?%a*Y
z$j<*(xA}XR_2u?&2gAE{r(5l{xjOTo_+RE<H)i^!uljpVZHmJolbdsjzs-4HS9kyW
z)9vi`e^?d>$9Ju8Sjy1eqGcg@Eq>biQwz7O@oo8aTu<AxyZ+$Kg;}dgr!2hmT)yZq
z>vo1fCsUQSXNAgBE^gg2Z}!Bk7iQQj?OC0vTC!(@#01`8Ly4F_u9J<qoNG%Wo$nZh
z<SHFXT{k)4G;3J@>b6YPlw_xkELRLoZalH{_HDP~b)MI`YME-1?e<D$=ewU?YTlgF
zqg`_Cz<IN^1*+>kTG)N-ndByJV2z%xlD$f9Q?A^EwVspbs2t@Hj9)oZd1>^&jFmkd
z4Y@qC!{uB;b644CuiT}UWL?H_Lvx|zZm*sf3mbb1v@SnU)BX1IRHj7dI#t_8@@0!z
z?HKDg8Ck;J5|3?}!n1S5^AksVD-~6e8)`P5P<B1%5|fc?A;H12$MA0U&HC#JRcF^s
z3OOFC`gH2nDdCs*&OG$D>iE|=)3QESJ)Sl%S6J{+9OGM|Z;AgWWoth*=7{_^?b?Y3
zBg1d}ohkp4h4>x`G&dh|m}XV8x2E1&Zn}V5i=$HD%5x>N{ye*QE7r`Tb@#@N2OWi1
z9ut%i{m{~q{30b{`==QWtD?FTqpcopt-lz4=5F*2b<S7|#Rbt${C+}Hygg6s_q^Go
zd3oAgy~A@Bhabwc@yyHk_N`6zrmJV#a)<dX62DGvaC!dV<hvtF8_&5csx~<GKy%a4
z0JSNZ?-VqzC@IZ5w4h-}3(Gl!oT%o$HK$I56-`?H=-;Ci<-VufVs=gn-m+wqQbOgo
zeKwPG>+eQ#KHpKgHTG|9?c9yR-p@KEj&(Eya*9{@c=^1D4vH~2_=IP=iVg3~g;|F#
z6i4#4#?@;|u&7ARIu$<SU`*7?wx&WxVIj4JMptxJ_kETrQ!PC^DfDa%>sF@|e-A4i
zGdTJ>Zk9qkThD67Ex&4S*dH-m>Um-3KQGIvLKi!<g?Q>G1hIRbT(j?eQ-*la5rZr?
z%frS(%M6__8f?z&`#!CxGjQ3jjtai>+&k1BvhLY2<>l$AldcQiJd<2KJ%5Q0OPKYM
z*RM|7D6AKFQRBKiw#v#^rmRs?=tEXu(f4oV{_0bmGI#e~SKV{)w@0qo{4YgCT8Sq-
zkG5{tNYwk~_So_Nih4<o%jd6)eK0R(*{}RCc8@!U=c}1Iv3kzgJ2}?OWYxQqP!PW)
z<JYaGe`#Gc)8{E^Zrx*dq-dt$QI8YJF?pfW%vFqzgg>%=czoM7|8rs;cMD6MCa<02
z_<FA@kL<;*jgppLkFEv2d=r_M)^fZrW!DAIqdVpqPx9)2n{)V7-pylQ>jO3x2PU)0
zm;^0f8Y;Y=?_15ed9L>ia=AWn|IYl=aPOO-?el2y8SLCF``Zt^Tl6gYR^pEd$Ep^w
zmtEK)oR{Tjdc##+{$cVXrGH&&m!f@-y#2o6-yfUO*VP#dDwE?MSaVFZUsT9AJF}{U
z@m}<bxkumqvMtUi)_LF{c#w(jc*KqRKmoyZQBfAr;ujAJh}j%c>NCD`<a$kM*F$lW
zw%E-bRWZd99J|vEr^I*4eU~|Rzs06|*6#^6dB<h+COOL;Uw=bvPy5Eta_!4cJ-+j}
zP)8}Wu`(vkWf@cY=P8xaHt)2e&MQXepMCg>Y2Mu9-mY$U+m0*Wih5<^*MH*YC!;)j
znfib6w%Z?eZ9VsJ>jPP?Wb5oiMz1C=>nq_Kr@G0rUh%IKUE=WGQM>l`%jzDzRo!~J
zUCb8FXU`o`j5(ZmYOX<^LX-c+#`PVqq<?jPGu~A=-|F0Zi%$CjuKGtNt6ip8u9OK+
zZrB>|l3(Fmlg9>uwhx?{z0QBw-!k=a1jtRwn|`2P{$E;u?>7&B@ed5g-}EL{?O9u&
z`1t;c3J(4M!l4O_ecU_VDJ<qt_|a4F*-~=O@!MjvejaxeFL`c1#q#Z4?kB&*zs(BX
zCZ_TF)%}<Qx61|B*59AkKJB39tqXS@a(o}Wc<?IkFE^+X$Z~M5zs<_Pu$l{{5@4J;
zc{h(;ec0`AVRwoDye&Q)+8GR@3wJ4<ay9(s7X64<<I0wXD+*$3a@9{dgqiIwEDu{~
z{&sKe3+MY@^1lylo+q|?>sJ1^-v5`(n|CSSOta%iaaGZ|H#Nrl-`CCj^Yi@Qct)Ow
zt1YquP74|av}+tbxBAg8k6VW#J?5Q{n`(Jfz&6uzn$_9*fZLa?gZm|3Sw3QuN-&U_
z_kEJ<^^JEEA}vm?iJ0<vn(k!fyp0-j{=ArUhV|4}iC3SDq;(87?6i=&cx2<{19~bF
z-$KO;6gQ|kA8rZ}4YYG!w7lGAi(bIAxiZ^pre-;CM_HCh-)P>;(;K~Ba>vttG4CwP
zEw$_9eqT6uG4X-soBQ>TveIsbZ}QMES6Fv#lhkQnzshNgjZRHoG~-g+Y&O0{lb=jV
zoV>_GZQGypkjOrzw$_j)r`xFy4EhY-XioB1UN>3z)ug3dTRu-M5cyfWB;7h)G_ml@
zg6WIT9|)95&RCZuEg5oY%G(JauP!;4@wi{w<CTV~MbNXq-Anfb81*gx$WwoOGuyn&
zb)})_j}@dEtJ=f|nMt4gYk2ze)h!<~q>nSiJ*c>Nz+2*u)b#-SsT1~yaonyyv#Y3a
zY1MNfg{xN6m-EayCfPP)=@Rurr*7_5ef{#3WojMAVHst%xNCN*+nhBtSReYIQeC<+
znJw<1Wm|_cd;jvaNgT&l^HiJnFSjvQudl7Q*zji0mn4bw6(6|`eJ*Xc7k8Hm-jyA9
z-7RjN+*cDLwq=DAtr{-9d->?rqMeJHCe?7}7o3rraX7Ut_O`&2v%HBb4d04iEwXaV
zt#+M$Bbw)KXwbZML7uz*-8WPy`FP#yy!QgJSec*hU0StuC7SBqr;23zD%<|fcDlsJ
zdX2l@%j=oBL7_-OVT|d9747by)vA~eT?o+%Uv)y)uUg67SNP@3*K-%1@0hK=D)Ua!
zlazonUincerT2>^`S@<hzL2c{)Zme+Xzg@Rcu~m1-t;>MPM<XN7S`?OUG(^t!>S93
z*F*Pxa>;aB)inEi@{V%_0o?K?>an2<GG?AK-F)fH?)pBH=dtJCq}@H99I=Q=^Kgfm
z?tLCFsTI+kdG}LaXsn*}({b`l^A!($ccy3>yU&}Y)An6+`{H@-pHAszxvtUd;(xrO
zGg?Oe<&-*~yBj1uPw#xEcgl<JbaRT&lM|A&vhLf>`pLE7%_YlEx2Dxy-|<?HZRwS7
zNfknmzZ7|fHO8;IRKNYUYY)fma{=#{N%U-a?2&&&Y@dE@-}x77f5a~<s@b^o%__&t
z1yc^1^d?{7SnxA&vAoKys~7h1nXPqQ^sD3A_mBH_C)B>RZ@SNSk#B8p$UlXD9IsxA
zFAo-9Y9znARm0-$zrqq;>vs!hCbFI_zu@+y@wWxbnuWj31pnSYcqQHbVf_)QdGU@(
z%#&{&5cu!e)|vdhAgp_1rtzr{(rjv+cl;O3pE$4gUsL1FTSu~I-t<UPGLF7Je`ojS
z=84-*Na^uh+j@0vVw%FO@612A$}+cIdr`Yba#cp}x&>eP?&+;Q+m^n%W8J#?&0RN+
zY&6xmvrJ&lQDz&Lb)Tk|EOItz4vQ)esDB`Ju}`f;!SS5wW0tdzjBoh9D2rKm*=Fwy
z^NsTJA2aN0>wK^IVf71@(Ds6Ut#6Eb1NjSE=Da%g{>4$#NmX25W#|5g{vRz7wfy5T
z%OsgzmqMO`C6;=I33Inx$-Bc)zp(9Cm7>$mkB4%81$?>d9{H=GNVw&7Z$T{I_3s}#
z&*{Hawp0DQ&*k=hP(gXp^N-v=76yjf94H0l%*p2j9qQ+XM+XOoi~KX&IcI{*lVwSJ
z++2MQsb1UNsMMjrv52*`YipH<S;2!Rb4)B3E;C=f_jYw|de;44N1WqV1(!~cygl>W
zmxXg*ep#shm-jDw&-8V*LL7>MbM2m_q|V*Cf9tjF*KSom|L*?%9dpKU^Smhs)DG$$
zW>j}Ry2NO0i;1f|fBjsUxlaTqAH2Ef)vBAP5<auHc|CMm$+De?KZWgogp!DH$ytx3
zqP8Zhd_Ee6K3=%k=G<3}>&h<~=b3EDoR?7G@-riAPGhe}#L<9UORt%$#IpQVrj*Q|
zWpY<Tcw>lB$g_K8+9x}Oz3%jK-DvrK)#zG+Zu1n6%sFueQ@%f4<9Si1J~5W@kb?Rb
zsT(#o8hVAyPTuIz<yl=6ro_NDJ?m3Tl9b4YsQLuX0{^i4Zw`j#Ox_UdrdwtZB04J|
zN7!rA{CFeXb8bhv<{JIsFt}0by|;?7n)9+qx$WU!k9zn5Hs!Hg)L6`^_{reh**eu@
z)17%|afZq-SD1e|kFz@E%~89yP4zZS8mlV0nk-)E_bdzuRta!?#3;$``ft*#H$6ws
zZuuZF?P8DEs~MW})DErWs1%vhHEkQ$KmOo5JH=(&mI<!QdLeY{bCtp5z60+j6pGB{
znb)y!cGoKP>dIM(z7s{5l=HGCCmZd$==?1(Z_+kp*^3=(Z2vi}o94RXO?raIg0H7u
z)F0-2b<0ET%2BrP%1MduPpw$AnJdw|P-wZz9))Cv=AWL+C#&@bPUQ()YC3c3DnTpP
z18N70Rj<XkUaodKCeS9Cm2^c_woNYZOybo!3YwW(yF44OigK>;*uJAs%w+2Glszq<
zxfjoTKY>eDe7{Mp<V)@q&T=saTsgaX0t1(C+EY`Xxk2oenxa?iJZ1@xm&>Fc&z-Jh
zqZhS+izod~M?y@F=X2IITFF5Px29x-d}&fsX5%_yrZ?er*H?#yUOxUY$Fvvx)LGv8
zQ+3U$*CDHu4sF&{R<*Gfwn_6TzW77S`Q-wub=qlKj<Tf|^`A2}FLC<Md-3dA+AX0!
z%8iP@UKuQksn1DUb?$fY#=v<NYkRupO%<AHJ0)>@ee1eSb>b?Htr8|vPl&WmYu&v|
zW=ZN(2JSW7LOHqxzePOSiv8yvUQ{>lpi6+|w=b17-<E_IJ&`jB>g0GI#JbV6b$Q(6
z2=~pkM-0v^nHlg%eTQYD%VfPh=Qk8ac)n;6{l>X`-`t$#{^maQ_h(GJwAfd#=0w1J
z=P#~D*q)uvNwaws{5A8F!|K{c5<I^nb_!p=^Fw03$B&RV-17~uJX<98EZ9c6CT;bL
zAf=M9i*mo-25sBaHq&CasO_qcDY^3#eU?5t>#wx6;Ni=XIpT))+dnNxQ?wHCm0prO
z<Ce?2i>32kT$qwF>GH9Us)zgP)44(qmA0MLo_#4Gz2{{~*+o^3FPeherMwquv%Pg*
zAN5J~hG&_A@A>N<!drA0%RlHv6dca=Fn=k2`1O|<R%u)B%+}fS<Sy-NG(S1(+D5@k
z(=OfK|16;Fo8GD4&BZGe7QQlD^*q3Nl6lVh`A4hTHXMFEqqYAb+cxf%eGkQ14xg)k
z;J@OV)%yhpU(Y$JC*77V_kZ(-D;pIoq|-LW>*$I<+iY>ffZ1AezIwt*?bOD8?vqS;
z+`DxWuIuzoxgec?;q@o0mic;<r1pNZwy<lK+B7k5!6UI>d)HN4@ZLGtZQP%4`Y&Un
z$|ifK=_Usoxu333t5jYkpte$c^+o?4zRRL-l<N2F===I(-nUEgCm!jUJ+!-f>|X<a
zeUkJ&rIy$NTc@=xyh3^&H>~;(IA4kU)N01Lmj8juTV|O_7tH!!ReqYc@=EHj3oGY8
zl>RStU#K=dTO}x7tTXhSV$rsLauz4v-Z;-I`L}$A$R!ufHtEgxoA`v5d+FSI8}~au
zL)1j#^y<g)^=tfYJC$xyscMQ#cUBIx`1~WEakk2h+1);Gm#@|nXt0=iZQ;aEc}kis
zcT4tcy}X&b+Q4!8_RKfRZhQ~8_#P_nisdX@^)TXlfQr0|*elK7m0rfq2X22^*zGl~
zA$~JUMmNiie6f>np8P-a#v=9FgRSS2syK^xip*Z|_h>wi`PSA%_PHUS^l}awUMjhK
zb$R=&h2qL0xh;?8D)oA-72-SZoO5z%*hJqqTxYL_dRMW(kFpJOsxjD;Zfk$wd6Jyx
zFQ)j1*%kkpLAA`5TsA#RHU@?VJZQCyuDHfzJw>ki(tv|rhaCiJFE8o!UA%UyZ>YwL
zwOuoIcP(&r^!OSe*tOjE?zFWh*_@PrM8@evd|>{gQE0}o_XXdcnR91;FDu)(&)$wP
zCgHd%=QQTq&XS@|$!c*f0^GK|?-tFJInO!Oc<I$Ya}vJt$;qq{+%;LpBS?1n&(#+k
zRpvc)Icl`y$%1<MdpimqNbQt5_};cn`{+ZP;Hs*ukZYXP|5wMnTzTnIEBk4O!-tni
zo;y|aHlcgNZ}U=xDQY+Ve(@A~rRaU<nWxI;YQdv(Hcnpjj_<OK^y%!>qR_*ZX39zO
zzV})!RVUnJOYY8({dQzu%?^gWg$^0UVO>kQwQ8=^Mf)dgWc(*|&Zgt`>W4!2G8%gi
zUbKFtohNLT+`TjR-^}wj9(paWsQL{a*!r5$YAwgez%YjqH4r!Jif6Mj{hGOXmdr~=
zre8BBx5`<9r~`5iAc{%ei5E2F3m*)g94POi01`nSDFY1xBgTXqnI|VINK8H}F9TMH
z+?&!usA6DXn7{^B_?b;aJHVTfNrVA0#Ejgs&_>a8cyfY*71&_pbfJf$MoI{5@Hat;
z$*&Z6z>1OmuYjU>y#!dXo}w67VfVvr`SPp`3>91q45$jFrN9bnpbB4}xNX(X$iNWB
W#K53~Vq%9pSm7x}HMT-UkPHA@5B<IX

delta 5777
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
XGE99kV9`DDVv}#F2(XpQflL4Zd;gSw

diff --git a/src/fr/monlouyan/bakefile/BakeCLI.java b/src/fr/monlouyan/bakefile/BakeCLI.java
index 34d1981..b909324 100644
--- a/src/fr/monlouyan/bakefile/BakeCLI.java
+++ b/src/fr/monlouyan/bakefile/BakeCLI.java
@@ -20,7 +20,7 @@ public class BakeCLI {
     /*
      * Liste des arguments passés en ligne de commande
      */
-    private List<String> targets;
+    private static List<String> targets;
 
     /**
      * Constructeur de la classe BakeCLI
@@ -31,7 +31,7 @@ public class BakeCLI {
      */
     public BakeCLI(String[] args){
         debug = false;
-        this.targets = new ArrayList<>();
+        targets = new ArrayList<>();
         parseArgs(args);
     }
 
@@ -60,5 +60,5 @@ public class BakeCLI {
      * Permet de récupérer les arguments autres que "-d" passés en ligne de commande
      * @return
      */
-    public List<String> getTargets(){ return targets; }
+    public static List<String> getTargets(){ return targets; }
 }
diff --git a/src/fr/monlouyan/bakefile/BakeEngine.java b/src/fr/monlouyan/bakefile/BakeEngine.java
index 574058b..8306fa0 100644
--- a/src/fr/monlouyan/bakefile/BakeEngine.java
+++ b/src/fr/monlouyan/bakefile/BakeEngine.java
@@ -3,13 +3,11 @@ package fr.monlouyan.bakefile;
 import java.util.List;
 
 public class BakeEngine {
-    private BakeCLI cli;
     private BakefileParser parser;
     private DependencyResolver resolver;
     private CommandExecutor executor;
     
-    public BakeEngine(BakeCLI cli) {
-        this.cli = cli;
+    public BakeEngine() {
         this.parser = new BakefileParser("Bakefile");
         this.resolver = new DependencyResolver(BakeCLI.isDebug());
         this.executor = new CommandExecutor(BakeCLI.isDebug());
@@ -17,7 +15,7 @@ public class BakeEngine {
     
     public void run() {
         List<Rule> rules = parser.parse();
-        List<Rule> rulesToBuild = resolver.resolve(rules, cli.getTargets());
+        List<Rule> rulesToBuild = resolver.resolve(rules, BakeCLI.getTargets());
         
         for (Rule rule : rulesToBuild) {
             executor.execute(rule);
diff --git a/src/fr/monlouyan/bakefile/BakefileParser.java b/src/fr/monlouyan/bakefile/BakefileParser.java
index 6202da4..9659613 100644
--- a/src/fr/monlouyan/bakefile/BakefileParser.java
+++ b/src/fr/monlouyan/bakefile/BakefileParser.java
@@ -8,6 +8,9 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 public class BakefileParser {
+    /**
+     * Nom du fichier Bakefile à parser (donc Bakefile...).
+     */
     private String filename;
     
     /**
@@ -22,8 +25,15 @@ public class BakefileParser {
      */
     private static final Pattern COMMAND_PATTERN = Pattern.compile("^\\s+(.+)$");
 
+    /**
+     * Première cible trouvée dans le fichier Bakefile.
+     */
+    private static String firstTarget;
+    
+
     public BakefileParser(String filename) {
         this.filename = filename;
+        firstTarget = null;
     }
 
     public List<Rule> parse() {
@@ -46,6 +56,10 @@ public class BakefileParser {
                 Matcher commandMatcher = COMMAND_PATTERN.matcher(line);
 
                 if (targetMatcher.matches()) {
+                    if (firstTarget == null) {
+                        firstTarget = targetMatcher.group(1);
+                    }
+
                     // Sauvegarde de la règle précédente si elle existe
                     if (currentTarget != null) {
                         rules.add(new Rule(currentTarget, dependencies, commands, phonyTargets.contains(currentTarget)));
@@ -71,4 +85,10 @@ public class BakefileParser {
         }
         return rules;
     }
+
+    /**
+     * Permet de récupérer la première cible trouvée dans le fichier Bakefile.
+     * @return La première cible trouvée
+     */
+    public static String getFirstTarget() { return firstTarget; }
 }
diff --git a/src/fr/monlouyan/bakefile/CommandExecutor.java b/src/fr/monlouyan/bakefile/CommandExecutor.java
index 786ecd3..0779d65 100644
--- a/src/fr/monlouyan/bakefile/CommandExecutor.java
+++ b/src/fr/monlouyan/bakefile/CommandExecutor.java
@@ -15,11 +15,14 @@ public class CommandExecutor {
             return;
         }
 
-        if (!rule.needsUpdate()){
-            System.out.println("bake: '" + rule.getName() + "' is up to date.");
+        if (!rule.needsUpdate()) {
+            if (rule.getName().equals(BakefileParser.getFirstTarget())) {
+                System.out.println("bake: '" + rule.getName() + "' is up to date.");
+            }
             return;
         }
         
+        
         try {
             for (String command : rule.getCommands()) {
                 System.out.println(command); // Affichage de la commande executée
diff --git a/src/fr/monlouyan/bakefile/DependencyResolver.java b/src/fr/monlouyan/bakefile/DependencyResolver.java
index 8ca21fc..e47a015 100644
--- a/src/fr/monlouyan/bakefile/DependencyResolver.java
+++ b/src/fr/monlouyan/bakefile/DependencyResolver.java
@@ -1,26 +1,80 @@
 package fr.monlouyan.bakefile;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 public class DependencyResolver {
     private boolean debug;
-
+    private Map<String, Rule> ruleMap;
+    
     public DependencyResolver(boolean debug) {
         this.debug = debug;
     }
 
     public List<Rule> resolve(List<Rule> allRules, List<String> requestedRules) {
         List<Rule> rulesToBuild = new ArrayList<>();
+        ruleMap = new HashMap<>();
+        Set<String> builtRules = new HashSet<>(); // Éviter d'ajouter des règles déjà vérifiées
         
         for (Rule rule : allRules) {
-            if (requestedRules.isEmpty() || requestedRules.contains(rule.getName()) || rule.isPhony()) {
-                if (debug){
-                    System.out.println("Rule " + rule.getName() + " is requested");
-                }
-                rulesToBuild.add(rule);
+            ruleMap.put(rule.getName(), rule);
+        }
+
+        Set<String> visited = new HashSet<>();
+        Set<String> stack = new HashSet<>();
+
+        for (String ruleName : requestedRules.isEmpty() ? ruleMap.keySet() : requestedRules) {
+            if (ruleMap.containsKey(ruleName)) {
+                detectCycle(ruleName, visited, stack);
+                collectDependencies(ruleName, rulesToBuild, builtRules);
+            } else if (debug) {
+                System.out.println("Warning: Rule '" + ruleName + "' not found.");
             }
         }
+
         return rulesToBuild;
     }
-}
\ No newline at end of file
+
+    /**
+     * Détection des cycles avec DFS
+     */
+    private void detectCycle(String ruleName, Set<String> visited, Set<String> stack) {
+        if (stack.contains(ruleName)) {
+            throw new RuntimeException("Dependency cycle detected involving rule: " + ruleName);
+        }
+
+        if (!visited.contains(ruleName)) {
+            visited.add(ruleName);
+            stack.add(ruleName);
+
+            Rule rule = ruleMap.get(ruleName);
+            if (rule != null) {
+                for (String dependency : rule.getDependencies()) {
+                    if (ruleMap.containsKey(dependency)) {
+                        detectCycle(dependency, visited, stack);
+                    }
+                }
+            }
+            stack.remove(ruleName);
+        }
+    }
+
+    /**
+     * Collecte récursive des règles à construire en évitant les doublons
+     */
+    private void collectDependencies(String ruleName, List<Rule> rulesToBuild, Set<String> builtRules) {
+        if (builtRules.contains(ruleName)) {
+            return; // Évite d'ajouter une règle plusieurs fois
+        }
+
+        Rule rule = ruleMap.get(ruleName);
+        if (rule != null) {
+            for (String dependency : rule.getDependencies()) {
+                if (ruleMap.containsKey(dependency)) {
+                    collectDependencies(dependency, rulesToBuild, builtRules);
+                }
+            }
+            rulesToBuild.add(rule);
+            builtRules.add(ruleName);
+        }
+    }
+}
diff --git a/src/fr/monlouyan/bakefile/Main.java b/src/fr/monlouyan/bakefile/Main.java
index 9bc4c09..3f455f1 100755
--- a/src/fr/monlouyan/bakefile/Main.java
+++ b/src/fr/monlouyan/bakefile/Main.java
@@ -16,8 +16,9 @@ public class Main{
      * @return void
      */
     public static void main(String[] args){
+        @SuppressWarnings("unused")
         BakeCLI cli = new BakeCLI(args);
-        BakeEngine engine = new BakeEngine(cli);
+        BakeEngine engine = new BakeEngine();
         engine.run();
     }
 }
\ No newline at end of file
diff --git a/tests/bakefile.jar b/tests/bakefile.jar
index a268f9af06935865663b73b441a7c79f27806997..4e010784e81242211cca6ae68a6741f22ceb41ab 100644
GIT binary patch
delta 6597
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
W#K53~Vq%9pSm7x}HMT-UkPHA@5B<IX

delta 5777
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
XGE99kV9`DDVv}#F2(XpQflL4Zd;gSw

diff --git a/tests/test-01-depuis-rien/bakefile.jar b/tests/test-01-depuis-rien/bakefile.jar
index a268f9af06935865663b73b441a7c79f27806997..4e010784e81242211cca6ae68a6741f22ceb41ab 100644
GIT binary patch
delta 6597
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
W#K53~Vq%9pSm7x}HMT-UkPHA@5B<IX

delta 5777
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
XGE99kV9`DDVv}#F2(XpQflL4Zd;gSw

diff --git a/tests/test-02-existe-deja/bakefile.jar b/tests/test-02-existe-deja/bakefile.jar
index a268f9af06935865663b73b441a7c79f27806997..4e010784e81242211cca6ae68a6741f22ceb41ab 100644
GIT binary patch
delta 6597
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
W#K53~Vq%9pSm7x}HMT-UkPHA@5B<IX

delta 5777
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
XGE99kV9`DDVv}#F2(XpQflL4Zd;gSw

diff --git a/tests/test-03-circulaire/Bakefile b/tests/test-03-circulaire/Bakefile
index b458a3d..c43de20 100644
--- a/tests/test-03-circulaire/Bakefile
+++ b/tests/test-03-circulaire/Bakefile
@@ -2,10 +2,10 @@ main: a b c
 	gcc a b c -o main
 
 a: a.c a.h b.h
-	gcc -Wall -Werror -Wextra -Pendatic -c a.c -o a
+	gcc -Wall -Werror -Wextra -ansi -pedantic -c a.c -o a
 
 b: b.c b.h c.h
-	gcc -Wall -Werror -Wextra -Pendatic -c b.c -o b
+	gcc -Wall -Werror -Wextra -ansi -pedantic -c b.c -o b
 
 c: c.c c.h a.h
-	gcc -Wall -Werror -Wextra -Pendatic -c c.c -o c
+	gcc -Wall -Werror -Wextra -ansi -pedantic -c c.c -o c
diff --git a/tests/test-03-circulaire/README.md b/tests/test-03-circulaire/README.md
index abaa797..6a847eb 100644
--- a/tests/test-03-circulaire/README.md
+++ b/tests/test-03-circulaire/README.md
@@ -1,3 +1,15 @@
-# Test 3 : Dépendances circulaire
+# Test 3 : Gestion des dépendances circulaires
 
+## Description 
+Ce test vérifie que le système de compilation peut détecter et gérer correctement les dépendances circulaires. Il simule un projet où plusieurs fichiers `.c` et `.h` s'incluent mutuellement, créant ainsi une boucle dans les dépendances.
 
+## Fichiers utilisés
+- `a.c` : Implémente functionA qui appelle functionB.
+- `b.c` : Implémente functionB qui appelle functionC.
+- `c.c` : Implémente functionC et inclut a.h, créant une boucle indirecte.
+- `a.h`, `b.h`, `c.h` : Fichiers d'en-tête correspondant.
+- `Bakefile` : Contient les règles de compilation et les dépendances.
+- `bakefile.jar` : Version compilée de notre système de build.
+
+## Résultat attendu
+Si le système de build détecte une dépendance circulaire, il doit la gérer automatiquement en évitant la boucle infinie et en compilant correctement les fichiers.
\ No newline at end of file
diff --git a/tests/test-03-circulaire/a.c b/tests/test-03-circulaire/a.c
index 3f49efe..283d470 100644
--- a/tests/test-03-circulaire/a.c
+++ b/tests/test-03-circulaire/a.c
@@ -1,12 +1,12 @@
 #include <stdio.h>
 #include "b.h"
 
-void functionA() {
-    printf("Function A called\n");
-    functionB();  // Appelle une fonction de b.c
+void functionA(void) {
+    printf("Fonction A appelée\n");
+    functionB();
 }
 
-int main() {
+int main(void) {
     functionA();
     return 0;
 }
diff --git a/tests/test-03-circulaire/a.h b/tests/test-03-circulaire/a.h
index d53839a..f043ff5 100644
--- a/tests/test-03-circulaire/a.h
+++ b/tests/test-03-circulaire/a.h
@@ -1,6 +1,6 @@
 #ifndef A_H
 #define A_H
 
-void functionA();
+void functionA(void);
 
 #endif
diff --git a/tests/test-03-circulaire/b.c b/tests/test-03-circulaire/b.c
index b7da733..6be825f 100644
--- a/tests/test-03-circulaire/b.c
+++ b/tests/test-03-circulaire/b.c
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include "c.h"
 
-void functionB() {
-    printf("Function B called\n");
-    functionC();  // Appelle une fonction de c.c
+void functionB(void) {
+    printf("Fonction B appelée\n");
+    functionC();
 }
diff --git a/tests/test-03-circulaire/b.h b/tests/test-03-circulaire/b.h
index 321af19..622ae55 100644
--- a/tests/test-03-circulaire/b.h
+++ b/tests/test-03-circulaire/b.h
@@ -1,6 +1,6 @@
 #ifndef B_H
 #define B_H
 
-void functionB();
+void functionB(void);
 
 #endif
diff --git a/tests/test-03-circulaire/bakefile.jar b/tests/test-03-circulaire/bakefile.jar
index a268f9af06935865663b73b441a7c79f27806997..4e010784e81242211cca6ae68a6741f22ceb41ab 100644
GIT binary patch
delta 6597
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
W#K53~Vq%9pSm7x}HMT-UkPHA@5B<IX

delta 5777
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
XGE99kV9`DDVv}#F2(XpQflL4Zd;gSw

diff --git a/tests/test-03-circulaire/c.c b/tests/test-03-circulaire/c.c
index 7e53ed3..aee51b0 100644
--- a/tests/test-03-circulaire/c.c
+++ b/tests/test-03-circulaire/c.c
@@ -1,7 +1,8 @@
 #include <stdio.h>
+#include <stdlib.h>
 #include "a.h"
 
-void functionC() {
-    printf("Function C called\n");
-    functionA();  // Appelle une fonction de a.c -> dépendance circulaire
+void functionC(void) {
+    printf("Fonction C appelée\n");
+    return;
 }
diff --git a/tests/test-03-circulaire/c.h b/tests/test-03-circulaire/c.h
index be34ba5..312d6d6 100644
--- a/tests/test-03-circulaire/c.h
+++ b/tests/test-03-circulaire/c.h
@@ -1,6 +1,6 @@
 #ifndef C_H
 #define C_H
 
-void functionC();
+void functionC(void);
 
 #endif