@@ -201,6 +201,12 @@ endif
201201
202202# private libraries, that are installed in $(prefix)/lib/julia
203203JL_PRIVATE_LIBS-0 := libccalltest libccalllazyfoo libccalllazybar libllvmcalltest
204+ JL_PRIVATE_LIBS-1 := # libraries from USE_SYSTEM=1
205+ JL_PRIVATE_EXES := 7z
206+ ifeq ($(OS ) ,WINNT)
207+ JL_PRIVATE_EXES += 7z.dll
208+ endif
209+ JL_PRIVATE_TOOLS :=
204210ifeq ($(JULIA_BUILD_MODE ) ,release)
205211JL_PRIVATE_LIBS-0 += libjulia-internal libjulia-codegen
206212else ifeq ($(JULIA_BUILD_MODE),debug)
@@ -225,9 +231,12 @@ JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += zlib
225231else
226232JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += libz
227233endif
234+ JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += libzstd
235+ JL_PRIVATE_EXES += zstd$(EXE ) zstdmt$(EXE )
228236ifeq ($(USE_LLVM_SHLIB ) ,1)
229237JL_PRIVATE_LIBS-$(USE_SYSTEM_LLVM) += libLLVM $(LLVM_SHARED_LIB_NAME )
230238endif
239+ JL_PRIVATE_TOOLS += lld$(EXE ) dsymutil$(EXE )
231240JL_PRIVATE_LIBS-$(USE_SYSTEM_LIBUNWIND) += libunwind
232241
233242ifeq ($(USE_SYSTEM_LIBM ) ,0)
@@ -284,45 +293,41 @@ install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index
284293
285294 $(INSTALL_M) $(JULIA_EXECUTABLE_$(JULIA_BUILD_MODE)) $(DESTDIR)$(bindir)/
286295ifeq ($(OS ) ,WINNT)
287- - $(INSTALL_M) $(wildcard $(build_bindir)/*.dll) $(DESTDIR)$(bindir)/
296+ $(INSTALL_M) $(wildcard $(build_bindir)/*.dll) $(DESTDIR)$(bindir)/
288297ifeq ($(JULIA_BUILD_MODE ) ,release)
289- - $(INSTALL_M) $(build_libdir)/libjulia.dll.a $(DESTDIR)$(libdir)/
290- - $(INSTALL_M) $(build_libdir)/libjulia-internal.dll.a $(DESTDIR)$(libdir)/
298+ $(INSTALL_M) $(build_libdir)/libjulia.dll.a $(DESTDIR)$(libdir)/
299+ $(INSTALL_M) $(build_libdir)/libjulia-internal.dll.a $(DESTDIR)$(libdir)/
291300else ifeq ($(JULIA_BUILD_MODE),debug)
292- - $(INSTALL_M) $(build_libdir)/libjulia-debug.dll.a $(DESTDIR)$(libdir)/
293- - $(INSTALL_M) $(build_libdir)/libjulia-internal-debug.dll.a $(DESTDIR)$(libdir)/
301+ $(INSTALL_M) $(build_libdir)/libjulia-debug.dll.a $(DESTDIR)$(libdir)/
302+ $(INSTALL_M) $(build_libdir)/libjulia-internal-debug.dll.a $(DESTDIR)$(libdir)/
294303endif
295- -$(INSTALL_M) $(wildcard $(build_private_libdir)/*.a) $(DESTDIR)$(private_libdir)/
296- -rm -f $(DESTDIR)$(private_libdir)/sys-o.a
304+ $(INSTALL_M) $(filter-out %-bc.a %-o.a,$(wildcard $(build_private_libdir)/lib*.a)) $(DESTDIR)$(private_libdir)/
297305
298- # We have a single exception; we want 7z.dll to live in private_libexecdir,
299- # not bindir, so that 7z.exe can find it.
300- -mv $(DESTDIR)$(bindir)/7z.dll $(DESTDIR)$(private_libexecdir)/
301- -$(INSTALL_M) $(build_bindir)/libopenlibm.dll.a $(DESTDIR)$(libdir)/
302- -$(INSTALL_M) $(build_libdir)/libssp.dll.a $(DESTDIR)$(libdir)/
306+ $(INSTALL_M) $(build_bindir)/libopenlibm.dll.a $(DESTDIR)$(libdir)/
307+ $(INSTALL_M) $(build_libdir)/libssp.dll.a $(DESTDIR)$(libdir)/
303308else
304309
305310# Copy over .dSYM directories directly for Darwin
306311ifneq ($(DARWIN_FRAMEWORK ) ,1)
307312ifeq ($(OS ) ,Darwin)
308313ifeq ($(JULIA_BUILD_MODE ) ,release)
309- - cp -a $(build_libdir)/libjulia.*.dSYM $(DESTDIR)$(libdir)
310- - cp -a $(build_libdir)/libjulia-internal.*.dSYM $(DESTDIR)$(private_libdir)
311- - cp -a $(build_libdir)/libjulia-codegen.*.dSYM $(DESTDIR)$(private_libdir)
312- - cp -a $(build_private_libdir)/sys.dylib.dSYM $(DESTDIR)$(private_libdir)
314+ cp -a $(build_libdir)/libjulia.*.dSYM $(DESTDIR)$(libdir)
315+ cp -a $(build_libdir)/libjulia-internal.*.dSYM $(DESTDIR)$(private_libdir)
316+ cp -a $(build_libdir)/libjulia-codegen.*.dSYM $(DESTDIR)$(private_libdir)
317+ cp -a $(build_private_libdir)/sys.dylib.dSYM $(DESTDIR)$(private_libdir)
313318else ifeq ($(JULIA_BUILD_MODE),debug)
314- - cp -a $(build_libdir)/libjulia-debug.*.dSYM $(DESTDIR)$(libdir)
315- - cp -a $(build_libdir)/libjulia-internal-debug.*.dSYM $(DESTDIR)$(private_libdir)
316- - cp -a $(build_libdir)/libjulia-codegen-debug.*.dSYM $(DESTDIR)$(private_libdir)
317- - cp -a $(build_private_libdir)/sys-debug.dylib.dSYM $(DESTDIR)$(private_libdir)
319+ cp -a $(build_libdir)/libjulia-debug.*.dSYM $(DESTDIR)$(libdir)
320+ cp -a $(build_libdir)/libjulia-internal-debug.*.dSYM $(DESTDIR)$(private_libdir)
321+ cp -a $(build_libdir)/libjulia-codegen-debug.*.dSYM $(DESTDIR)$(private_libdir)
322+ cp -a $(build_private_libdir)/sys-debug.dylib.dSYM $(DESTDIR)$(private_libdir)
318323endif
319324endif
320325
321326# Copy over shared library file for libjulia.*
322327 for suffix in $(JL_TARGETS) ; do \
323328 for lib in $(build_libdir)/lib$${suffix}.*$(SHLIB_EXT)*; do \
324329 if [ "$${lib# #*.}" != "dSYM" ]; then \
325- $(INSTALL_M) $$lib $(DESTDIR)$(libdir) ; \
330+ $(INSTALL_M) $$lib $(DESTDIR)$(libdir) || exit 1 ; \
326331 fi \
327332 done \
328333 done
@@ -342,26 +347,24 @@ endif
342347 for suffix in $(JL_PRIVATE_LIBS-0) ; do \
343348 for lib in $(build_libdir)/$${suffix}.*$(SHLIB_EXT)*; do \
344349 if [ "$${lib# #*.}" != "dSYM" ]; then \
345- $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \
350+ $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) || exit 1 ; \
346351 fi \
347352 done \
348353 done
349354 for suffix in $(JL_PRIVATE_LIBS-1) ; do \
350355 for lib in $(build_private_libdir)/$${suffix}.$(SHLIB_EXT)*; do \
351356 if [ "$${lib# #*.}" != "dSYM" ]; then \
352- $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \
357+ $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) || exit 1 ; \
353358 fi \
354359 done \
355360 done
356361endif
357- # Install `7z` into private_libexecdir
358- $(INSTALL_M) $(build_bindir)/7z$(EXE) $(DESTDIR)$(private_libexecdir)/
359-
360- # Install `lld` into private_libexecdir
361- $(INSTALL_M) $(build_depsbindir)/lld$(EXE) $(DESTDIR)$(private_libexecdir)/
362-
363- # Install `dsymutil` into private_libexecdir/
364- $(INSTALL_M) $(build_depsbindir)/dsymutil$(EXE) $(DESTDIR)$(private_libexecdir)/
362+ for exe in $(JL_PRIVATE_EXES) ; do \
363+ $(INSTALL_M) $(build_private_libexecdir)/$$exe $(DESTDIR)$(private_libexecdir) || exit 1; \
364+ done
365+ for exe in $(JL_PRIVATE_TOOLS) ; do \
366+ $(INSTALL_M) $(build_depsbindir)/$$exe $(DESTDIR)$(private_libexecdir) || exit 1; \
367+ done
365368
366369 # Copy public headers
367370 cp -R -L $(build_includedir)/julia/* $(DESTDIR)$(includedir)/julia
@@ -413,13 +416,13 @@ ifneq ($(private_libdir_rel),$(build_private_libdir_rel))
413416ifeq ($(OS ) , Darwin)
414417ifneq ($(DARWIN_FRAMEWORK ) ,1)
415418 for j in $(JL_TARGETS) ; do \
416- install_name_tool -rpath @executable_path/$(build_private_libdir_rel) @executable_path/$(private_libdir_rel) $(DESTDIR)$(bindir)/$$j; \
417- install_name_tool -add_rpath @executable_path/$(build_libdir_rel) @executable_path/$(libdir_rel) $(DESTDIR)$(bindir)/$$j; \
419+ install_name_tool -rpath @executable_path/$(build_private_libdir_rel) @executable_path/$(private_libdir_rel) $(DESTDIR)$(bindir)/$$j || exit 1 ; \
420+ install_name_tool -rpath @executable_path/$(build_libdir_rel) @executable_path/$(libdir_rel) $(DESTDIR)$(bindir)/$$j || exit 1 ; \
418421 done
419422endif
420423else ifneq (,$(findstring $(OS),Linux FreeBSD))
421424 for j in $(JL_TARGETS) ; do \
422- $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $(DESTDIR)$(bindir)/$$j; \
425+ $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $(DESTDIR)$(bindir)/$$j || exit 1 ; \
423426 done
424427endif
425428
@@ -442,11 +445,11 @@ endif
442445ifeq ($(OS ) , Darwin)
443446ifneq ($(DARWIN_FRAMEWORK ) ,1)
444447ifeq ($(JULIA_BUILD_MODE ) ,release)
445- install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-internal.$(SHLIB_EXT)
446- install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-codegen.$(SHLIB_EXT)
448+ install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-internal.$(SHLIB_EXT)
449+ install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-codegen.$(SHLIB_EXT)
447450else ifeq ($(JULIA_BUILD_MODE),debug)
448- install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-internal-debug.$(SHLIB_EXT)
449- install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-codegen-debug.$(SHLIB_EXT)
451+ install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-internal-debug.$(SHLIB_EXT)
452+ install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-codegen-debug.$(SHLIB_EXT)
450453endif
451454endif
452455else ifneq (,$(findstring $(OS),Linux FreeBSD))
@@ -483,7 +486,7 @@ ifeq ($(OS),FreeBSD)
483486 # don't set libgfortran's RPATH, it won't be able to find its friends on systems
484487 # that don't have the exact GCC port installed used for the build.
485488 for lib in $(DESTDIR)$(private_libdir)/libgfortran*$(SHLIB_EXT)*; do \
486- $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN' $$lib; \
489+ $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN' $$lib || exit 1 ; \
487490 done
488491endif
489492
0 commit comments