{"id":23689458,"url":"https://github.com/markjolah/mxe-mexiface","last_synced_at":"2025-06-10T09:03:38.656Z","repository":{"id":228623896,"uuid":"94814537","full_name":"markjolah/MXE-MexIFace","owner":"markjolah","description":"Fork of MXE for crosscompiling to Win64 using gcc4.9 audited for MexIFace and MATLAB compatability.","archived":false,"fork":false,"pushed_at":"2019-06-01T17:32:27.000Z","size":12704,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-10T09:03:30.566Z","etag":null,"topics":["cross-environment","matlab","mex","mxe"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/markjolah.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-19T19:44:28.000Z","updated_at":"2019-06-01T17:32:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"4514be5a-3ab7-40cc-9d2c-dda70377d9b3","html_url":"https://github.com/markjolah/MXE-MexIFace","commit_stats":null,"previous_names":["markjolah/mxe-mexiface"],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markjolah%2FMXE-MexIFace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markjolah%2FMXE-MexIFace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markjolah%2FMXE-MexIFace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markjolah%2FMXE-MexIFace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markjolah","download_url":"https://codeload.github.com/markjolah/MXE-MexIFace/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markjolah%2FMXE-MexIFace/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259043761,"owners_count":22797159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-environment","matlab","mex","mxe"],"created_at":"2024-12-30T00:51:59.352Z","updated_at":"2025-06-10T09:03:38.634Z","avatar_url":"https://github.com/markjolah.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MXE-MexIFace\n\nMXE-MexIFace is a fork of [MXE](https://github.com/mxe/mxe) providing a mingw-w64 based GNU environment for\ncross-compiling to Windows 64-bit targets.  This fork tracks the `mxe/master` branch, maintaining Matlab environment compatibility specifically for the [MexIFace](https://markjolah.github.io/MexIFace) package.\n\n Because of the Matlab MEX modules are dynamically loaded as shared libraries, they must be linked against an environment compatible with the closed-source Matlab and it's internal libraries.  MexIFace targets support of Matlab R2106b+ which is possible using a `gcc-4.9.4` toolchain.\n\n  * [MexIFace documentation](https://markjolah.github.io/MexIFace/) The principal package using this environment.  Provides an object-oriented cross-platform C++/Matlab MEX interface and build environment.\n  * [GCC standards support](https://gcc.gnu.org/projects/cxx-status.html)\n     * `gcc-4.9.4` gives full C++11 and partial C++14 support and can work with Matlab R2016b+ (9.1+)\n     * `gcc-6.5.0` gives full C++14 and partial C++17 support and can work with Matlab R2018a+ (9.4+)\n * Original [MXE-README.md](MXE-README.md)\n * [MXE Project](https://mxe.cc/)\n\n## Matlab MXE Environment\n\nThis environment is deigned to provide a library of open-source libraries compatible with Matlab's built-in environment when compiling Matlab MEX files for Matlab's `win64` architecture.\n  * Matlab Win64 uses the following MXE toolchain options\n    * [MXE **sjlj** exception handling](https://github.com/mxe/mxe/pull/1664)\n    * [MXE **posix** threading](https://github.com/mxe/mxe/pull/2263)\n    * [MXE **shared** libraries](https://mxe.cc/#introduction)\n\nTherefore, Matlab MEX files for `win64` arch should use `MXE` target toolchain notation:\n\n    MXE_TARGETS := x86_64-w64-mingw32.shared.posix.sjlj\n\n## Default MexIFace Package List\nThe following packages are included by default in [`settings.mk`](settings.mk), which can easily be extended as needed.\n\n * **pthreads** - Required for matlab MEX\n * [**boost**](https://www.boost.org/) - Essential C++ component.\n * [**armadillo**](http://arma.sourceforge.net/docs.html) - C++ array and linear-algebra library with BLAS/LAPACK integration\n * [**zlib**](https://www.zlib.net/) - Common dependency\n * [**googletest**](https://github.com/google/googletest) - Google's unit test framework\n\n### Blas/Lapack 64-bit support\n\nMatlab includes internal BLAS and LAPACK libraries that are compiled with 64-bit integer indexing.  These libraries are incompatible with the more common 32-bit integer indexed BLAS/LAPACK libraries such as the default MXE `src/blas.mk` and `src/lapack.mk`.  To enable combined 32-bit and 64-bit support for BLAS and LAPACK, we provide the following MXE packages which are used in-place of standard `blas` and `lapack`:\n\n * **blas_lapack_reference** - 32-bit integer BLAS/LAPACK using [NetLib reference sources](http://www.netlib.org/lapack/)\n * **blas_lapack_reference_int64** - 64-bit integer reference BLAS/LAPACK [NetLib reference sources](http://www.netlib.org/lapack/)\n\nThese packages modify the default [`pkg-config` files](https://www.freedesktop.org/wiki/Software/pkg-config/) providing the following `.pc` files at `usr/x86_64-w64-mingw32.shared.posix.sjlj/lib/pkgconfig/`:\n * `blas-reference.pc` - INT32 NetLib blas\n * `blas-reference-int64.pc` - INT64 NetLib BLAS\n * `lapack-reference.pc` - INT32 NetLib Lapack\n * `lapack-reference-int64.pc` - INT64 NetLib Lapack\n\n### Specialized libraries\n\n * [**libics**](https://svi-opensource.github.io/libics/) - Scientific imaging library\n * [**trng**](https://www.numbercrunch.de/trng/) - Parallel random number generator engines\n\n## Branches\n\n * `master` - Environment for Win64 gcc-4.9.x and later based Matlab systems.  Suitable for R2016b+ (9.1+)\n * `gcc-6.5` - Environment for Win64 gcc-6.x and later based Matlab systems.  Suitable for R2018a+ (9.4+).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkjolah%2Fmxe-mexiface","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkjolah%2Fmxe-mexiface","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkjolah%2Fmxe-mexiface/lists"}