Merge lp:~steve-sagacity/wingpanel/waf-builder into lp:~elementary-pantheon/wingpanel/wingpanel
- waf-builder
- Merge into wingpanel
Status: | Merged |
---|---|
Merged at revision: | 35 |
Proposed branch: | lp:~steve-sagacity/wingpanel/waf-builder |
Merge into: | lp:~elementary-pantheon/wingpanel/wingpanel |
Diff against target: |
241 lines (+232/-0) 2 files modified
waf (+165/-0) wscript (+67/-0) |
To merge this branch: | bzr merge lp:~steve-sagacity/wingpanel/waf-builder |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
GothAck (community) | Needs Information | ||
Cris Dywan (community) | Approve | ||
Seif Lotfy (community) | Needs Information | ||
Review via email: mp+44416@code.launchpad.net |
Commit message
Description of the change
Build script using the waf build system.
- next step would be to move all vala files into a src directory.
Cris Dywan (kalikiana) wrote : | # |
I vote for waf, it is fast and simple.
Personally I won't bother maintaining autocrap, mind the project is so tiny it isn't that crucial.
Seif Lotfy (seif) wrote : | # |
its so tiny that autocrap wont be a pain
Cris Dywan (kalikiana) wrote : | # |
Looks good to me.
Seif Lotfy (seif) wrote : | # |
I disaprove if my opinion matters anything
On Wed, Dec 22, 2010 at 6:48 PM, Christian Dywan <email address hidden>wrote:
> Review: Approve
> Looks good to me.
> --
>
> https:/
> You are reviewing the proposed merge of
> lp:~steve-sagacity/wingpanel/waf-builder into lp:wingpanel.
>
--
This is me doing some advertisement for my blog http://
Cris Dywan (kalikiana) wrote : | # |
I understood from your comment you don't care. And there is nobody contributing an alternative as far as I see.
Steve Beaulac (steve-sagacity) wrote : | # |
Many vala coded projects use waf as their build script. ie: midori, postler
I would have thought this would be the way to go.
GothAck (gothack) wrote : | # |
Steve, Christian, Seif: rather than just disapproving/
From my perspective out current build system is working well enough, quick enough and is very easy to configure, it does the trick, especially for a tiny (in comparison to others) project like ours.
Having had a look at the waf scripts, they seem to depend on a library unpacked from the scripts themselves, it's a bit harder to follow what is happening, and a bit more long winded adding new dependencies. Waf looks great for larger projects, but is it a bit too much of an overhead for such a tiny, simple (in theory :P) project?
Steve Beaulac (steve-sagacity) wrote : | # |
I'm really indifferent which one to use, I just used waf for the reason stated above.
Why should we use a standard build script system. Well it's easier for package managers.
examples:
configure --prefix=path
make
DESTDIR=path make install
./waf --prefix=path configure
./waf build
./waf --destdir=path install
The current build script is ok for now, sure but it's very limited.
Cris Dywan (kalikiana) wrote : | # |
I just now closed a bug which was a package failing to replicate the improvised build command. Since nobody made an alternative suggestion I'll proceed with merging this.
Preview Diff
1 | === added file 'waf' |
2 | --- waf 1970-01-01 00:00:00 +0000 |
3 | +++ waf 2010-12-22 02:37:52 +0000 |
4 | @@ -0,0 +1,165 @@ |
5 | +#!/usr/bin/env python |
6 | +# encoding: ISO8859-1 |
7 | +# Thomas Nagy, 2005-2010 |
8 | + |
9 | +""" |
10 | +Redistribution and use in source and binary forms, with or without |
11 | +modification, are permitted provided that the following conditions |
12 | +are met: |
13 | + |
14 | +1. Redistributions of source code must retain the above copyright |
15 | + notice, this list of conditions and the following disclaimer. |
16 | + |
17 | +2. Redistributions in binary form must reproduce the above copyright |
18 | + notice, this list of conditions and the following disclaimer in the |
19 | + documentation and/or other materials provided with the distribution. |
20 | + |
21 | +3. The name of the author may not be used to endorse or promote products |
22 | + derived from this software without specific prior written permission. |
23 | + |
24 | +THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR |
25 | +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
26 | +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
27 | +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, |
28 | +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
29 | +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
30 | +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
31 | +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
32 | +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING |
33 | +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
34 | +POSSIBILITY OF SUCH DAMAGE. |
35 | +""" |
36 | + |
37 | +import os, sys |
38 | + |
39 | +VERSION="1.6.1" |
40 | +REVISION="1369902f3a1b0afb93dd6cdf3068f626" |
41 | +INSTALL='' |
42 | +C1='#)' |
43 | +C2='#(' |
44 | +cwd = os.getcwd() |
45 | +join = os.path.join |
46 | + |
47 | + |
48 | +WAF='waf' |
49 | +def b(x): |
50 | + return x |
51 | +if sys.hexversion>0x300000f: |
52 | + WAF='waf3' |
53 | + def b(x): |
54 | + return x.encode() |
55 | + |
56 | +def err(m): |
57 | + print(('\033[91mError: %s\033[0m' % m)) |
58 | + sys.exit(1) |
59 | + |
60 | +def unpack_wafdir(dir): |
61 | + f = open(sys.argv[0],'rb') |
62 | + c = 'corrupt archive (%d)' |
63 | + while 1: |
64 | + line = f.readline() |
65 | + if not line: err('run waf-light from a folder containing waflib') |
66 | + if line == b('#==>\n'): |
67 | + txt = f.readline() |
68 | + if not txt: err(c % 1) |
69 | + if f.readline() != b('#<==\n'): err(c % 2) |
70 | + break |
71 | + if not txt: err(c % 3) |
72 | + txt = txt[1:-1].replace(b(C1), b('\n')).replace(b(C2), b('\r')) |
73 | + |
74 | + import shutil, tarfile |
75 | + try: shutil.rmtree(dir) |
76 | + except OSError: pass |
77 | + try: |
78 | + for x in ['Tools', 'extras']: |
79 | + os.makedirs(join(dir, 'waflib', x)) |
80 | + except OSError: |
81 | + err("Cannot unpack waf lib into %s\nMove waf into a writeable directory" % dir) |
82 | + |
83 | + os.chdir(dir) |
84 | + tmp = 't.bz2' |
85 | + t = open(tmp,'wb') |
86 | + t.write(txt) |
87 | + t.close() |
88 | + |
89 | + try: |
90 | + t = tarfile.open(tmp) |
91 | + except: |
92 | + try: |
93 | + os.system('bunzip2 t.bz2') |
94 | + t = tarfile.open('t') |
95 | + tmp = 't' |
96 | + except: |
97 | + os.chdir(cwd) |
98 | + try: shutil.rmtree(dir) |
99 | + except OSError: pass |
100 | + err("Waf cannot be unpacked, check that bzip2 support is present") |
101 | + |
102 | + for x in t: t.extract(x) |
103 | + t.close() |
104 | + |
105 | + for x in ['Tools', 'extras']: |
106 | + os.chmod(join('waflib',x), 493) |
107 | + |
108 | + if sys.hexversion<0x300000f: |
109 | + sys.path = [join(dir, 'waflib')] + sys.path |
110 | + import fixpy2 |
111 | + fixpy2.fixdir(dir) |
112 | + |
113 | + os.unlink(tmp) |
114 | + os.chdir(cwd) |
115 | + |
116 | + try: dir = unicode(dir, 'mbcs') |
117 | + except: pass |
118 | + try: |
119 | + from ctypes import windll |
120 | + windll.kernel32.SetFileAttributesW(dir, 2) |
121 | + except: |
122 | + pass |
123 | + |
124 | +def test(dir): |
125 | + try: |
126 | + os.stat(join(dir, 'waflib')) |
127 | + return os.path.abspath(dir) |
128 | + except OSError: |
129 | + pass |
130 | + |
131 | +def find_lib(): |
132 | + name = sys.argv[0] |
133 | + base = os.path.dirname(os.path.abspath(name)) |
134 | + |
135 | + #devs use $WAFDIR |
136 | + w=test(os.environ.get('WAFDIR', '')) |
137 | + if w: return w |
138 | + |
139 | + #waf-light |
140 | + if name.endswith('waf-light'): |
141 | + w = test(base) |
142 | + if w: return w |
143 | + err('waf-light requires waflib -> export WAFDIR=/folder') |
144 | + |
145 | + dirname = '%s-%s-%s' % (WAF, VERSION, REVISION) |
146 | + for i in [INSTALL,'/usr','/usr/local','/opt']: |
147 | + w = test(i + '/lib/' + dirname) |
148 | + if w: return w |
149 | + |
150 | + #waf-local |
151 | + dir = join(base, (sys.platform != 'win32' and '.' or '') + dirname) |
152 | + w = test(dir) |
153 | + if w: return w |
154 | + |
155 | + #unpack |
156 | + unpack_wafdir(dir) |
157 | + return dir |
158 | + |
159 | +wafdir = find_lib() |
160 | +sys.path.insert(0, wafdir) |
161 | + |
162 | +if __name__ == '__main__': |
163 | + import waflib.extras.compat15 |
164 | + from waflib import Scripting |
165 | + Scripting.waf_entry_point(cwd, VERSION, wafdir) |
166 | + |
167 | +#==> |
168 | +#BZh91AY&SYŽ3™ILÿÿÿ± tÿÿÿÿÿÿÿÿÿÿÿ9,äI q |
169 | Xa{œ{¾[¤ |
170 | }Š™3vê/XÔØWnº¾¼UÖ²ªAJ«V³9Ûu7U–¶Û!Zôûãí»†™,u.J#(v[îÞ�cݺîꑽÎÝî•ï·GmíÊw»Mu�ëpzeÉÛ×Ü=wÎï—Ov¯»z#(öf[ݬ° |
171 | �÷g|… |
172 | =àšÃ¯0£Óº°Û s›#( éÕ×{3» |
173 | ¼¦€2EëUíµ�=°P’R©$ —¶TB…÷žòó_mïCÇu·ouy{uI»d*�Ù}»¥«húdøÂßw^ó]½ÛÖö6Ùh-²õéÞùgÛ�}Þ÷ÇÚîïvëݽá»�ÕÛJ/{¼ŠfD#)ØV�³J—»ÝqjŠzuw] Ó®JBw=åãB€ A€xhïn’ïyÞ©Y1*xMï}Ç€¦%]f±˜Ð«ë ¯ ¡_wœ¯8û›ïgC3Ù÷>}uNç@õ™Œìnrnn:–¦ó½·ÛåÚ¶lo¯·=îµk£ë\Rõ»;VëmË�»éïÖû)‘¢Ý¹}½Õºäõ*ÞÏ@ÄèsàWN–Î�ß}ÇIíç>ù¼ù®.϶¼šÍkÚçD›{Þ |
174 | 7˜Í[î×Ƕ¸÷Üõï�·ÛçµµÍT �U«§UIÈk›™Òî7}uОÏ-vtÕïu;²¬çmÇ%9®ÞpœûrûÜï€w½ç }ßsï{Nów7Ñ[¬óëG^vî|åÎé×' |
175 | ÝÖ·n¯[·w¶‰›NîÌ�^œ½z¯·—¹Ýîó«¼SÛ^ÌÆn`{¯=Ù£ÖÚ*õ¼jë¾Û—Îk#(ó;ÞzwÝËÈ>ãí÷™¯vc}Ž—o¥ëzÇ¥êM´�N÷�^îÞ-ÅÆÕ¶—>û«Áëìë½yî |
176 | à`«)«g(}eØÚî¬�Ø×}=÷Ìù¡÷ÁÐïe½î=óEÞøùßf«·pB�tN»‹+§=öïd÷>O#(=ÍÊã®íﯮ�½½Öhi^Oxì£q鬺=«uÝ}nÛàÐ$S Šåµ |
177 | ô³ž•ÃíõÒÙg�.Žîz÷D ›Ë’—mYväV¯o^m¼Ûèårk£¯¼}ÛÍïw>lsêÚ |
178 | û}bRðš¾mìÞÒ�q®ë³ÎÝ;»˜t=;Þšc»fÞw^=¼ì4>;Ìh€M €@ ˜Mô˜&A5<‰å!êO( h ¦� €@#@�4˜“dÈ‘éé'êž“M©êzA¡ê#( dM h$È&CIˆÓA=OTóJz#(!¦OH |
179 | �13S¦€ z¥$ˆÕ<)½Sdž“OЦ�P hh h D‘Ðh š h#L&‰†TñOL&�‘=FOSõ@S54ô›SÔÓÐõA&¢ €€©þšÈ›SIäžˆÉ Ú†˜€É ÐŒhÄh1Fø~Çÿ þ¥µRäžsû5x±ãFÛ^~6Õ^¯^çzEÀ®|;U5Þ:é |
180 | ÝœÓ$3Ms];m»ÖÖ¶¯ŸC$¹@÷ûç¿áñ*÷-«#)ÑEð«ü¦Ùñ‰ |
181 | J´©HãÔB¼@ž |
182 | '*qOýF¾gûL½€«ì„„Ò@$…jÄT¶¤ |
183 | UBª(ŒUŠ±RªW++–9V3ZgžœõዬcÍ’[ØónØŒJ—”Ô•Î]˜?gÏm¡ H�dÚU(DT-ZÞ¶ªî«Z*Ʊb›m&ð Ê aBñl‰GÛ(B6� J ¢ @] €±&#(IH&ˆÃ*3Dd› š”¥"m˜ÒÉ6L±R[,EŒ!$c" SbÐh¡EHe£F66™YTI-%¦ J"bÆÚ+ |
184 | !J)dËfŒ‘2‰¥F¤´jjÙkR‘YšlÌ&ØÔTÑ©m&$šRF%–£56!M¤Òd–•Q&R1¤“T3I3*`”…%¢�‹HÍ#(¡0Íi–b„# |
185 | $™ |
186 | ¤"–$ È`I’jadJI2Ld¶&°20+AŒ#)2 |
187 | F“f¢b„¤’ÒDh–!EF%˜"˜Õ&°³(DÌ�)±©±I’c3Q l�„‚Ð21™h!"R–Ì™±b ¬È¡°d’,¦`ٴУLBS |
188 | J“ –ÂÉ"ZD šPi¤ÒadÔL¨šÉ(d–�HÍfÉ1%)4˜•3b™[4¦˜™e%4¢4›&I…ƒ�JI³6$”’c)FˆÊi‘DF(¥dld¬„É©dÉ�Б‰#i1¶I1£&hZ,hÀRÆl&†6È¥†E2cÈi¤d‹,‘¥¥�+YJ,EI�¡¨ƒ$Šiˆ Ô” „V2E3`±±‚D(I–B16)™ ƒbDVl¶2$%%!ˆÚ5¤™¬¤©’i6i2Äš¦j“LÔŒ„”d†¡…†D&ȃ!SVÊÛd4[@#(› |
189 | i1K"Í™Y$Æ™M)©‰ŒRÔRÌe&™”-ó¶»HiiˆJ$ÕIXÒl2TRF¤Ô”¶‘1´hŒ²„²)˜ÒY6ɬiÓ1¢bÓFV3F‘i)³k#)R&šE*k*�QefL¬Òd‹Y$–hÚ‰¬ØLfPc´lj‹h“bÛ&Õ‹QQRQlÐÉT`Ø4m�a–‹hŠ�E©1II&ˆ³5%-MFÅI«%Ef¦ÕSjÍ¢ÂbÔ˜™šÍ‘36i…"m³bT˜Ô˜”’JÒfIY™–iE�ZUm¢ˆ•-4–ÌØ($¬X†h¢™ „*,¥4ÚÆK(ÑME‘–4™”š�i’CR–˜FFE5JRË$ÂSjd‘¥ZM"BQJ›1"B‹I±ZM’6&lÊ2m�Š#(ŠH�3hÈ¥0‰$H¥61fZ,b‹IIYQ©$˜63´f†6 |
190 | k6˜´¡ Z)Ì––)¦M‘´eh6¢“#)mfje“6JjfkQdRÌÅ›A•#E‘+e“&3dR |
191 | ÄDdÚ$jX¥¢TÃcE`ÑQ±¢�l¦FC(ÉH´ |
192 | h¦Ö5–A"TP&$©I•ChÑ`ÔkdHL³Z#›IXÙ˜…3(¢Ó Z1hŠ-$–hm°i2•Y°i´i,&ˆ™¤Ñ“%"I |
193 | HÕ ´Í“…D%I!TIE¶ŒS1d¶5aDÊ3#%Š,U!”ˆ¨Æ¥%¬¨R–b�±´m"RÁŒF±¢ÓLTF |
194 | ŒËiDb*SY›b´6Òl–J‚´ƒ”ɤ¤Še#(€Íc -F�µ™±´�QbCTfk4ɶ5‹F¶ŠfÊfY†±�‰ |
195 | l6I©FQb˜Y-,#RE‹ciÛÔXÉ3“"“)�£ZÚV²Å,4T”•23P"dÛ%˜Ûc&Ú�¶Ñ¶ÁZÄkdSMD˜Æ°l¢ÄÑ¢lÍ6’¦TD5’…�FÀbê¼ÃUçþ+0æQUúùÊUü¶Þ‘¥ÝËÒô·§æ~g^æö¿Ÿy&RŸáïKò?¾È·ÜÄ[|R6ÕÕɾ(–�FÖª¸õýþ7oöŸÿ‰·øp¬N=œï„?Û£ª½hëPfß*ÝûÆqCR0MÝyà«iiaÅ»hèÎì¸sÙ£×6É4ë°’(ÊÂ:ãýÛT”P¦i¬ÚV*¬b„l©#)câÔ-rÈÛÜ›j3naX¨ÈÒQ¯ê3ûÛô©i¥GØ6Þá›Ã¶*ÅiÅJ%ìì ×9núýí볺à/‡û½yüñú |
196 | z^ÍÈJÇᶸO²èÐPm£çæÊ£oý‰x‘ |
197 | Þ™DÖ?2Æ“ƒÆÁtÍûzѶ"=X£ND“úæEh |
198 | ·ºéd˜šzŽžœŒ›º;3,SXíåéÝönéwZádÇ |
199 | X «7U·)Ñ^7�âHŽ›søà^dv1Šá6ò®˜âê•Ã쪇&M’Ó|Tåe§<̇«E×T¶f@ƒLj4W#(4ƒabŒ¸Ñi^ZÑh)"ì•š j�hN…ƒáåc |
200 | žËLÈ‘–¸ýÌ |
201 | Hù5¸Œi³°Â:Àüû©3óÍü›=6³v—ùdi±z4EŠ"±V†Ði�èPñ†*¢"9{q*T¦�. |
202 | Lk÷ëðå[X|Óoi{§d�šqF\ì‚Ñ‘x úøPç{7OkÐE{ÒP‡×Rqäkfì7û*`h#)ÒÏðE–~k¨1<·‡ÓÐÕ‰¦ààã O)4Õ¸Ís£25ÃD°_#)D§”¿�ó‘ |
203 | õB‰6Û'Ïn²•ÝMýíïÔŠ9"þ¼‰³Õ„cŽ#(&=2O×'.`ÔbÛÜ‹�(9!þþÓúÉY×WK(ÛL>ßžÐ2FÇì‘pÊCT)Ë)YÇð«QÕ�Y'Õe{j•qAÉ ÞÏc”Nµ?�¾�· |
204 | dR |
205 | Ü_s;°NPQeúëºE"ofÞÿ;œ¶¦ˆ(Z’˜te;%0žá¯V(7MG“†/ÇšÜ/oÉ^ÒÞŸ®¾.»§XØÆ‹Òºj¾“�eˆæÇëžCOSù^ÚÛHŸ.¼j�>Xf«Fö`SRp¯SgŨ�#)¡A:T6å‹‚Ã’“…j–µ¤Db#).Ui#)öÑ7M*”˜™¯Z[m5T¢+3΀·.Éi£¥Í"Žµ‹¥‹Éâ ™#ÐpùÚõ.‘` |
206 | 2º#)1WfêŠÚŠ2ÔuhÙ¢oTÄux\¥=õPžH |
207 | Imôp3·žØ¡x¡×ô¡ç÷9 |
208 | �¼sÞH”¿ |
209 | íçí`ü¡F?³uÙ2qÌEÊ ÷eº—Æ«™Lk{ºå#)>¾¯Ø‡ ÑÄ!Ð×±ÿ‡U×îéâ¥�¹Ì鈥CS>ÞžîÇ;%o^ÎÊÄàži!hg‘;+'F²[¯8ŠÎ¾òÕ#(YšÇÝWœìŸcÁ¿¹«ØŠ½<¿Çr™Œª|Qz¬¡ê#( |
210 | îPàÊÔží“£RM²+F.„×aJIû1ÎZ{Y8]2P†É‘Í;Ö^,Ë:3Ê&¹\ÙRý�oªwâ Ê€ù¢'ör!Ý$ Ùdótï•VLNóRª |
211 | òä<¾“úbÝÚ–dùt”@¹ˆ½ª©þ"Õ�8ïŒbcT1wcl¡UóªðhV3ªB•2Mûþî"SÚ�!É2ñ¯H™~#=eáw0]�#))H¢:³âï�¹T&ŒË”"ÆdƒzøS |
212 | ùãg¶©çvèS–bë»AÅUG}ês¬<zPjȪÃÚ]rÅ3:ÕüGu9ÌJGÃõK~ê+teS§~£»Ò¨=¬Ã”äÙ–—Ñÿk¼l⇷uÆÅ£� |
213 | #]…"eË^2–!§èñšÍÈ¿�ížâœü·GdùȾ¯„1ü~4½z@ò÷Äi ÓÓTî>ë˜Îg·c%´|è,4AhYŠ#(›¡d |
214 | s�_9–Gù²�<zÂÆÈ”„o“Cð¬l˜š°<2QdâæÊi#)ƒ$÷>C ”?[!d>f|*úÚ¾²Gík-*¦¬íi’ž_É›ÿºŽ›’þ«¶ûØ“,pUy]¥¶’ÕžÔè?gÚdë�•”<d�>/³?.��‹$_tDç½#)ÿ�[=o»àfïzéÒž�݇`kêÙ³ïEž[®„}fÚ |
215 | ‹à@ú§ÝwœhŸ»< |
216 | ÿÁt�MD3nHF}¬ WtdaõßÁV&¹û[® |
217 | í~ås#(õˆÏÙ |
218 | ¸†(Êý™Ž?Œƒeø]úôw÷Dkå�òO³!H&Ç#).Á†SŽ0_ÞÎiíÆOfµœNÈ?“ÇaÔ÷|;k |
219 | jåTÕ>ZúÇO†§ŸÓ:gÛu˜àÁ²¿&V«ÂÅžrŒ!Lª¡AF>Mد?<uqš?ÀÞù¼‚4šñ©tÄFò¼òÅ5ŽUZø@¬CAãwf+%qÀ¶ç41QÖ”å< |
220 | 5£4”Ç$½©ða�ýr÷q7¹«úüã |
221 | Ï\=ÙŒ9ÈÝê˜êâé;ª„X.œ¯¦P£ú+ÂóòËÛXmʧv…»¹à²ŠRÝÇÄu·“ÕîÉ�–wâÍÄ{¾w8<oZ«Åªw*¾¨§-h^SeÁ&¨v[k^¥lþÊÄ$]9JßôÀmk© |
222 | V«÷#tEÒþЉ/º)uö~§EÍ$vNaåŠPî™®ª'#·Wpê‰ÒÚ&�jM¬e ÓŽgÇ‘ýÎÚÚVvà¾ìÙ犼ŅPºQB2Ø„ä^6Áj"#+ŠP‚ÐÄØ`ä"šÊ¯íC†Š=°‘‘q-]Ì�ë0P1ûî]Pm±×îØâp÷gáç{žñ]Wuî¤ D‚R{ ÄõjUÀd½ò&÷µµó¹0"'-3ay¼Ø У”¼‡9áXö |
223 | æéL‘‡r— |
224 | „?Lï:ÛŠ“cmC?ÅÛ#(.$>n |
225 | .Ñý1Ž/ |
226 | 8gSÊ |
227 | ’V÷ |
228 | z£— |
229 | !ŒÕ©j�\Õ€•fR¦'Qxż*t>l4d°6M'¥¹ÖÏZ‚DSÃëÎ?‹ôÜ™ÀSIØôueAIHçŒ |
230 | Ü"ºÃŸ£zM&ü"EÊ3½Pög$kFnª—TâžUê죗aDØ<~$ˆ| |
231 | {jöW>{ѹã›-ƒ�¹½®l‡µíí¦Ù |
232 | ØïYëÔí $Ô‹·§MàÞ¢M;•M*Îûf± |
233 | èbeé3Œ�ew‡ZŽC�…#KŒ´®2@n}óðÓ»ÓÔ�÷'[lõÍG꧄ Ñ㶠|
234 | )SPuC¢T»ºì‹7JÆòA±óök455ëwxhÖŠÊš¬ÕDÍ.cl²~šë¥.ªZý_L\“+ ÊÃ%r©–X(rJÒ–ç$®T×á�“TÌ |
235 | üÍ |
236 | 1cö5ÑñåÅëÙôWTyv„£(æ4¿ÁU²ÅDnŸNétv•²ÃÙ:’Z"–ü-Ö¹½ZWêÂÖÖïGöæ¾Ç4d¿Dà‡Ó5J&�1dRÖf¨xR®ÍŽ-á!SûŸáv– |
237 | ê‚c0:-3ãºx¾ÜËK1¨ÛcÎ"œÎ:ä¿)kæMH—f&ÌÚ;6©Ñ4ýtc½;èõsž,ÖšP¤¡+ãÓaë&ðÛ² Üø¾¯¼®¨¿Öãl�i>·0D8ñoÖxƒÎ1^"›C¢Ýø�ŒcU)‡fÔ˜ |
238 | QQA/4ã ´o…å>O&qÚŽåЖú�²a�ûü±ŽŒ¦,Òª�0†YjÚ—J)ÎÆÊêáÑ)ÆyÙ‚ah¤rÓcäËo�Ú“�t IZoeK4V �xN)îíÏô>-úPo¶íÍTR"pAµU$QV8ÕQ{�{•KjV¥IŒ•«TY,Â#(FS6J—P;#(hÈÉ”2Ñs´£ÏWz\·ªZ®xñÉÛprÑ)bmƒ£I‡|[¼ |
239 | eK\8ôôþ~¨Ûv‡z í8W³ˆÿ@•¾Ôwm'b¬ž"Û™#)¼lKÛ>3ôŸŸgoéñý#)Å@6sá¸ûK›uzÆIƒÝ ª ª§Ôͳü>Ibän |
240 | Jw¨Ó»ClJùn½Ž q |
241 | ooôÑìÖ¤B`QWds=À÷Hwž9æ=}© |
242 | ΄àº�¿ït |
243 | ÒèÎOÆ6ÙðÕ¢K�ÍcwÓþñ¼”˜éÝٽΞ.ÃJ½ûæ#(ª�1åNï¾%ö@Ó@-~›Ÿ= øÖYóÉp�a]3Ý‹ö®…N�lªöi |
244 | “)Ùïtž“$„‚Þ�ìŒ\õ¡Aé×K½h„ò`±"ˆE’(¤œSdl:cÑyˆ£å^~ |
245 | tˆðfãu„ê |
246 | ãµ)aç8© |
247 | žòͪˆÆ�C?£÷‡b^à=ÜÕËw0ý¸{BXè:Óëzòþº2°Œ%{Ák׳•àþx<!õÉ …�ÞŽï(Æ—:Áò›Ì˜M |
248 | ×/nQ½p½�¬-£ÔùH�Ñ´¸ l[¸+• <‰u-öB+rQÇ.$c…èÿ´öõ |
249 | íáÞÊE¿� ÖUP0•¯%æ±³½è†Ð¥Üñ¹éÛó3™æðûã—v1ëÆK¿fšdåî¦*«�&‹E€(ªEì;^Ð䃾ý}8aáŸ;Âq(¥éúq‘;Žl¡¥ûÇu K¶œ!UaüSC;º˜Ú{ qé2ËS™7pÒ¬®(~ýï×#ž>|p`½/^I’£^}�‰(EU“V˜4TqH¡4ö>ËT |
250 | 5µn²¨+ôkÆTù®][`¼¦#(ÉciWYsù_°¾A |
251 | ÂŽ{@pyuîѦ}9á®:ݺØpߤK"tBõ´R€”% ¼Ej.VíZâå"ÞK-‰Ñž¹ÑzÛßW×À¾=YóóBÇæEøCB€ÎÔeÈF½cjâd.opÒ=Öyt¹‚Ywùl¥_M^¢¸ù¿rUÈî«h5a÷}î¯ |
252 | l)I��í¤·öQÏÕì°&IÂ…×6ÈL©ò±Qpƒ2^ì8l¦µû—s\äqSªÀ¡Æ„–LŽ” öˆTI¼nM/È«ªûÖ6û56Ïžòb½bsùœÂ˜œõ™hgPôƒz¢Êºª•þëïð’.øLK+#)Š(æ¶ù«Þ/ÔÙÔ;Uè7DNõ®†µ�pÒïêg€·#KI¢³ |
253 | AÖ2ÐAä*¬\0:\®©ñûc¥•¦Mƒ{].kX63ÁÀäï÷ÌùÖ¼g qŸÕ†”•åH±qHaæv |
254 | 4n]™á|^€X,•qHoO, _ |
255 | Ùð#)š8J5‹ |
256 | ¢ |
257 | ¢à©åeܥΠ|
258 | q[,û7ÄÈCëv>ªííÝÏÔvL}MvW¿IëÿQ]Ñ®¥ÃŽ�³µàXóÃsÛÔT�Y ‰$N:'K RÈBŽ™|´³èê#)0¯V#(® |
259 | 1»Ÿr Ẅ hô |
260 | öÒ›½Ÿú°l¬÷!¿»~‹I¿óvXNœó~:ÊÁ |
261 | 6ŠŽR�·ŒŸÝÄiÊqnÜÃôûâ8 €Fy"}^ñõñpa¯§ø>õÏLYËC�‰Öu#E;nz/¢I#©ŸîÖBhêðþ=¼5èôýYÙ: î&;�gMÁù÷ü-¯:ÿ%µj. |
262 | IåµÏýò. ôñ—uEX?ÁŸÍr ÎîR•’mÔ½!ôí�2Aœå/FÍ›}«$ôzöæˆ\J�ò`ÂÏdÜ…|B4i#ÑÖêEÈþÎÆú¶¡¨¼1¸HDŸW(˜Ð m? |
263 | ëF*ñ/ù¸álýç¾éÇÉó>owû‰þ(�€€=E ”±�¨ÚŸ¼x |
264 | ¬#¥áaïiL|_ê~ |
265 | Ûÿ‘óüãì\Žn˹Á Pû¢‘6g‰‡ægyÓí«ò¥¨;Wâ¡ù‡g°1ÌuÁ¿s¿àsç·Ñ•¯ñQ¤-ŸÇTÓ�íì`ä$qr$šÛlùç.T€UR›J j;p5ÓÌ^ÎE‹…ŒPb ȇ¿{wì×›z§ž7VÚšk“°ú�·~ò |
266 | ¶ Ä7üéÛ”$#ZÏõO=r$©“\4CÒášv]#(Êë�õŒÛŸéß¼ÜÜÞ[©m’IÆ´ó.}ýËmë-�C?H7?½ý™°44.!éÚœ¿ @7>i |
267 | ¯NÿU |
268 | ¦M #)˜•k›Â¬½ý±#)_rgîž#( |
269 | JôÃô4¤�©¯¹àzÆì�U"â]ß9]/.O>Zú)Ì�MªSD]j¬¨‘ þ�í¼ |
270 | ‹3 ü$韎og/RYžáƱX( |
271 | øöŸ,cú1÷LìÖ ëlÎ|‹½ |
272 | bݳô½Ÿ´D?õñM„Ÿª»&î‡÷½¦²‡wòÅž¨Õ¿�÷}›Û¶t>AÂúµœN#°ÄPå4¹3êzYJžÌ |
273 | ¢&—¾’E[õGŠ7>É8^#+$] |
274 | !ùáeæE%µ5 |
275 | g”œîhîœ"'–å ÍL!Ö*Ík†vã°Ë |
276 | ÝÎx@ÀÁÌÑÕcð(«'~Ê3ÆÞ}L» šbQm\¼£×õçI¨£¿*ž)ÄÍ |
277 | XFÎTƒ9ÚÆèðytºâ²9»¸AèÕ¸#(©L0ÙIÓÙÞ냕×ÍÁÏwÙêãÌöéq—D)uÓÜ÷ý …¸0,k—Ä!°¢¼³jk6˜°×:‚£$¨3Èߧv2®8àà |
278 | R±³# ð |
279 | Ž®¥Ö |
280 | Ö|Ë÷~àÔÎÞ¹.`Ø&Lè¾2Üvjc˜ï[v¿]¶ –è¼Ã(&o§×ɹðØï”»ûÄè |
281 | D‹VþwåׇŒ·}uÜcsøj™ h˜aCùÎòo8Ý |
282 | cu#(j’ÛÙè*ØsilCS£`S¡–�™Öj1-#(E›#¶ÎÎ6Ê0²`L’WTRP¥T)0îb˜¢Mú×áζNuÃn|q÷ë&FvãRÊ#AMäy^1œ)ß¾lGa`ðço³4`Âa3gÓ´Ë°ƒ(þßM{ƒ—Ä ×¯l/ÀM�ÀîÄ{*JX èQ‘CH#( |
283 | ƒ€vü2<åòÈ-EmÏž}:.ú4sÍñ£c |
284 | 0aÍç`01”X1õX.çÛ |
285 | bÎûš1Ý(¡Ì¦‘uÊêPg�}6#¯fFŽØ=:ú𮽑žŽS.žŒJÍÏ¥¹™E÷Þ#)ÅîCCG‹�áÜzž¤n»ô |
286 | é0ÿÌÿz1)Y#(ãâ8sÛÂ+»ô@ú |
287 | Åá³Ìï>qå¬i{KÑàBBAÇ0�m %Ûw!¼6‰[#žÏÝ6ÎøD ÇcFÒ8|iÃie{4ƒ,i¦Æ9”£Ù¦oÌë |
288 | 5OhÎ}ϼb(L1CGŸ„Ä‹OÇ5íthCôÛÕï WIß}Í�†ú7±<õ*òi㉉ÏsX~G5kÆd챂aŽ¾ö9#×»Í}[÷˜ïÑDfLko—öþižÆÑ@>5™þBÞËkùø¹Áž¶¶Ú„¾ùdñ¡É |
289 | l¾ë˜ÛLg3M¹½ |
290 | 6’lP´´QKf»ªó®dADî¹s\±ÓßY‹O^×òÝ|ë㛣C¤™’I¹xCI˜Taƒ`Ÿ·^xŒØñîÇ‚|(>‡§táñ狼� |
291 | wcdo¶ðÛ•¨È®¢“’LFJj^}ÃaiiÂÏDé1¦��0ž˜p'}èñèÇ8ßqàoÅi1¹P¡™U¥J2í3ª#)a¤lJ™aЬb+ ß›cßy†O_ŒØ`ÕﵞQû¯ã€=hÙW |
292 | 3¶¨ñãó%Öþžz¬ÚÒ ÌMý¦˜¤î±÷Ê’sIúq‡�*°Ûh#(¨s±ÓãsD\?†Ú |
293 | M�»Á¶³5 |
294 | ìžL±™®.™™½¢,Ár±74[)¼ïA�Ö‚„¨£Cl†ì‚`h”WÉ�*A¢®½óXÄÙZd‘zàÏ*÷ãMͪ6B˜0d´P…+ 1 È�² |
295 | #(w,¸2Q‘ Ä$˜`µÌ{=y·ŸÇÌîÒOvÒ{ü¡´tí!¦¨±" |
296 | §Œs~à^GÂvØtÉMžþxÊ |
297 | �×EzxU |
298 | çXõ\À6«…F[÷þ~Ú Š`š–Î,,3|=�Ú…ö﹑;G•‘ïóU pMÚ‹ |
299 | QJ²˜ÁF•à°öä;/'×õV®HïcàU_CÊFõE2,ŽxÃŒ1¾$oëè }º¦ç$sZ}3$ÿ:Îzô;ããÅà�Ý÷Ýò)Ÿôcþ.»ëy)„ú††Xø5… |
300 | œ±r»÷RÈÛ^cŒ9ü¶0ôŠü½Ï |
301 | ¢›^ö`öÓzeÚÈîv?h´†š)q |
302 | Ë ™ƒ_ŽïMKMp€I·å*ð̉•¡údñ�úu.¢5í…?f |
303 | {³Ê"XÝQÆhm¹¹ |
304 | R0ÉŽîˆ!0Š7ïð}em†6,‚•®³½Hu¤ž6ˆ *Q½ù?¹b·ˆŒ²HiK§ŸµØØú¾¹·Ò“ΟðØu fÑ8ØÈv°¬Œòr¼çwAZç |
305 | Ub7Pä7f¬¸e£‰ƒ€[«fÖB #(•1¢À¶J‚ºóÞ]ë·X½»Š6Å |
306 | ¥Ët™ ̸“&.K`±¬—«iƒ5B,"†…ñxú7‚2 P�ŒüMs·ø÷7Ö÷¤Èá,¾OªŸöý¿?#)3»è8ÙtrŒb¡‰@uìá |
307 | ®Ñ(^è"2æ>égvzÄÂ7�°ç7ué¼nJÛhLGZÔ¤‡¯ŸÑÊ¡�1Ó¶¨¢&8¼cf¶b±žÇ¸S5|Of¦Àx~óÎ0ÛvräHTÍç{¦JœâCì.6¦1ôW<lj¢ÌÒ#)T^!¸Ør<àÆ�(Íl |
308 | 9,¦áv—¬˜nrWE™è |
309 | Ö~ |
310 | '£?À1ï�ч |
311 | #ðÄ—®…@0kü¸ÂL†à'iRó`t{Èr{#(ü'-³´9o•3úÕK©ø—Ê |
312 | ŽÛ]…ù3\Ñ7 |
313 | ï |
314 | _…³‚‚÷o*ž |
315 | Ñ4Šû"ý¾t²,n˜yrÄ„¶c³¿½ü=¯Æ@³·¶)¸Ãn6†*ÈŒQBØ$ |
316 | ,^ʧl•.3=áEÎö„õnPèbâwb ×´êŠL•§Ú½þèU5ñÄ“�bÈ–£Ïùà†£s|óå]÷ßcÔ�Á0� |
317 | ‰‚©AF⢙ìÓNzQ`ÔŒ@@Û#ÙÁØÜ”gÜ—®yÉž‡*šædŸiÒP€°EaY‡Væ¤�±¬U¤»·ÅrÝíêèâ©TTb²ŽüYק:=1Š7¡Ló-FËà˜N¹�3|wÁÆ8Àó<œ@Ð )‡Ò ŽØ7æÙ©ßVЄF9ÕçG“ÔЧO"E |
318 | p†¼UDž4q�˜N"Ù·êöŽ±ÛþqäÂi柾 |
319 | *P{8§�•?˜Jã·sœ‚>(’Ž¯Ÿf€ÞF¶=`þÓ5ú#)z�˜ÚoxÐ1Q¶EPŠ�5cG6—¨4v_Ýd¼ëtÙ³ó³ILEâ/ÓøI’w |
320 | #(ƒ²¾÷ #(�h¿[#)ÍmOŠºã&Z•¢Ò’ |
321 | . |
322 | ½ûŸâ¢µ~óä!Ûuwgøå¬4k£Z§Q°p |
323 | ÷©Â�La=ïûó—OJÿ3Ä‹û|\˜EÜœ‘÷ôm |
324 | óßk/<ÚB}³Á ¦’=�Ç÷Ø£Óçùøç´åôô}¿C¨ñó`~¾×î |
325 | wœ}#)Ì5Îá“œK¹HsF\¯I£È |
326 | ‹7{¾|Ý×õÍâà |
327 | Ðþ¶ý;º~ |
328 | ˜5†ì4x¤R,E— |
329 | Lñ?Öl¼î¤üó¯ò}y| |
330 | ‚ |
331 | ÷6†ÖŠƒ&ë85LtÁ¹½"˜Af¢ƒU2²2–JHÊ5) ¨e |
332 | 'ç_ÃÓù¢@ |
333 | "‡ýi 9œŸ#+Ê)&œÃ×_Ž |
334 | èÙ@€�$'FÚ³/:aÙ¸öq_Å¡òÀQþŒü9\X¨*#)AEŽgmAË÷+˜ÄŠTЗÕî33"–ߢ©¬TÅúŽçF²aPø�Õ |
335 | èþçôùhgìø�:ytš†úawYýŒt0�Å5lgçaÙZûëZd¥DVŸÊèK¢JfP¶Iía"–”*N©ž™¯¯—ÓCñ~…% |
336 | ˜[=ÉýX¦·V³ü˜^ü/�:‚"h#ù#RäË-4jˆ–Ÿ?W|Ý^¼êåÉAE |
337 | ÉHpI=l |
338 | I� |
339 | (dÀت÷Ìm[¯SÔÚñWØ’½�ïýø—°yÝ¢ËHn6ˆ7R e%"–�Ǥ jb˜ý�ZÿlÝÊSÌ›’Ÿú.÷ÆXœÿØAÀ|ü#(&C`47ПàGOë!Å;^`ûÌ}â´Ä›Uˆ“à؇¯R§=êddÝ¡Â{Æø[}ÃrŠi•Ç�i=_¦üÅJˆÎE'–õ–1•j‹¨¤U]pZ‘HÇðëy¼++½’ãtQP'jå�¼îÏu»¦¦ÁøÎØÑ}ÏwÙùíü¦bT*æRHo |
340 | þtª> l÷ú}~_O¥YÛ…uú89ÄkZ"$uCâß;èg÷B›”v |
341 | £å»N�cìN�>�¨y…EàÁB‹—Ñùp“?—·'Ã#)|èõMäLÓ¯v÷Ýð5o=,‹¬Û]n.ËïëºÞÓÀÃFTM$¿ÓèÉãÉÚ¿ªÑ#)=ýýO—x³† |
342 | îûpSb�ÖÞÛ{·]víq°X„” |
343 | |j¨º§Ê¡îýÖÈ“óQ@ž¡>ÂÎ¥g® h3éXäPù~îPc�Àð-Ã:j’x_/A' |
Why should we use waf?
I would rather stick to autofoo tbh