rator' content='cgit 1.4.1'/> <meta name='robots' content='index, nofollow'/> <link rel='stylesheet' type='text/css' href='/custom.css'/> <link rel='alternate' title='Atom feed' href='https://git.causal.agency/torus/atom/sshd_config?h=master' type='application/atom+xml'/> <link rel='vcs-git' href='https://git.causal.agency/torus' title='torus Git repository'/> </head> <body> <div id='cgit'><table id='header'> <tr> <td class='main'><a href='/'>index</a> : <a href='/torus/'>torus</a></td><td class='form'><form method='get'> <input type='hidden' name='id' value='d8c973966760095026218ab09be8d30eb9983e3b'/><input type='hidden' name='showmsg' value='1'/><select name='h' onchange='this.form.submit();'> <option value='92187f2a12bcc9b108773e080074b4cfc47f6db9'>this commit</option> <optgroup label='branches'><option value='ansi'>ansi</option> <option value='backport'>backport</option> <option value='cgi'>cgi</option> <option value='daemon'>daemon</option> <option value='master' selected='selected'>master</option> <option value='v1'>v1</option> <option value='v2'>v2</option> </optgroup></select> <input type='submit' value='switch'/></form></td></tr> <tr><td class='sub'>collaborative ASCII art </td><td class='sub right'></td></tr></table> <table class='tabs'><tr><td> <a href='/torus/about/'>about</a> <a href='/torus/'>summary</a> <a href='/torus/refs/?id=d8c973966760095026218ab09be8d30eb9983e3b'>refs</a> <a class='active' href='/torus/log/sshd_config?showmsg=1&follow=1'>log</a> <a href='/torus/tree/sshd_config?id=d8c973966760095026218ab09be8d30eb9983e3b'>tree</a> <a href='/torus/commit/sshd_config?id=d8c973966760095026218ab09be8d30eb9983e3b&follow=1'>commit</a> <a href='/torus/diff/sshd_config?id=d8c973966760095026218ab09be8d30eb9983e3b&follow=1'>diff</a> <a href='https://ascii.town'>homepage</a></td><td class='form'><form class='right' method='get' action='/torus/log/sshd_config'> <input type='hidden' name='id' value='d8c973966760095026218ab09be8d30eb9983e3b'/><input type='hidden' name='showmsg' value='1'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/torus/log/?id=d8c973966760095026218ab09be8d30eb9983e3b&showmsg=1&follow=1'>root</a>/<a href='/torus/log/sshd_config?id=d8c973966760095026218ab09be8d30eb9983e3b&showmsg=1&follow=1'>sshd_config</a> (<a href='/torus/log/sshd_config?id=d8c973966760095026218ab09be8d30eb9983e3b&showmsg=1'>unfollow</a>)</div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/torus/log/sshd_config?id=d8c973966760095026218ab09be8d30eb9983e3b&follow=1'>Collapse</a>)</th><th class='left'>Author</th></tr> <tr class='logheader'><td><span title='2018-08-21 13:29:51 -0400'>2018-08-21</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=642e1fe5360044ebe4207b1eb2817472fc6ddb36&follow=1'>Remove spawns</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> This reverts ce13621292bdfeafd7c6561c432a1d96deccbd3a and commits after it. </td></tr> <tr class='logheader'><td><span title='2018-08-21 13:09:58 -0400'>2018-08-21</span></td><td class='logsubject'><a href='/torus/commit/Makefile?id=5f1a3d809239171d5620f2f208e6e635100b22eb&follow=1'>Clean up Makefile</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> Having .o files depend on .h files works correctly everywhere, it seems. </td></tr> <tr class='logheader'><td><span title='2018-08-05 19:32:11 -0400'>2018-08-05</span></td><td class='logsubject'><a href='/torus/commit/termcap.diff?id=1fb2c98b392b44f8a9ad3512608c92e1dad9c7af&follow=1'>Fix color pairs once and for all</a><span class='decoration'> <a class='branch-deco' href='/torus/log/termcap.diff?h=v1&showmsg=1'>v1</a></span></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> 8/16 color setup adapted from chat/ui.c. termcap patch hack no longer required. Black on black and bright black now work. Nothing will appear bold anymore on 256-color terminals. The keys for black have definitely always been in the help. You just didn't notice. </td></tr> <tr class='logheader'><td><span title='2018-08-05 16:48:07 -0400'>2018-08-05</span></td><td class='logsubject'><a href='/torus/commit/index.html?id=620d9e2b6cd3fe6dfe03db7913ebbbc2c4da6095&follow=1'>Add chat to index.html</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-07-25 15:38:41 -0400'>2018-07-25</span></td><td class='logsubject'><a href='/torus/commit/server.c?id=d864ce8543216dc93688282f0e8e1df0ffcafa2b&follow=1'>Set client sockets SNDBUF to twice tile size</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> On Darwin and FreeBSD, this is already the default buffer size, but on (32-bit?) NetBSD, it's only 4K. </td></tr> <tr class='logheader'><td><span title='2018-07-24 17:23:57 -0400'>2018-07-24</span></td><td class='logsubject'><a href='/torus/commit/server.c?id=a609ab7e471d7ba7598e2e2c913168a5e95b129b&follow=1'>Revert "Do not set non-blocking on client sockets"</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> This reverts commit f4da47cb0ee659472b563b9e6443663c62a69996. There actually are adverse effects. </td></tr> <tr class='logheader'><td><span title='2018-07-24 17:00:43 -0400'>2018-07-24</span></td><td class='logsubject'><a href='/torus/commit/meta.c?id=5bb8bc772bd5434b9c4f6c92999e41cf7a27c264&follow=1'>Print time_t with %jd in meta</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> On 32-bit NetBSD, time_t is 'long long int' rather than 'long int'. This works everywhere. </td></tr> <tr class='logheader'><td><span title='2018-07-24 16:57:34 -0400'>2018-07-24</span></td><td class='logsubject'><a href='/torus/commit/server.c?id=f4da47cb0ee659472b563b9e6443663c62a69996&follow=1'>Do not set non-blocking on client sockets</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> On NetBSD, the send buffer seems to only be 4096 bytes, so sending SERVER_TILE would get cut short. Just not setting non-blocking allows messages to properly get through and *seems* to have no adverse effect. </td></tr> <tr class='logheader'><td><span title='2018-07-24 16:55:12 -0400'>2018-07-24</span></td><td class='logsubject'><a href='/torus/commit/server.c?id=fda4692bca6d9c6d63b48e1d3ffa3a2d73d6181a&follow=1'>Use EV_SET</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> NetBSD kevent.udata is uintptr_t rather than void * and the macro does the cast. </td></tr> <tr class='logheader'><td><span title='2018-07-24 16:52:55 -0400'>2018-07-24</span></td><td class='logsubject'><a href='/torus/commit/Makefile?id=333c1574a2722ef5fca8215bf2db9f1dd6885e18&follow=1'>Link with -lcurses</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> NetBSD has its own curses implementation and doesn't ship ncurses. </td></tr> <tr class='logheader'><td><span title='2018-07-23 01:17:10 -0400'>2018-07-23</span></td><td class='logsubject'><a href='/torus/commit/client.c?id=b8c4a9e4bc6cebd637900a4807c108ef48c78954&follow=1'>Fix NaNs in serverMap</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> When there are very few touched tiles, even if they are recent, they will appear blue, because timeMin is also recent. I should figure out how to fix that. </td></tr> <tr class='logheader'><td><span title='2018-07-22 19:19:30 -0400'>2018-07-22</span></td><td class='logsubject'><a href='/torus/commit/Makefile?id=8a46cf5d764b2b522c7c331845f19952630370bc&follow=1'>Add libm.so to chroot.tar</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-07-22 19:17:09 -0400'>2018-07-22</span></td><td class='logsubject'><a href='/torus/commit/Makefile?id=6369fae3d92de8b77ede1007da0881f14684e293&follow=1'>Link with -lm</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> Darwin's lack of separation strikes again. </td></tr> <tr class='logheader'><td><span title='2018-07-22 19:14:09 -0400'>2018-07-22</span></td><td class='logsubject'><a href='/torus/commit/client.c?id=ab41d8000105ab7e5a5651c0fd59759c156d32fb&follow=1'>Add map to client</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-07-21 13:48:43 -0400'>2018-07-21</span></td><td class='logsubject'><a href='/torus/commit/client.c?id=bb28258e3c4555bf66b0993252bff6ab7efa3138&follow=1'>Refactor readInput for each mode</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-07-19 15:44:16 -0400'>2018-07-19</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=5d6de9e0f527db9658b05b877496c824faa96c55&follow=1'>Add ARRAY_LEN macro</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-07-17 23:35:21 -0400'>2018-07-17</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=8e4d15cf8fdf389a34666b5df47255c972478209&follow=1'>Add server map generation</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-07-17 15:44:35 -0400'>2018-07-17</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=e81cee1da82bd8d6bffd91ec67d0b3e957d89574&follow=1'>Tabify source</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> And other style changes. </td></tr> <tr class='logheader'><td><span title='2018-05-13 17:41:16 -0400'>2018-05-13</span></td><td class='logsubject'><a href='/torus/commit/client.c?id=1cffed514d39f2412061d1ccdd16044acbe98da8&follow=1'>Fix ncurses color pair numbering</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> This was dumb. Of course all the color pairs fit in 64, but I was shifting too much because my own representation includes the bright bit. </td></tr> <tr class='logheader'><td><span title='2018-04-09 01:25:43 -0400'>2018-04-09</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=6dadef0381d8b7a63f40b185b3592f27b55453cd&follow=1'>Use anonymous union</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-04-09 01:00:54 -0400'>2018-04-09</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=99e3c574a02fdb779e97186119891fbe46390d72&follow=1'>Replace #define with enum or const where possible</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-03-31 22:05:47 -0400'>2018-03-31</span></td><td class='logsubject'><a href='/torus/commit/Makefile?id=96b09c86e6838c8bd2e39ff70c4840332a2d06ea&follow=1'>Link against ncurses</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-03-05 12:58:58 -0500'>2018-03-05</span></td><td class='logsubject'><a href='/torus/commit/server.c?id=2dcf768ed895f65771da689236db0a25bf827fe9&follow=1'>Miscellaneous code cleanup</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-03-05 12:58:18 -0500'>2018-03-05</span></td><td class='logsubject'><a href='/torus/commit/server.c?id=9387958f8a6bae28f4c9b115aef12e8163393aec&follow=1'>Pass message structs by value</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-03-05 12:55:46 -0500'>2018-03-05</span></td><td class='logsubject'><a href='/torus/commit/meta.c?id=3e7377a479f49d2a8f2b0b893b6f8ea946b56fc9&follow=1'>Use stdio in merge and meta</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-03-05 12:55:18 -0500'>2018-03-05</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=e2033ccf64792e0f78363981ffcd56c78c41de9a&follow=1'>Clean up spawn constants</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-03-05 12:54:26 -0500'>2018-03-05</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=79ab120ad31ed74a2a3221d14b7472703296a921&follow=1'>Rename Tile timestamps {create,modify,access}Time</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-03-05 12:45:17 -0500'>2018-03-05</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=7bac64b1b3d8a0ab763aa584e3b085b45ae082b7&follow=1'>Pack message type enums</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-03-05 12:39:40 -0500'>2018-03-05</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=2dda5826731ce18d0d24ae3d13de1c80008227e6&follow=1'>Undef COLOR_ constants in torus.h</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2018-03-05 12:37:52 -0500'>2018-03-05</span></td><td class='logsubject'><a href='/torus/commit/Makefile?id=69dbc210391ff7829e2ceeb05770d1de517a329b&follow=1'>Generate tags</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2017-10-03 12:32:05 -0400'>2017-10-03</span></td><td class='logsubject'><a href='/torus/commit/Makefile?id=f595106dee331dd864ebb15bab9ae17675967168&follow=1'>Simplify Makefile with pattern rule</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> Insert rant about how GNU make handles the .c rule with extra dependencies. Also I don't care that everything links curses now. </td></tr> <tr class='logheader'><td><span title='2017-09-27 15:28:16 -0400'>2017-09-27</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=46abcc7b70cfa8da069aceeddb0039b3e18827cf&follow=1'>Remove leading blank lines</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2017-09-27 15:25:58 -0400'>2017-09-27</span></td><td class='logsubject'><a href='/torus/commit/README?id=038957c275278559d6e3f814e9b06e9349e80738&follow=1'>Add merge.c to README</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2017-09-03 15:34:21 -0400'>2017-09-03</span></td><td class='logsubject'><a href='/torus/commit/server.c?id=0c5568b6a60d67bbbf84fd037d41826ccc497b8e&follow=1'>Assert client coords are valid after movement</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2017-09-03 14:57:17 -0400'>2017-09-03</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=58eb1831071734bafbdd6c6d846fb493b17a4961&follow=1'>Relicense AGPL</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> I know it's already published under a permissive license in what is probably its final form, but I want to license it AGPL anyway on principle following some conversations I had about open source, corporations and copyleft. </td></tr> <tr class='logheader'><td><span title='2017-09-01 13:55:48 -0400'>2017-09-01</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=9915cb618fd8552372756ce3d1877d6e8564d021&follow=1'>Revert "Add client readOnly mode"</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> This reverts commit 9a6c9c91c8092603b914cc0b3085d059e162ca29. </td></tr> <tr class='logheader'><td><span title='2017-09-01 12:33:54 -0400'>2017-09-01</span></td><td class='logsubject'><a href='/torus/commit/server.c?id=2f5f73d10a13f612f54ae1e5be8519d72a9372a0&follow=1'>Remove clientRemove call from clientCast</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> If an error occurs on a client socket during a broadcast, that client will show up in the kqueue loop with EV_EOF and get removed that way. Tested by sending SIGKILL to a client and watching its cursor disappear. </td></tr> <tr class='logheader'><td><span title='2017-09-01 00:08:07 -0400'>2017-09-01</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=9a6c9c91c8092603b914cc0b3085d059e162ca29&follow=1'>Add client readOnly mode</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2017-08-31 15:37:36 -0400'>2017-08-31</span></td><td class='logsubject'><a href='/torus/commit/merge.c?id=2aa5fe545bdba997bdb728a2dfb2e3bca93766ae&follow=1'>Clean up merge tool</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> Choose the version with the most recent access if the modify times are the same. </td></tr> <tr class='logheader'><td><span title='2017-08-31 13:45:12 -0400'>2017-08-31</span></td><td class='logsubject'><a href='/torus/commit/merge.c?id=22198d6399a006f59d162b2e00a7b8205c8f6e9b&follow=1'>Choose B for tiles with equal modify times</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> This way newer access counts and times will be preserved. </td></tr> <tr class='logheader'><td><span title='2017-08-31 01:00:02 -0400'>2017-08-31</span></td><td class='logsubject'><a href='/torus/commit/merge.c?id=2188bd834c546b40d4b19258f8729ecae86be853&follow=1'>Add quick data file merge tool</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> Hopefully I won't have to use it ever again. </td></tr> <tr class='logheader'><td><span title='2017-08-30 11:16:22 -0400'>2017-08-30</span></td><td class='logsubject'><a href='/torus/commit/client.c?id=38d460d2bae7569ec0c2d99086fd2fd5e8a8897c&follow=1'>Use only foreground color for selecting spawn</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2017-08-29 18:33:59 -0400'>2017-08-29</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=af645c09089d1ed8e99c760f05234ac3df402901&follow=1'>Add four additional spawns</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2017-08-28 23:38:40 -0400'>2017-08-28</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=ce13621292bdfeafd7c6561c432a1d96deccbd3a&follow=1'>Add respawning</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2017-08-26 23:46:14 -0400'>2017-08-26</span></td><td class='logsubject'><a href='/torus/commit/torus.h?id=ccdad79970a150eec64758e1a3b14b084d4cb42f&follow=1'>Move license above includes</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> Why was it down there? </td></tr> <tr class='logheader'><td><span title='2017-08-26 19:32:55 -0400'>2017-08-26</span></td><td class='logsubject'><a href='/torus/commit/snapshot.sh?id=e5184500830e04f3c9839d2dac62108fcb28133f&follow=1'>Snapshot metadata</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2017-08-26 16:51:14 -0400'>2017-08-26</span></td><td class='logsubject'><a href='/torus/commit/README?id=7cfc2d9b309c4c664a177e55441f88a64e15561c&follow=1'>Add meta.c to README</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> </td></tr> <tr class='logheader'><td><span title='2017-08-26 16:47:57 -0400'>2017-08-26</span></td><td class='logsubject'><a href='/torus/commit/server.c?id=592d0fbdc59c19c89bf4fd5498591d07b0d9c132&follow=1'>Use Makefile</a></td><td>June McEnroe