]> git.sur5r.net Git - i3/i3.github.io/blobdiff - docs/hacking-howto.html
update docs for 4.14
[i3/i3.github.io] / docs / hacking-howto.html
index 791b6af2b5f9918807ba66cac49d0e93a37102c2..606fad646b1c4ae78fcb674757606e8a873f2e23 100644 (file)
@@ -240,14 +240,6 @@ src/config_parser.c) with the correct path, switching key bindings mode).
 </p>\r
 </dd>\r
 <dt class="hdlist1">\r
-src/debug.c\r
-</dt>\r
-<dd>\r
-<p>\r
-Contains debugging functions to print unhandled X events.\r
-</p>\r
-</dd>\r
-<dt class="hdlist1">\r
 src/ewmh.c\r
 </dt>\r
 <dd>\r
@@ -1529,6 +1521,75 @@ of the latest release, plus any bugfixes that were applied since that release.</
 on a new feature, use the “next” branch. If you are working on a bugfix, use the\r
 “next” branch, too, but make sure your code also works on “master”.</p></div>\r
 </div>\r
+<div class="sect2">\r
+<h3 id="_how_to_build">20.3. How to build?</h3>\r
+<div class="paragraph"><p>You can build i3 like you build any other software package which uses autotools.\r
+Here’s a memory refresher:</p></div>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>$ autoreconf -fi\r
+$ mkdir -p build &amp;&amp; cd build\r
+$ ../configure\r
+$ make -j8</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>(The autoreconf -fi step is unnecessary if you are building from a release tarball,\r
+ but shouldn’t hurt either.)</p></div>\r
+<div class="sect3">\r
+<h4 id="_build_system_features">20.3.1. Build system features</h4>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+We use the AX_ENABLE_BUILDDIR macro to enforce builds happening in a separate\r
+  directory. This is a prerequisite for the AX_EXTEND_SRCDIR macro and building\r
+  in a separate directory is common practice anyway. In case this causes any\r
+  trouble when packaging i3 for your distribution, please open an issue.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+“make check” runs the i3 testsuite. See docs/testsuite for details.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+“make distcheck” (runs testsuite on “make dist” result, tiny bit quicker\r
+  feedback cycle than waiting for the travis build to catch the issue).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+“make uninstall” (occasionally requested by users who compile from source)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+“make” will build manpages/docs by default if the tools are installed.\r
+  Conversely, manpages/docs are not tried to be built for users who don’t want\r
+  to install all these dependencies to get started hacking on i3.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+non-release builds will enable address sanitizer by default. Use the\r
+  --disable-sanitizers configure option to turn off all sanitizers, and see\r
+  --help for available sanitizers.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Support for pre-compiled headers (PCH) has been dropped for now in the\r
+  interest of simplicity. If you need support for PCH, please open an issue.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Coverage reports are now generated using “make check-code-coverage”, which\r
+  requires specifying --enable-code-coverage when calling configure.\r
+</p>\r
+</li>\r
+</ul></div>\r
+</div>\r
+</div>\r
 </div>\r
 </div>\r
 <div class="sect1">\r