<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Esteban,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Unfortunately I don’t build that way more about the particulars of what I work on (I have to build for many versions of PostGIS and PostgreSQL) than anything wrong with your below instructions.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>So I wouldn’t be able to easily validate.  At a glance they look fine.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>This much I can say.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I do build PostgreSQL using mingw/msys2 tool chain (I don’t use the  PostgreSQL VC++ standard builds for building – mostly because of the hassle of making it work the way it does on Linux – and I need autotools for building PostGIS).<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I do however test against both mingw install and the PostgreSQL VC++ standard builds (using EDB zip binaries - <a href="https://www.enterprisedb.com/download-postgresql-binaries">https://www.enterprisedb.com/download-postgresql-binaries</a> ).<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>For testing pgRouting/PostGIS against PostgreSQL VC++ I just start up that instance copy the mingw compiled binaries and extension files to the VC build and run the tests.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>In your case since you are building with CMake – you could possibly work with either mode.  pgRouting for example builds fine for windows both against my mingw setup and standard VC++ setup -  <a href="https://github.com/pgRouting/pgrouting/blob/main/.github/workflows/windows.yml">https://github.com/pgRouting/pgrouting/blob/main/.github/workflows/windows.yml</a> (uses standard VC++ setup)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I also use Msys cmake for building.  This might not be necessary anymore but when I started up building with CMake I had horrible experience with things just not working with the Cmake packaged with msys-mingw, so I always downloaded the windows cmake binaries from <a href="https://cmake.org/download/">https://cmake.org/download/</a>  (the 32-bit cause I had to build for both 64-bit and 32-bit)  and then using:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>cmake -G "MSYS Makefiles"<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>That also allowed me to easily test the (latest or particular version of) cmake system without disrupting my msys/mingw setup.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Mobilitydb-dev [mailto:mobilitydb-dev-bounces@lists.osgeo.org] <b>On Behalf Of </b>Esteban Zimanyi<br><b>Sent:</b> Wednesday, September 8, 2021 11:24 AM<br><b>To:</b> mobilitydb-dev@lists.osgeo.org<br><b>Subject:</b> [Mobilitydb-dev] Instructions for building MobilityDB on Windows with msys2<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Dear Regina & Vicky<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>We have tested the instructions below for building MobilityDB on Windows with msys2 and they work on arbitrary machines. <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>However, while I have already PostgreSQL and PostGIS installed on my Windows computer, the instructions below reinstall PostgreSQL and PostGIS on msys2 and build with those versions instead of the already installed ones. <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Can you tell us whether this is the right way to do the build or how we can improve it ?<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Many thanks for your help<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>--------------------------------------------------------------------------<o:p></o:p></p></div><div><div><p class=MsoNormal>Download the msys2 installer from <a href="https://www.msys2.org/" target="_blank">https://www.msys2.org/</a> and follow the instructions. In the following we assume that you install msys2 on drive D:<br><br>On the MSYS2 MSYS shell run the following commands to install the required dependencies<br><br>pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-postgresql mingw-w64-x86_64-postgis<br>pacman -S mingw-w64-x86_64-gsl mingw-w64-i686-xz git<br><br>Run "MSYS MinGW 64-bit" from Start menu and run the following commands<br><br>git clone <a href="https://github.com/estebanzimanyi/MobilityDB.git" target="_blank">https://github.com/estebanzimanyi/MobilityDB.git</a><br>cd MobilityDB<br>mkdir build<br>cd build<br>git checkout msys2-build<br>cmake -DCMAKE_BUILD_TYPE=Release -G"MinGW Makefiles" ..<br>cmake --build .<br>cmake --install .<br><br>You need to define where the databases will reside on your hard disk. In the following we assume the location D:/msys64/usr/local/pgsql/data. Run the following commands<br><br>export PGDATA="D:/msys64/usr/local/pgsql/data"<br>rm -rf $PGDATA # DANGER ! This remove all existing databases in that directory<br>initdb<br><br>To start the database you need to define the port used by PostgreSQL to listen for connections from client applications. This is typically 5432 unless you have other PostgreSQL versions installed. On msys2 you can use the following command to see the ports already in use<br><br>netstat -a -o | grep LISTENING<br><br>In the following we assume that we use the port 5433. Then issue the following command<br><br>export PGPORT=5433<br>pg_ctl start<br>createdb mydb<br>psql mydb<br><br>Now on psql issue the following commands<br><br>CREATE EXTENSION mobilitydb CASCADE;<br>SELECT mobilitydb_version();<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>You should see something like the following <br><br>                 mobilitydb_full_version<br>---------------------------------------------------------<br> MobilityDB 1.0.0 Beta 3, PostgreSQL 13.3, PostGIS 2.5.5<br>(1 row)<o:p></o:p></p></div><div><p class=MsoNormal><br>You are now ready to use MobilityDB !<o:p></o:p></p><div><div><div><div><p class=MsoNormal>--------------------------------------------------------------------------<o:p></o:p></p></div></div></div></div></div></div><div><p class=MsoNormal><o:p> </o:p></p></div></div></div></div></body></html>