Packages

Add a directory to dynamic DLL search path on Windows.

Current section

Files

Jump to
Raw

Makefile.win

all: nif_dll
build: nif_dll
!IFNDEF CMAKE_BUILD_TYPE
CMAKE_BUILD_TYPE=Release
!ENDIF
!IFDEF MSBUILD_PLATFORM
CMAKE_BUILD_PARAMETER= --config "$(CMAKE_BUILD_TYPE)" -- /p:Platform=$(MSBUILD_PLATFORM)
!ELSE
CMAKE_BUILD_PARAMETER= --config "$(CMAKE_BUILD_TYPE)"
!ENDIF
!IFNDEF CMAKE_GENERATOR_TYPE
!IFNDEF MSBUILD_PLATFORM
CMAKE_GENERATOR_TYPE=NMake Makefiles
!ENDIF
!ENDIF
!IFDEF CMAKE_TOOLCHAIN_FILE
CMAKE_CONFIGURE_FLAGS=-D CMAKE_TOOLCHAIN_FILE="$(CMAKE_TOOLCHAIN_FILE)"
!ENDIF
!IFNDEF DLL_LOADER_HELPER_BEAM_USE_PRECOMPILED
DLL_LOADER_HELPER_BEAM_USE_PRECOMPILED=true
!ENDIF
nif_dll: c_src/dll_loader_helper_beam.cpp
!IF "$(DLL_LOADER_HELPER_BEAM_USE_PRECOMPILED)" != "true"
@ if not exist "priv/dll_loader_helper_beam.dll" ( \
if not exist "build" mkdir "build" && \
cd build && cmake -G "$(CMAKE_GENERATOR_TYPE)" \
-DCMAKE_BUILD_TYPE="$(CMAKE_BUILD_TYPE)" \
$(CMAKE_CONFIGURE_FLAGS) .. && \
cmake --build . $(CMAKE_BUILD_PARAMETER) && \
cmake --install . --config "$(CMAKE_BUILD_TYPE)" && cd .. \
)
!ELSE
@ erlc precompiled.erl
@ erlc checksum.erl
erl -noshell -s precompiled install_precompiled_binary_if_available -s init stop || \
(
nmake DLL_LOADER_HELPER_BEAM_USE_PRECOMPILED=false Makefile.win && \
if exist "erl_crash.dump" del /f erl_crash.dump
)
!ENDIF
.PHONY: all