[Developers] ADMB, GCC, and the Windows build process

dave fournier davef at otter-rsch.com
Mon Apr 22 17:17:28 PDT 2013


On 13-04-22 05:07 PM, Arni Magnusson wrote:

The mingw win32 and win64  versions of admb build nicely on Linux using 
the mingw cross compilers.
the exe's also run on Linux by transparently invoking wine.

> Here are some thoughts about ADMB and GCC for Windows in the long 
> term, not necessarily related to the ongoing release. Essentially, the 
> core team needs to decide between two options:
>
> 1. To build ADMB with MinGW from scratch, the user only needs a GCC 
> compiler, for example the c:/gnu/gcc472 that comes with ADMB-IDE. This 
> is pretty much how things are now.
>
> 2. To build ADMB with MinGW from scratch, the user needs the MSYS 
> Linux emulator, a system that provides a Bash shell and behaves like 
> Linux. This is how things were at some point.
>
> As far as I can tell, the pros and cons of Option 1 (MSYS) are the 
> following.
>
>
> Pros:
>
> We can then use the same makefile tree for Windows and Linux. This 
> should result in a makefile tree that is easier to understand and 
> maintain.
>
>
> Cons:
>
> MSYS intertwines the GCC compiler (170 MB) with lots of other stuff 
> (another 170 for a total of 340 MB), like Perl and its own package 
> manager. So it would probably not be a good idea to include the entire 
> MSYS system inside the ADMB-IDE installer, right?
>
> So if we take Option 2, users who already have c:/gnu/gcc472 (created 
> by ADMB-IDE) would need to install MSYS as well, just to build ADMB, 
> even though they already have g++ on their machine. They would now 
> have (at least) 2 installed C++ compilers, maybe 2 installed Perl 
> interpreters, etc. Some potential for confusion and software conflicts.
>
> One option would be to offer ADMB-IDE-mini, which would include Emacs 
> but not GCC, intended for users who have MSYS installed. With 64 bits 
> and zips, this would mean a lot of confusing IDE distros.
>
> Another option would be to offer only ADMB-IDE-mini. Then ADMB-IDE 
> would no longer be plug-and-play, but rather assume that GCC is 
> already installed and configured. This would be a big step backwards 
> for ADMB beginners who have little experience with compilers or 
> modifying their PATH. It's hard to enough to get an introductory 
> workshop up and running as it is.
>
>
> Conclusion:
>
> These are big pros and cons. Option 1 is nice for users (ADMB can be 
> built with a minimal g++ compiler, no need for anything else), while 
> Option 2 is nice for the core team (simpler makefiles).
>
> One possible solution would be to embrace MSYS and include it inside 
> the ADMB-IDE installer, along with Perl, the MSYS package manager, and 
> the kitchen sink. Disk space is cheap - and maybe it's safe to remove 
> everything from c:/mingw/var/cache before building the ADMB-IDE 
> installer?
>
> The current ADMB-IDE installer (admb-ide-101-win32.exe) is "only" 74 
> MB, so I'm by no means convinced that including MSYS inside it is the 
> way to go. Maybe it's best to keep the installer minimal, and just let 
> the fraction of users who want to build ADMB from scratch have both 
> c:/gnu/gcc472 and c:/mingw on their computer. Or stay with Option 1 
> and just make small improvements to the current makefiles to provide 
> Option 2 as well.
>
>
> Let's continue to explore this, after the current version release is 
> finished.
>
>
> Arni
>
>
>
> On Mon, 22 Apr 2013, Chris Grandin wrote:
>
>> Hi all,
>>
>> If you download MinGW and check off all the check boxes on the 
>> install (include MSYS and developer tools), and include 
>> c:\MinGW\bin;c:\MinGW\msys\1.0\bin in your PATH, then you can just 
>> open the MinGW shell and run the linux compile commands as written in 
>> the README file to build the source.  This is how I did it from the 
>> start and it worked great.  This method also avoids having to 
>> maintain utilities/minGW parts of the project (MinGW parts of the 
>> README could just say "Open a MinGW MSYS shell and follow linux 
>> commands").  No external utilities that we need to keep track of are 
>> required when you do it this way.
>>
>> I have reverted to revision 767, before all the changes happened 
>> because minGW will not compile the source correctly now. It will 
>> compile and run the samples but will not link to the contrib libaries 
>> properly.  Note there are no tests for contrib linking so it appears 
>> A-OK on the testing machines.
>>
>> I'd be happy to write up this method up on the webpage if we can 
>> revert to a working copy!
>>
>> Chris
>>
>>
>>
>> On Mon, 22 Apr 2013, Johnoel Ancheta wrote:
>>
>>> Hi Arni,
>>>
>>> We should press on and get this release out.  I'm going to need some 
>>> help with documentation.
>>>
>>> Johnoel
>>
> _______________________________________________
> Developers mailing list
> Developers at admb-project.org
> http://lists.admb-project.org/mailman/listinfo/developers



More information about the Developers mailing list