Menu

Building Minsky

High Performance Coder

Platforms

Minsky can be built on any of the following platforms:

Windows: Cygwin
Windows: Mingw
Linux: MXE (for running on Windows)
MacOSX
Linux

Presumably, (with effort), it could be built on any posix compliant platform.

Dependencies

  • gcc/g++ (ver 4.7 or later)
  • gmake
  • boost 1.47.0 or later
  • json_spirit
  • TCL/Tk 8.4 or 8.5
  • Tktable 2.11
  • cairo 1.10.2
  • pango 1.30.1
  • GSL (GNU Scientific Library) 1.15
  • MegaBitz (prior to Minsky.1.D34)
  • librsvg (Minsky.1.D34 or later; Minsky.1.9 beta series)
  • Most recent ecolab.5 release (currently D17) or recent ecolab.5.6 beta version,
    if building a beta (1.9 series) Minsky.

The server component and wt client component are experiment implementations for supporting a web-based Minsky client. They are not needed for building and using the standard desktop application.

For building server (experimental)

  • websocketpp 2.x (get from Github)
  • soci

For bulding wt client (experimental)

  • GraphicsMagick
  • GraphicsMagick++
  • libjpeg
  • liblcms
  • libxml2
  • libtiff
  • wt-3.0.0 - to configure, do "cmake -i", and make sure your select the correct location
    for boost, and enable the Ext package

Notes

  • On Linux, MinGW and Cygwin, you can use the packaged pango (after possibly having to install development version sof the packages). On Mac, installation from sources seems to be necessary, which involves the whole palaver of GLib, libffi and gettext.

  • Standard MinGW32 appears to be too old to build modern glib releases. The advice is to use the MinGW64 package instead, or even to build you Windows executable on a Linux box using the MXE cross compilation environment.

  • Building Boost on Mingw is a bit fragile. The recipe involves

  • installing Microsoft SDK, which has MASM contained within it. I did this by installing Visual Studio Express, but there may be lighter weight packages from Microsoft for doing this.

    • From the MingW shell, add the path to ml installed in previous step
    • cd to boost top level
    • start cmd.exe
    • bootstrap.bat mingw
    • exit cmd.exe back to mingw bash
    • bjam toolset=gcc
    • cp -r boost /usr/local/include
    • cp stage/lib/*.a /usr/local/lib
  • For building json_spirit and soci, you need cmake. On MinGW, you can use the normal Windows binary for CMake. Just type (cmake -G "Unix Makefiles" .) - if you don't specify the generator, it will default to Visual Studio.

  • Because of the antique version of Berkley DB installed by default on MacOS, you will probably need to install a modern 4.x version in order to get ecolab to build on MacOSX.

  • These packages can be installed to /usr/local or $(HOME)/usr according to preference.

  • Once the dependencies have been installed, cd to the Minsky source directory, and type "make", which builds the executable "minsky" at that location.

  • Tktable 2.11 is available through the SourceForge CVS website, however, there are some important bugfixes that are currently only available from the version in the Minsky file releases area. Hopefully, this fixes will be picked up by the Tktable respository.

  • TkTable doesn't really have a standard install location. I would recommend copying the dynamic library into /usr/local/lib or ~/usr/lib, in which case Minsky will will find it. Otherwise, you will need to edit Minsky's Makefile.

  • The macosx build of Tcl/Tk, including the prebuilt ActiveTCL distribution is threaded. This causes thread safety problems with Tk. See ticket 13. Unfortunately, turning off threading is not possible in the macosx build, so the unix Tcl/Tk build should be used instead. For development purposes, use the standard X11 build of Tk. Tk for Aqua can be built in the unix folder by specifying --with-aqua on the configure line, but this can only be used for 32 bit builds (not 64). This is how the Minsky Mac binary distritbuion is built.


Discussion

  • High Performance Coder

    copied from Home/Building Minsky

     
  • Rokas Klydžia

    Rokas Klydžia - 2018-01-27

    Has anyone actually implemented a web based Minsky client? Are there any examples available?

     

Log in to post a comment.

Auth0 Logo