diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 33b86c9c2a..9cf58e9bcd 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -309,7 +309,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(LEANC_SHARED_LINKER_FLAGS "${LEANC_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic-functions") endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -ftls-model=initial-exec") - set(LEANC_EXTRA_FLAGS "-fPIC") + set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -fPIC") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath=\\\$ORIGIN/../lib/lean") elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftls-model=initial-exec") @@ -438,6 +438,7 @@ else() set(LEANSHARED_LINKER_FLAGS "-Wl,--whole-archive -lInit -lStd -lLean -lleancpp -Wl,--no-whole-archive") if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") set(LEANSHARED_LINKER_FLAGS "${LEANSHARED_LINKER_FLAGS} -Wl,--out-implib,${CMAKE_BINARY_DIR}/bin/libleanshared.dll.a") + set(LEANC_EXTRA_FLAGS "${LEANC_EXTRA_FLAGS} -L$bindir") endif() endif() diff --git a/src/stdlib.make.in b/src/stdlib.make.in index e5776c395b..2904ab8356 100644 --- a/src/stdlib.make.in +++ b/src/stdlib.make.in @@ -37,7 +37,7 @@ Lean: Init Std leanshared: Init Std Lean @mkdir -p "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" || true # can't use leanc here since it would try to link against leanshared - ${CMAKE_CXX_COMPILER_LAUNCHER} ${CMAKE_CXX_COMPILER} -shared -o "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libleanshared${CMAKE_SHARED_LIBRARY_SUFFIX}" ${LEANSHARED_LINKER_FLAGS} ${LEANC_GMP} -L${LIB}/lean + ${CMAKE_CXX_COMPILER_LAUNCHER} ${CMAKE_CXX_COMPILER} -shared -o "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libleanshared${CMAKE_SHARED_LIBRARY_SUFFIX}" ${LEANSHARED_LINKER_FLAGS} ${GMP_LIBRARIES} ${LEANC_EXTRA_FLAGS} -L${LIB}/lean Leanpkg: Init Std Lean leanshared +"${LEAN_BIN}/leanmake" bin PKG=Leanpkg BIN_NAME=leanpkg${CMAKE_EXECUTABLE_SUFFIX} $(LEANMAKE_OPTS) LINK_OPTS='-lleanshared ${CMAKE_EXE_LINKER_FLAGS_MAKE}'