Does the make need to be invoked inside the cygwin shell in order to run, or can you do the build by invoking the cygwin make utility outside the shell?  I believe Mark and I both like to use the SlickEdit build facility to run the build inside of SlickEdit to take advantage of the "Next Compile Error" feature of the tooling.  The cygwin shell can be invoked in the SlickEdit build window, but it doesn't handle the special characters used for color switching very well.  If the cygin shell is required, is there a mode where you can invoke the cygwin batch file to run a single command?


On Jan 30, 2008 9:41 AM, David Ashley <dashley@us.ibm.com> wrote:

All -

I think I had better provide a few more details of just what I expect the Cygwin environment to look like.

Earlier this week I tried an experiment. First I installed Cygwin with ONLY the following options:

- autoconf
- automake
- libtool

Note that gcc was NOT installed.

I also added the contents of the Visual Studio setvars.bat file to the top of the cygwin.bat file so that Cygwin would have complete access to the Visual Studio environment.

I then created a small Hello World program and set up an autoconf.ac and Makefile.am files for it. What I wanted to find out was whether or not the autotools could discover the VC++7 compiler whithout any special directives in the Makefile.am or the autoconf.ac files. And to my amazement they could be found and used! I successfully compiled my Hello World program and it ran without the cygwin.dll file!

After looking closer I discovered the although libtool was was install (and invoked by the bootstrap script) all of the libtool statements in the generated Makefile were commented out and replaced with calls to cl.exe which in turn invoked the Microsoft linker. So libtool is required only because it is invoked by the bootstrap script and is not used after that.

What all this means is that it is possible to have a single build mechanism that operates the same on all platforms and uses the native compiler and linker to that platform.

Of course, the configure.ac will need a few changes and the Makefiles.am file will need a LOT of changes to make all this work. But I can handle that. What I currently doing is making the Makefile.am file detect the difference between different platforms (Unix vs Windows). The last two commits I made go a long way towards accomplishing that goal. I am not there yet as I have not added any Windows specific stuff to those files. I am getting the unix stuff completely set up prior to tackling the Windows stuff.

And just to be contrary (that is my nature :-) ) I believe that if you are going to use the GNUtils you might as well use Cygwin. Either way you have to download a bunch of stuff and the GNUtils have the disadvantage of running as native Windows applications without all the support mechanisms offered by a default Cygwin environment. And once you get the Cygwin setup on one Windows box it is easily zipped up and transported to another machine since it requires no registry entries or environment variables.

There is one other point I want to make as well. Over the last few years I have seen some open source applications that appeared to use just this mechanism to build their Windows applications. I always wondered how they accomplished that and I believe now I understand how they did it. So this build mechanism for Windows must be used by a lot of other open source projects. We would not be the only one using this mechanism.

W. David Ashley
IBM Systems and Technology Group Lab Services
Open Object Rexx Team
Mobile Phone: 512-289-7506

This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
Oorexx-devel mailing list