[Developers] ADMB, GCC, and the Windows build process
Arni Magnusson
arnima at hafro.is
Mon Apr 22 17:07:04 PDT 2013
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
>
More information about the Developers
mailing list