<?xml version="1.0"?> 

<!--
	description:

		"Supported Platforms"

	tool: "Gobo Eiffel Compiler"
	copyright: "Copyright (c) 2006-2025, Eric Bezault and others"
	license: "MIT License"
-->

<chapter xmlns="https://www.gobosoft.com/eiffel/gobo/documentation" id="gec/platforms">
<chapterinfo>
	<copyright>
		<year>2006-2025</year>
		<holder>Eric Bezault</holder>
	</copyright>
	<author>
		<firstname>Eric</firstname><surname>Bezault</surname>
	</author>
	<email>ericb@gobosoft.com</email>
	<date>2 September 2025</date>
</chapterinfo>

<title>Supported Platforms</title>

<para>
If you are not sure whether <projectname>gec</projectname> works with your C compiler
on your operating system and hardware, you can see below if others already
succeeded in doing so. If your platform or C compiler does not appear in
this list, you can still give it a try. You just have to follow the 
instructions given at the end of this chapter.
</para>

<section><title>Hardware, Operating systems and C compilers</title>
<para>
This table shows the C compilers and platforms on which <projectname>gec</projectname>
has already been used successfully:
</para>
<table>
	<title></title>
	<tgroup cols="4">
	<thead>
		<row>
			<entry>Operating System</entry>
			<entry>Hardware</entry>
			<entry>C Compiler</entry>
			<entry>Comment</entry>
		</row>
	</thead>
	<tbody>
		<row>
			<entry>Linux Ubuntu 24.04</entry>
			<entry>x86_64</entry>
			<entry>gcc 13.3.0</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>
				and <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink>
			</entry>
		</row>
		<row>
			<entry>Linux Ubuntu 24.04</entry>
			<entry>x86_64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>
				and <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink>
			</entry>
		</row>
		<row>
			<entry>Linux Ubuntu 24.04</entry>
			<entry>arm64</entry>
			<entry>gcc 13.3.0</entry>
			<entry>Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink></entry>
		</row>
		<row>
			<entry>Linux Ubuntu 24.04</entry>
			<entry>arm64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink></entry>
		</row>
		<row>
			<entry>Linux Ubuntu 22.04</entry>
			<entry>x86_64</entry>
			<entry>gcc 11.4.0</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>
				and <ulink url="https://gitlab.com/ebezault/gobo/-/pipelines">GitLab Pipelines</ulink>
			</entry>
		</row>
		<row>
			<entry>Linux Ubuntu 22.04</entry>
			<entry>x86_64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink></entry>
		</row>
		<row>
			<entry>Linux Ubuntu 22.04</entry>
			<entry>arm64</entry>
			<entry>gcc 11.4.0</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>
				and <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink>
			</entry>
		</row>
		<row>
			<entry>Linux Ubuntu 22.04</entry>
			<entry>arm64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>
				and <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink>
			</entry>
		</row>
		<row>
			<entry>MacOS 15.5</entry>
			<entry>x86_64</entry>
			<entry>clang 17.0.0</entry>
			<entry>Using <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink></entry>
		</row>
		<row>
			<entry>MacOS 15.5</entry>
			<entry>x86_64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>Using <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink></entry>
		</row>
		<row>
			<entry>MacOS 15.5</entry>
			<entry>arm64</entry>
			<entry>clang 17.0.0</entry>
			<entry>Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink></entry>
		</row>
		<row>
			<entry>MacOS 15.5</entry>
			<entry>arm64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink></entry>
		</row>
		<row>
			<entry>MacOS 14.7.6</entry>
			<entry>x86_64</entry>
			<entry>clang 15.0.0</entry>
			<entry>Using <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink></entry>
		</row>
		<row>
			<entry>MacOS 14.7.6</entry>
			<entry>x86_64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>Using <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink></entry>
		</row>
		<row>
			<entry>MacOS 14.7.6</entry>
			<entry>arm64</entry>
			<entry>clang 15.0.0</entry>
			<entry>Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink></entry>
		</row>
		<row>
			<entry>MacOS 14.7.6</entry>
			<entry>arm64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink></entry>
		</row>
		<row>
			<entry>MacOS 13.7.6</entry>
			<entry>x86_64</entry>
			<entry>clang 15.0.0</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>
				and <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink>
			</entry>
		</row>
		<row>
			<entry>MacOS 13.7.6</entry>
			<entry>x86_64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>
				<ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink>
			</entry>
		</row>
		<row>
			<entry>Windows 2025</entry>
			<entry>x86_64</entry>
			<entry>msc 17 (Visual Studio 2022)</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>
				and <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink>
			</entry>
		</row>
		<row>
			<entry>Windows 2025</entry>
			<entry>x86_64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>
				and <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink>
			</entry>
		</row>
		<row>
			<entry>Windows 2022</entry>
			<entry>x86_64</entry>
			<entry>msc 17 (Visual Studio 2022)</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>
				and <ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink>
				
			</entry>
		</row>
		<row>
			<entry>Windows 2022</entry>
			<entry>x86_64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>
				Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink>,
				<ulink url="https://dev.azure.com/ericb0733/gobo/_build?definitionId=1">Azure DevOps</ulink>
				and <ulink url="https://gitlab.com/ebezault/gobo/-/pipelines">GitLab Pipelines</ulink>
			</entry>
		</row>
		<row>
			<entry>Windows 11</entry>
			<entry>x86_64</entry>
			<entry>msc 17 (Visual Studio 2022)</entry>
			<entry>On personal computer</entry>
		</row>
		<row>
			<entry>Windows 11</entry>
			<entry>x86_64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>On personal computer</entry>
		</row>
		<row>
			<entry>Windows 11</entry>
			<entry>arm64</entry>
			<entry>msc 17 (Visual Studio 2022)</entry>
			<entry>Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink></entry>
		</row>
		<row>
			<entry>Windows 11</entry>
			<entry>arm64</entry>
			<entry>zig toolchain 0.15.1 (clang 20.1.2)</entry>
			<entry>Using <ulink url="https://github.com/gobo-eiffel/gobo/actions?query=branch%3Amaster+">GitHub Actions</ulink></entry>
		</row>
	</tbody>
	</tgroup>
</table>
</section>

<section><title>Testing gec on a new platform</title>
<para>
This section explains what to do in order to test <projectname>gec</projectname>
on a new platform or with a new C compiler using the code from the Git repository.
</para>
<para>
First you need to check-out the code from the
<ulink url="https://github.com/gobo-eiffel/gobo">Gobo Git
repository</ulink>. Then you should set the environment variable <filename>$GOBO</filename>
to the directory where you checked out the code, and add
<filename class="directory">$GOBO/bin</filename> to your $PATH.
All this is explained in <filename>$GOBO/bin/Readme.md</filename>.
If you are using a C compiler other than Microsoft Visual C
<projectname>cl</projectname> on Windows or GNU <projectname>gcc</projectname>
on other operating systems such as Linux, you should provide a configuration
file for your C compiler as explained in the section <link linkend="usage">"Back-end
C compiler"</link>.
</para>
<para>
Then, depending on your platform and your C compiler, you should run either one of these
commands:
<blockquote>
<programlisting>
<filename>%GOB%\bin\install.bat &lt;c_compiler&gt;</filename>
<filename>$GOBO/bin/install.sh &lt;c_compiler&gt;</filename>
</programlisting>
</blockquote>
If this completes successfully (no "BUILD FAILED!" message), you can then run
the following test:
<blockquote>
<programlisting>
<filename>cd $GOBO</filename>
<filename>geant test_ge</filename>
</programlisting>
</blockquote>
</para>
<para>
Please don't forget to send feedbacks to the Gobo 
<ulink url="http://lists.sourceforge.net/lists/listinfo/gobo-eiffel-develop">development
team</ulink> about your experiments, and whether we should add new entries to the list
of platforms and C compilers above or add new config files to
<filename class="directory">$GOBO/tool/gec/backend/c/config/</filename>.
</para>
</section>

</chapter>
