Menu

Compiling Octave using Dev-CPP

mark allyn
2010-03-16
2012-09-26
  • mark allyn

    mark allyn - 2010-03-16

    Hello everyone,

    I would like to use Dev-CPP to compile and install a copy of Octave. I am
    uncertain how to proceed. Octave source code is located at c:\Octave on my c
    drive. If someone would kindly post a step-by-step "tutorial" on this process
    I would be most grateful.

    Thanks,
    Mark Allyn

     
  • S. Thomas Bradley

    Hi Everyone:

    I doubt that you could compile Octave using Dev-CPP. There are a number of
    reasons why.

    1) When you build something like Octave from it's source code the authors
    supply scripts that do most of the work for you. These are always done through
    the use a Unix shell in which you issues commands to the compiler and you
    can't do this using the Windows Command Prompt. For the Windows environment
    there are two common ways this can be done. The first is to install Cygwin
    which gives you a full blown Unix environment on your Windows computer. The
    second way is to use MSYS. MSYS uses the gcc compiler that you already have
    installed in Dev-CPP. Trying to convert all of this to compile on Dev-CPP
    would be "difficult" to put it mildly.

    2) In the Octave folder, along with the source code files you will find two
    documents called 'INSTALL' and 'INSTALL.OCTAVE'. These explain how to compile
    Octave from the source code. They explain that not only do you need the gcc
    compiler but you need a fairly recent version. The version in Dev-CPP is very
    old and is not capable of compiling Octave. In addition you need to have the
    GNU FORTRAN 77 compiler installed too. And depending on what you want to do
    you may also need a copy of GNU flex and bison installed.

    3) If, after looking at this documents, it doesn't make any sense to you then
    you would be better off trying to find a precompiled version on the internet.

    See Ya
    Butch

     
  • cpns

    cpns - 2010-03-16

    This is probably not a question for the Dev-C++ forum. Dev-C++ is appropriate
    for building projects originally developed under Dev-C++; for projects built
    using other tools, thise tools would be the most appropriate.

    I wonder why you would not just use the existing Windows binary distribution
    of Octave. If you really need to build form source, your question is best
    asked of the project itself. The Windows distribution of Octave is maintained
    at http://octave.sourceforge.net/ and is
    built using MinGW/GCC; Dev-C++ also use MinGW but may not be the latest
    version, and it only includes the core compiler toolchain, and probably does
    not include all the utilities and packages you may need. Most likely Octave is
    built using a traditional Linux configure/make/install process for which
    you'll need a shell capable of executing these scripts, the complete MinGW
    package includes a shell called MSYS that can do this. Get the latest MinGW
    packages from http://www.mingw.org

    Other similar (Matlab-like) applications that may be of interest are
    http://www.scilab.org/ and
    http://freemat.sourceforge.net/. FreeMat is
    open source and includes instructions for building for Windows using VC++ 2008
    Express Edition and CMake (both free), and frankly better than Dev-C++ or
    MinGW. SciLab is open source too, but I have found fewer details on how that
    is built without downloading the source. Both FreeMat and SciLab are visually
    more compelling that Octave; in the end it is probably down to which app has
    the add-on tools and libraries you need.

    Clifford

     
  • mark allyn

    mark allyn - 2010-03-16

    Hiya Butch,

    It does make sense. I had already pretty much concluded that the only way "in"
    was via unix/unix-like shell such as Cygwin/Xterm or MSYS. There was, however,
    some place on the DEV-CPP support files a comment to the effect that it could
    be done, but was difficult. So, I made the posting. Thanks for the
    confirmation, however. You didn't waste your time.

    It's interesting to note though that GSL has been "packaged" for DEV-CPP but
    Octave hasn't. As you know, there are many similarities between the two and
    one might have thought that if the former had been "packaged", so might the
    latter.

    Thanks,

    Mark

     
  • mark allyn

    mark allyn - 2010-03-16

    Hello Clifford,

    Didn't see your response earlier when I replied to Butch. As you know, it is
    often difficult to determine whom to contact when seeking advice on these
    matters. Yes, you can certainly build Octave source from MSYS (or Cygwin).
    But, I had hoped (without a lot of hope) that I would be able to compile
    OCTAVE using Dev-CPP as a matter of convenience. When I looked at the Dev IDE
    it was pretty clearly gonna be extremely unlikely, but as I mentioned to
    Butch, there was a statement made somewhere in the Dev-CPP world that it was
    possible, albeit with difficulty. So, I made the post...

    But, thanks for confirming the matter. I can move on.

    Regards,
    Mark

     
  • cpns

    cpns - 2010-03-17

    Packages are provided by voluntary contributors, so what is available is
    dependent on who contributes; fee free to contribute your package!

    Also GSL is a library, whereas Octave is primarily an application. Dev-C++
    packages for libraries are available for obvious reasons.

    Once you have built Octave using MSYS, you can use the resulting object files
    and libraries with Dev-C++. Also can also probably use the generated makefile
    with Dev-C++ as a custom makefile (although any utilities/dependencies
    referenced by the makefile also need to be available). If you want to use a
    Dev-C++ managed project, the amount of effort will depend on the complexity of
    the build. I doubt that it is worth the effort.

     
  • mark allyn

    mark allyn - 2010-03-18

    Hi Clifford,

    Thanks for the explanation on Octave/GSL. It was actually very, very helpful.
    I had been frustrated by an inability to use the GSL libraries downloaded from
    Cygwin when compiling a DEV-CPP app that tried to use them. After a lengthy
    dialogue with the MSYS folks I learned how to use MSYS to compile the GSL. As
    a matter of fact, MinGW can't run the Cygwin downloads either. It runs, but it
    hangs and won't come back to the prompt. After compiling GSL with MSYS I have
    actually been using the GSL library for a week or so running it successfully
    off the MSYS shell. Works fine.

    Your info that I can use GSL libraries in a Dev-CPP app if they have been
    compiled by MSYS was a pleasure to hear. As you can imagine, I will try to
    write a little Dev app that calls the GSL tomorrow morning. Let's test it!! I
    know there is little or nothing to be gained by running an app compiled by
    Dev-CPP as opposed to MinGW, but I find this sort of thing interesting. My
    wife doesn't.

    Mark

     
  • mark allyn

    mark allyn - 2010-03-18

    Hi again Clifford,

    Just reread your note and my response re GSL/Dev-CPP. I note now that you make
    no claim that GSL will behave like Octave as far as compilations from MSYS go.
    I jumped perhaps too hastily to that conclusion. Let us proceed to C whether
    or no my leap of faith is justified.

    Mark

     
  • cpns

    cpns - 2010-03-18

    I know there is little or nothing to be gained by running an app compiled by
    Dev-CPP as opposed to MinGW

    Be aware that if you build the code in Dev-C++ it is compiled by MinGW.
    Dev-C++ is merely an IDE not a compiler. That is why libraries built with
    MinGW within MSYS will work with Dev-C++ - it is the same compiler. However,
    you would do well to reconfigure Dev-C++ to use the full MinGW installed
    toolchain rather than the subset that is installed with Dev-C++; just to make
    sure that you are using the same compiler version throughout.

    MSYS is merely a shell that provides a subset of bash functionality to allow
    (some) builds set up for Linux to work on Windows. Whether it works will
    depend on the complexity of the build and whether all the dependencies and
    utilities used are available under MinGW. In the past I have found additional
    utility ports from GNUWin32 and
    UnxUtils to be useful for tools that MinGW
    omits.

    Cygwin built libraries will not generally work with MinGW because Cygwin works
    by emulating a Linux environment to allow the use of the GNU libc library.
    MinGW avoids this by using Microsoft's C runtime library from VC++ 6 and
    installed as part of Windows. This means that code that uses Linux/Posix
    specific calls may not build with MinGW. Particularly the Linux process model
    that allows things such as fork() is not supported.

    I would not recommend using Cygwin unless absolutely necessary; deploying
    Cygwin applications without the Cygwin environment is problematic and likely
    to cause other Cygwin dependent apps on the same PC to stop working in hard to
    fix ways. MinGW apps will run stand-alone as native Windows apps.

     
  • mark allyn

    mark allyn - 2010-03-20

    Hi again, Clifford.

    It took me way too long to understand what precisely DEV-CPP was and is. Now I
    know, and thanks for helping me come to appreciate what it does. And doesn't.

    As for cygwin, you are dead right about its peculiarities. I found this out
    two days ago first hand when I attempted to compile GNU Plotlutils on
    MinGW/MSYS. Wouldn't compile because MSYS runs into license violations if it
    tries to use glibc, but Cygwin doesn't have this problem. This is a strength
    of Cygwin. But, also a limitation.

    MSYS is powerful enough to get the job done. I am a newcomer (what a
    simplification!!) to the GNU build process, but MSYS has a developer tool kit
    that is extremely effective, and even a do-do like me figured out over a day's
    worth of investment how to make the autoconfig-automake cycle do its thing.
    So, kudos to the MingW crowd.

    Now, for my last comment. I tried again to use Dev-Cpp to do a simple GNU
    Scientific Library calc using MinGW/MSYS compiled GSL library. No dice!!
    Choked. Something it didn't like about libgsl. Makes me crazy. I'll have to go
    back and make sure I did the right lib code, but I think I did.

    Thanks for your patience and the clarity of your explanation.

    Mark

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.