diff options
author | Loïc Hoguin <[email protected]> | 2019-07-18 09:59:28 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2019-07-18 10:08:46 +0200 |
commit | 136d443b5c38bee96f5d995dfea3629ef07564c3 (patch) | |
tree | 1d31540baebc43ca0b2dceeda212c44f5da7e7a8 /docs/en/erlang.mk/1/guide/cross_compiling.asciidoc | |
parent | e031713c0e8bd871248dbbbbdec1ea28609f4431 (diff) | |
download | ninenines.eu-136d443b5c38bee96f5d995dfea3629ef07564c3.tar.gz ninenines.eu-136d443b5c38bee96f5d995dfea3629ef07564c3.tar.bz2 ninenines.eu-136d443b5c38bee96f5d995dfea3629ef07564c3.zip |
Announce Ranch 2.0.0-rc.1
Adds Ranch 2.0 documentation and removes documentation for
very old Cowboy and Ranch, along with Erlang.mk documentation
which is available on its own website.
Diffstat (limited to 'docs/en/erlang.mk/1/guide/cross_compiling.asciidoc')
-rw-r--r-- | docs/en/erlang.mk/1/guide/cross_compiling.asciidoc | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/docs/en/erlang.mk/1/guide/cross_compiling.asciidoc b/docs/en/erlang.mk/1/guide/cross_compiling.asciidoc deleted file mode 100644 index 23e14b95..00000000 --- a/docs/en/erlang.mk/1/guide/cross_compiling.asciidoc +++ /dev/null @@ -1,94 +0,0 @@ -[[cross_compiling]] -== Cross compiling - -Erlang.mk supports cross-compiling. While the compiled -Erlang code is portable as-is, the C code is not and -releases need to use the correct runtime system for the -target environment. - -There are therefore two steps that might require some -intervention: compiling and building the release. If -you do not have any C code you can just compile as you -would normally, however. - -=== Compiling - -To cross-compile the C code you need a cross compiler. If you -were to target Windows from an Arch Linux machine you would -install the https://aur.archlinux.org/packages/mingw-w64-gcc/[mingw-w64-gcc] -package. You would then need to define the `CC` environment -variable to point to this compiler instead of the default: - -[source,bash] -CC=/usr/bin/x86_64-w64-mingw32-gcc - -Additionally, on Windows the shared libraries use a different -extension than on Linux, so it needs to be specified as well: - -[source,bash] -C_SRC_OUTPUT_SHARED_EXTENSION=.dll - -These values can be added to the Makefile or given from the -command line, for example: - -[source,bash] ----- -$ CC=/usr/bin/x86_64-w64-mingw32-gcc C_SRC_OUTPUT_SHARED_EXTENSION=.dll make - DEPEND my_nif.d - ERLC my_nif.erl - APP my_nif - C my_nif.c - LD my_nif.dll -$ file priv/my_nif.dll -priv/my_nif.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows ----- - -You could also add this configuration to your Makefile hidden -behind a flag: - -[source,make] ----- -ifdef WINDOWS_BUILD -CC = /usr/bin/x86_64-w64-mingw32-gcc -C_SRC_OUTPUT_SHARED_EXTENSION = .dll -endif ----- - -And then just compile like this: - -[source,bash] -$ make WINDOWS_BUILD=1 - -=== Building the release - -For the release there are two options. You can either include -the correct runtime system directly in the release; or you -can not include the runtime system in the release and instead -let it use the one installed in the target environment. - -To include the target runtime system, add the `include_erts` -tuple to your 'relx.config' file: - -[source,erlang] -{include_erts, "/path/to/alternate/erlang"}. - -If you were to target Windows for example, you could copy -the Erlang installation from the 'Program Files' directory -and then configure 'relx.config' like this: - -[source,erlang] -{include_erts, "/path/to/erl10.1"}. - -You need to make sure that the runtime system version you -will use is capable of running the compiled Erlang code -you used to build your project, otherwise it will fail -to run. - -If you choose to not include the runtime system at all, -configure 'relx.config' as follow: - -[source,erlang] -{include_erts, false}. - -In that case the runtime system needs to be available -in the `$PATH` of the target environment. |