blob: d1a99640b978310a737f3845d921e8d44fa0f70b [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>PLC4X &#x2013; </title>
<script src="../../js/jquery.slim.min.js" type="text/javascript"></script>
<!--script src="../../js/popper.min.js" type="javascript"></script-->
<script src="../../js/bootstrap.bundle.min.js" type="text/javascript"></script>
<!-- The tooling for adding images and links to Apache events -->
<script src="https://www.apachecon.com/event-images/snippet.js" type="text/javascript"></script>
<!-- FontAwesome -->
<link rel="stylesheet" href="../../css/all.min.css" type="text/css"/>
<!-- Bootstrap -->
<link rel="stylesheet" href="../../css/bootstrap.min.css" type="text/css"/>
<!-- Some Maven Site defaults -->
<link rel="stylesheet" href="../../css/maven-base.css" type="text/css"/>
<link rel="stylesheet" href="../../css/maven-theme.css" type="text/css"/>
<!-- The PLC4X version of a bootstrap theme -->
<link rel="stylesheet" href="../../css/themes/plc4x.css" type="text/css" id="pagestyle"/>
<!-- A custom style for printing content -->
<link rel="stylesheet" href="../../css/print.css" type="text/css" media="print"/>
<meta http-equiv="Content-Language" content="en"/>
</head>
<body class="composite">
<nav class="navbar navbar-light navbar-expand-md bg-faded justify-content-center border-bottom">
<!--a href="/" class="navbar-brand d-flex w-50 mr-auto">Navbar 3</a-->
<a href="https://plc4x.apache.org/" id="bannerLeft"><img src="../../images/apache_plc4x_logo_small.png" alt="Apache PLC4X"/></a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsingNavbar3">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse w-100" id="collapsingNavbar3">
<ul class="navbar-nav w-100 justify-content-center">
<li class="nav-item">
<a class="nav-link" href="../../index.html">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../users/index.html">Users</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="../../developers/index.html">Developers</a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../apache/index.html">Apache</a>
</li>
</ul>
<ul class="nav navbar-nav ml-auto justify-content-end">
<li class="nav-item row valign-middle">
<a class="acevent" data-format="wide" data-mode="light" data-event="random" style="width:240px;height:60px;"></a>
</li>
</ul>
</div>
</nav>
<div class="container-fluid">
<div class="row h-100">
<nav class="col-sm-push col-md-2 pt-3 sidebar">
<div class="sidebar-sticky">
<ul class="nav flex-column">
<li class="nav-item">
<a href="../../developers/infrastructure/issues.html" class="nav-link">Bug & Issue Tracker</a>
</li>
<li class="nav-item">
<a href="../../developers/index.html" class="nav-link">Section Home</a>
</li>
<li class="nav-item">
<a href="../../developers/preparing/index.html" class="nav-link">Preparing your Computer</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/preparing/linux.html" class="nav-link">Linux</a>
</li>
<li class="nav-item">
<strong class="nav-link">Mac OS</strong>
</li>
<li class="nav-item">
<a href="../../developers/preparing/windows.html" class="nav-link">Windows</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/building.html" class="nav-link">Building</a>
</li>
<li class="nav-item">
<a href="../../developers/contributing.html" class="nav-link">Contributing</a>
</li>
<li class="nav-item">
<a href="../../developers/tutorials/index.html" class="nav-link">Tutorials</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/tutorials/writing-driver.html" class="nav-link">Writing Drivers</a>
</li>
<li class="nav-item">
<a href="../../developers/tutorials/testing-serializers-and-parsers.html" class="nav-link">Testing Drivers</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/code-gen/index.html" class="nav-link">Code Generation</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/code-gen/protocol/mspec.html" class="nav-link">Protocol: MSpec Format</a>
</li>
<li class="nav-item">
<a href="../../developers/code-gen/language/freemarker.html" class="nav-link">Language: Apache Freemarker</a>
</li>
<li class="nav-item">
<a href="../../developers/code-gen/protocol/df1.html" class="nav-link">Example: DF1 MSpec</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/index.html" class="nav-link">Infrastructure</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/infrastructure/ci.html" class="nav-link">Continuous Integration</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/issues.html" class="nav-link">Bug & Issue Tracker</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/sonar.html" class="nav-link">Code Analysis</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/wiki.html" class="nav-link">Wiki</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/vm.html" class="nav-link">Build VM</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/website.html" class="nav-link">Website</a>
</li>
<li class="nav-item">
<a href="../../developers/infrastructure/vpn.html" class="nav-link">IoT VPN</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/release/index.html" class="nav-link">Releasing</a>
<ul class="flex-column pl-4 nav">
<li class="nav-item">
<a href="../../developers/release/release.html" class="nav-link">Releasing</a>
</li>
<li class="nav-item">
<a href="../../developers/release/validation.html" class="nav-link">Validating</a>
</li>
<li class="nav-item">
<a href="../../developers/release/build-tools.html" class="nav-link">Releasing Build-Tools</a>
</li>
</ul>
</li>
<li class="nav-item">
<a href="../../developers/tools.html" class="nav-link">Tools</a>
</li>
<li class="nav-item">
<a href="../../developers/team.html" class="nav-link">Team</a>
</li>
<li class="nav-item">
<a href="../../developers/decisions.html" class="nav-link">Decision Making</a>
</li>
<li class="nav-item">
<a href="../../developers/maturity.html" class="nav-link">Maturity</a>
</li>
</ul>
</div>
</nav>
<main role="main" class="ml-sm-auto px-4 col-sm-pull col-md-9 col-lg-10 h-100">
<div class="sect1">
<h2 id="mac_os">Mac OS</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Most libraries on Mac are installed using <code>Homebrew</code>.</p>
</div>
<div class="paragraph">
<p>Make sure <code>Homebrew</code> ist installed in order to install most of these.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"</pre>
</div>
</div>
<div class="sect2">
<h3 id="git">Git</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>git --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>In order to install it, please execute the following command:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>brew install git</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="libpcap">LibPCAP</h3>
<div class="paragraph">
<p>The libpcap version bundled with Mac OS is currently 1.9.1.
This version causes exceptions.
So it&#8217;s best to update to a newer version using brew:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>brew install libpcap</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="gcc">gcc</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>gcc --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>It seems macOS comes with a version of gcc which is good enough for our usecases.</p>
</div>
</div>
<div class="sect2">
<h3 id="g">g++</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>g++ --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>It seems macOS comes with a version of g++ which is good enough for our usecases.</p>
</div>
</div>
<div class="sect2">
<h3 id="dotnet">dotnet</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>dotnet --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>Microsoft is offering an installer for MacOS which is available from <a href="https://dotnet.microsoft.com/download/dotnet-core/2.2">here</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="python">python</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>python --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get a version of 2.7 or higher reported, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>In order to install it, please execute the following command:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>brew install python@2</pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="bison">bison</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>python --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get a version above 2.3 output, you don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>macOS comes with a pre-installed version of bison, however this version is 2.3 and hereby too old.
So you need to update to a more recent version:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>brew install bison
brew link bison --force
echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' &gt;&gt; ~/.bash_profile</pre>
</div>
</div>
<div class="paragraph">
<p>Be sure to reboot or at least restart your IDE or commandline in order for the changes to become effective.</p>
</div>
</div>
<div class="sect2">
<h3 id="flex">flex</h3>
<div class="paragraph">
<p>Checking:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>flex --version</pre>
</div>
</div>
<div class="paragraph">
<p>If you get any successful output, you probably don&#8217;t need to do anything.</p>
</div>
<div class="paragraph">
<p>It seems macOS comes with a version of flex which is good enough for our usecases.</p>
</div>
</div>
</div>
</div>
</main>
<footer class="pt-4 my-md-5 pt-md-5 w-100 border-top">
<div class="row justify-content-md-center" style="font-size: 13px">
<div class="col col-6 text-center">
Copyright &#169; 2017&#x2013;2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.<br/>
Apache PLC4X, PLC4X, Apache, the Apache feather logo, and the Apache PLC4X project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
<br/><div style="text-align:center;">Home screen image taken from <a
href="https://flic.kr/p/chEftd">Flickr</a>, "Tesla Robot Dance" by Steve Jurvetson, licensed
under <a href="https://creativecommons.org/licenses/by/2.0/">CC BY 2.0 Generic</a>, image cropped
and blur effect added.</div>
</div>
</div>
</footer>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="../../js/jquery.slim.min.js"></script>
<script src="../../js/popper.min.js"></script>
<script src="../../js/bootstrap.min.js"></script>
<script type="text/javascript">
$('.carousel .carousel-item').each(function(){
var next = $(this).next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
for (let i = 0; i < 3; i++) {
next=next.next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));
}
});
</script>
</body>
</html>