The MESA SDK is a collection of compilers and run-time libraries that make it easy to install and use the MESA stellar evolution code.
Download Xcode for macOS 10.15.4 or later and enjoy it on your Mac. Xcode includes everything developers need to create great applications for Mac, iPhone, iPad, Apple TV, and Apple Watch. Xcode provides developers a unified workflow for user interface design, coding, testing, and debugging. Download Barcode Studio - Barcode Maker Software for macOS / OS X: Create, print and export barcode images (supports linear, 2D and GS1 codes) within seconds! Official.NET Core downloads for Linux, macOS, and Windows.NET Core is a cross-platform version of.NET, for building apps that run on Linux, macOS, and Windows. If I download 10.12 sdk into a MacOSX10.12.sdk folder in path do i need to change anything about the existing folders for an xcode project expecting access to 10.12 sdk to find it? – myusrn Jun 30 at 20:24.
|
Overview
Experience has demonstrated that incompatibilities and bugs in compilers and libraries are significant obstacles in getting MESA up and running with minimal fuss. For instance, MESA makes use of various features in the new(ish) Fortran 2003 standard, which aren't implemented (or are still buggy) in all but the most recent compiler releases.
To help overcome these obstacles, I've put together a unified software development kit (SDK) which contains compilers and libraries known to compile MESA correctly. The SDK contains the following components:
- The GNU Comipler Collection (gcc), with support for C, C++, and Fortran
- The GNU Project Debugger (gdb)
- The Valgrind code instrumentation framework
- The Basic Linear Algebra Subprogram (BLAS) library
- The Linear Algebra PACKage (LAPACK) library
- The Hierarchical Data Format v5 (HDF5) library
- The PGPLOT graphics library
- The SE library from the NuGrid project
- The ffmpeg movie encoder
- The ndiff fuzzy comparison tool
- Various helper scripts for use in linking against these libraries and other tasks
Currently, both Linux and Mac OS X running on Intel/AMD processors are supported. Although the SDK was initially bundled as part of the standard MESA distribution (from release 3708 onwards), it makes more sense to keep it separate. This page hosts all the necessary information and links to download, install and use the SDK.
Linux (Intel)
Compatibility
The SDK should work on any relatively-recent Linux distribution running on 64-bit Intel-compatible processors (32-bit processors are no longer supported; in any case, MESA itself doesn't work on 32-bit). The GNU C library (also known as GLIBC) included in the distribution must be version 2.5 or more recent; to determine what GLIBC your system uses, run the command /lib/libc.so.6 (or, possibly, /lib64/libc.so.6) and examine the first line of the output for the version number.
Prerequisites
The following components must be installed for the SDK to work on Linux-based systems:
- The 'Binutils' development tools
- The 'Make' dependency/compilation tool
- The 'Perl' scripting language
- The 'X11' windowing library plus development headers
- The 'Z' compression library plus development headers
- The 'C' shell or derivatives
Not all of these components are installed by default on some Linux distributions, and you may have to use the appropriate package management tool (e.g., apt-get, yum, rpm, emerge) to install them. The following table lists the package names of the components (and any other pieces that are required) for some of the more-common distributions:
![Freeware os x software Freeware os x software](/uploads/1/2/4/3/124389976/394548347.jpg)
Package | Fedora / CentOS | Ubuntu | Mint | Gentoo | Arch |
---|---|---|---|---|---|
Binutils | binutils | binutils | binutils | sys-devel/binutils | binutils |
Make | make | make | make | sys-devel/make | make |
Perl | perl | perl | perl | dev-lang/perl | perl |
X11 library | libX11, libX11-devel | libx11-6, libx11-dev | libx11-dev | x11-libs/libX11 | libx11 |
Z library | zlib, zlib-devel | zlib1g, zlib1g-dev | zlib-dev | sys-libs/zlib | zlib |
C shell | tcsh | tcsh | tcsh | sys-shells/tcsh | tcsh |
Other | libc6-dev | glibc |
If your distribution is not listed here, please contact me and I'll add it to the table.
Download
To download the SDK for Linux, click on the appropriate link in the table:
Release Date MESA Version at Release | File | Notes |
---|---|---|
March 25 2020 (current) 12778 | mesasdk-x86_64-linux-20.3.2.tar.gz | Added ODEPACK library |
March 1 2020 12778 | mesasdk-x86_64-linux-20.3.1.tar.gz | Added math slots functionality |
August 30 2019 12115 | mesasdk-x86_64-linux-20190830.tar.gz | Upgraded gcc to 9.2.0, ffmpeg to 4.2; added crlibm |
May 3 2019 11701 | mesasdk-x86_64-linux-20190503.tar.gz | Patched makedepf90 to support external dependencies; fixed ffmpeg and ncurses (again) |
Note that versions of the SDK older than the current one are not formally supported but are provided here as a courtesy; if you run into problems using an older version, you should first try upgrading to the current version.
Installation
On Linux the SDK can be installed anywhere (this is different from previous releases, where it had to be put in the /opt directory). However, for simplicity the following instructions will assume you're installing in your home directory. The steps are as follows:
- Download the package from the table above
- Extract it using the command tar xvfz package_name -C ~/ (note that's a tilde in front of the slash!)
- Set the path to the SDK:
- For the C shell: setenv MESASDK_ROOT ~/mesasdk
- For the Bourne shell: export MESASDK_ROOT=~/mesasdk
- Initialize the SDK (also checks compatibility):
- For the C shell: source $MESASDK_ROOT/bin/mesasdk_init.csh
- For the Bourne shell: source $MESASDK_ROOT/bin/mesasdk_init.sh
- Check that the SDK is properly installed by running gfortran --version. The first line of the output should look something like this:
GNU Fortran (GCC) 9.2.0
If it doesn't, then you should consult the Troubleshooting section below.
Steps 3 and 4 need to be repeated each time you begin a new shell session; alternatively, they can be added to the appropriate shell start-up file (~/.cshrc for the C shell, and ~/.profile for the Bourne shell).
Usage
Nothing special needs to be done in order to use the SDK to build MESA. Simply change into the top-level mesa directory (the one created when you download and unpack MESA) and then run ./install.
Mac OS X (Intel)
Compatibility
The SDK should work on any relatively-recent OS X distribution (10.10, Yosemite or later) running on Apple computers with 64-bit Intel-compatible processors (32-bit processors are no longer supported; in any case, MESA itself doesn't work on 32-bit).
Prerequisites
The following components must already be installed before the SDK can be installed on OS X systems:
- The Xcode command-line tools
- The XQuartz X-windows infrastructure
The Xcode command-line tools can be installed by running xcode-select --install from a Terminal prompt. (Note that a full installation of the Xcode development environment is not necessary). Likewise, XQuartz can downloaded and installed from here. Note that it is often necessary to reinstall the command-line tools and/or XQuartz after upgrading to a new release of OS X.
Download
To download the SDK for OS X, click on the appropriate link in the table:
Release Date MESA Version at Release | File | Notes |
---|---|---|
September 28 2020 (current) 12778 | mesasdk-x86_64-macos-20.9.1.pkg | Fixed 'library not found for -lSystem' issue, arising on fresh Xcode 12 deployments |
April 7 2020 12778 | mesasdk-x86_64-macos-20.4.1.pkg | Added md5sum and other checksum utilities from coreutils |
March 25 2020 12778 | mesasdk-x86_64-macos-20.3.2.pkg | Added ODEPACK library |
March 1 2020 12778 | mesasdk-x86_64-macos-20.3.1.pkg | Added math slots functionality |
November 5 2019 12115 | mesasdk-x86_64-macos-19.11.2.pkg | Fixed version reported by mesasdk_version script |
November 1 2019 12115 | mesasdk-x86_64-macos-19.11.1.pkg | Switched to new .pkg installer system; added signing/notarization to work with Catalina |
Note that versions of the SDK older than the current one are not formally supported but are provided here as a courtesy; if you run into problems using an older version, you should first try upgrading to the current version.
Installation
On OS X the SDK is installed into the Applications folder; you will likely need Administrator privileges to do this.
- Download the installer from the table above
- Open it by double clicking on it in the Finder
- Follow the on-screen prompts until the installation completes
- Set the path to the SDK:
- For the C shell: setenv MESASDK_ROOT /Applications/mesasdk
- For the Bourne shell: export MESASDK_ROOT=/Applications/mesasdk
- Initialize the SDK (also checks compatibility):
- For the C shell: source $MESASDK_ROOT/bin/mesasdk_init.csh
- For the Bourne shell: source $MESASDK_ROOT/bin/mesasdk_init.sh
- Check that the SDK is properly installed by running gfortran --version. The first line of the output should look something like this:
GNU Fortran (GCC) 9.2.0
If it doesn't, then you should consult the Troubleshooting section below.
Steps 4 and 5 need to be repeated each time you begin a new shell session; alternatively, they can be added to the appropriate shell start-up file (~/.cshrc for the C shell, and ~/.bash_profile for the Bourne shell).
Usage
See the usage instructions above for Linux (they are the same for OS X).
Math Slots
It's often convenient to have different versions of the same math libraries available through a single SDK installation — for instance, one optimized for speed, one for accuracy, and so on. To this end, recent releases (>= 20.3.1) of the SDK support a feature known as 'math slots'. By setting the MESASDK_MATH_SLOT environment variable, you can chose which set of math liberaries ('slot') gets used at compile time. Possible choices are as follows:
MESASDK_MATH_SLOT choice | Description |
---|---|
default | Default (no special optimizations or modifications) |
crmath | Correctly-rounded math, via the crlibm library |
If MESASDK_MATH_SLOT is not set, then the default slot is used. Note that when compiling MESA it isn't necessary to set MESASDK_MATH_SLOT yourself; the build scripts take care of it.
Making Movies
The SDK includes the ffmpeg encoder and a simple script, images_to_movie, which uses ffmpeg to create movies from PNG files produced by MESA.
To illustrate the script in action, suppose the &pgstar section of the MESA inlist file contains the following parameters:
⋮ Grid6_file_flag = .true. Grid6_file_dir = 'png' Grid6_file_prefix = 'grid6_' ⋮
This will make MESA write a sequence of PNG images into the png subdirectory, with filenames grid6_NNNNN.png (where N represents a single digit). To combine these files together into a movie, run the following command from the same directory MESA was run in:
This will produce an MPEG4 movie, with the filename movie.mp4. The type of movie produced is determined from the file extension. Other choices are possible (e.g., mpg for MPEG2), but the images_to_movie.sh script is specifically targeted at producing MPEG4 output, so it might be best to stick with the mp4 extension unless you know what you're doing.
IMPORTANT NOTE: In the example above, the quotes (' ') are necessary to prevent the shell from prematurely expanding the wildcard (*) character.Installing as Root User
If you wish to install the SDK as the root user, that's fine — but you must run the initialization script at least once as root, before you can use the SDK as an ordinary user. This is because configuration files are written into the $MESASDK_ROOT/etc directory on first initialization; and these files must be written as root if you installed as root.
Free Mac Os For Windows
Troubleshooting
If you encounter an error during the build process, please consult the FAQ first. If your problem is not resolved, then you should submit a bug report to the MESA Forum. Be sure to include the following information in your bug report:
- The version of MESA you are trying to build
- The version of the SDK you are using (use the mesasdk_version.sh command to determine this)
- Your platform (machine type, operating system, version)
Also, it would be helpful if you could post the output of the following commands:
- uname -a
- gfortran -v
- echo $MESASDK_ROOT
- echo $PATH
Frequently Asked Questions (FAQ)
Q: When trying to download the SDK using wget, I get the error
403: Forbidden
A: Our web server is set up to reject requests from wget. As a workaround, add the flag --user-agent=' to your wget invocation.
Q: How can I download the SDK from the command line?
A: Use the wget tool. For instance, to download the Linux version dated YYYYMMDD, run
wget --user-agent=' http://www.astro.wisc.edu/~townsend/resource/download/mesasdk/mesasdk-x86_64-linux-YYYYMMDD.tar.gz
(See the question above for a discussion of why the --user-agent=' flag is necessary.)
Q: The initialization script produces errors of the sort
mesasdk_init.sh: checking architecture touch: cannot touch '/opt/mesasdk/etc/check_arch.done': Permission denied
A: This is occurring because you installed the SDK as a different user (e.g., root). You must run the initialization script at least once as the installation user, before running as any other user.
Download Android Sdk For Mac Os X
Q: When compiling, I'm encountering the error
file locking disabled on this file system (use HDF5_USE_FILE_LOCKING environment variable to override)
A: To fix this, set the HDF5_USE_FILE_LOCKING environment variable to FALSE. This can be done via the command
Updated 2020-09-28 12:19:47