@@ -26,7 +26,7 @@ default: $(JULIA_BUILD_MODE) # contains either "debug" or "release"
26
26
all : debug release
27
27
28
28
# sort is used to remove potential duplicates
29
- DIRS := $(sort $(build_bindir ) $(build_depsbindir ) $(build_libdir ) $(build_private_libdir ) $(build_libexecdir ) $(build_includedir ) $(build_includedir ) /julia $(build_sysconfdir ) /julia $(build_datarootdir ) /julia $(build_datarootdir ) /julia/stdlib $(build_man1dir ) )
29
+ DIRS := $(sort $(build_bindir ) $(build_depsbindir ) $(build_libdir ) $(build_private_libdir ) $(build_private_libexecdir ) $( build_libexecdir ) $(build_includedir ) $(build_includedir ) /julia $(build_sysconfdir ) /julia $(build_datarootdir ) /julia $(build_datarootdir ) /julia/stdlib $(build_man1dir ) )
30
30
ifneq ($(BUILDROOT ) ,$(JULIAHOME ) )
31
31
BUILDDIRS := $(BUILDROOT ) $(addprefix $(BUILDROOT ) /,base src src/flisp src/support src/clangsa cli doc deps stdlib test test/clangsa test/embedding test/gcext test/llvmpasses)
32
32
BUILDDIRMAKE := $(addsuffix /Makefile,$(BUILDDIRS ) ) $(BUILDROOT ) /sysimage.mk $(BUILDROOT ) /pkgimage.mk
@@ -203,6 +203,12 @@ endif
203
203
204
204
# private libraries, that are installed in $(prefix)/lib/julia
205
205
JL_PRIVATE_LIBS-0 := libccalltest libccalllazyfoo libccalllazybar libllvmcalltest
206
+ JL_PRIVATE_LIBS-1 := # libraries from USE_SYSTEM=1
207
+ JL_PRIVATE_EXES := 7z
208
+ ifeq ($(OS ) ,WINNT)
209
+ JL_PRIVATE_EXES += 7z.dll
210
+ endif
211
+ JL_PRIVATE_TOOLS :=
206
212
ifeq ($(JULIA_BUILD_MODE ) ,release)
207
213
JL_PRIVATE_LIBS-0 += libjulia-internal libjulia-codegen
208
214
else ifeq ($(JULIA_BUILD_MODE),debug)
@@ -232,9 +238,12 @@ JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += zlib
232
238
else
233
239
JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += libz
234
240
endif
241
+ JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += libzstd
242
+ JL_PRIVATE_EXES += zstd$(EXE ) zstdmt$(EXE )
235
243
ifeq ($(USE_LLVM_SHLIB ) ,1)
236
244
JL_PRIVATE_LIBS-$(USE_SYSTEM_LLVM) += libLLVM $(LLVM_SHARED_LIB_NAME )
237
245
endif
246
+ JL_PRIVATE_TOOLS += lld$(EXE ) dsymutil$(EXE )
238
247
JL_PRIVATE_LIBS-$(USE_SYSTEM_LIBUNWIND) += libunwind
239
248
240
249
ifeq ($(USE_SYSTEM_LIBM ) ,0)
@@ -313,45 +322,41 @@ install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index
313
322
314
323
$(INSTALL_M) $(JULIA_EXECUTABLE_$(JULIA_BUILD_MODE)) $(DESTDIR)$(bindir)/
315
324
ifeq ($(OS ) ,WINNT)
316
- - $(INSTALL_M) $(wildcard $(build_bindir)/*.dll) $(DESTDIR)$(bindir)/
325
+ $(INSTALL_M) $(wildcard $(build_bindir)/*.dll) $(DESTDIR)$(bindir)/
317
326
ifeq ($(JULIA_BUILD_MODE ) ,release)
318
- - $(INSTALL_M) $(build_libdir)/libjulia.dll.a $(DESTDIR)$(libdir)/
319
- - $(INSTALL_M) $(build_libdir)/libjulia-internal.dll.a $(DESTDIR)$(libdir)/
327
+ $(INSTALL_M) $(build_libdir)/libjulia.dll.a $(DESTDIR)$(libdir)/
328
+ $(INSTALL_M) $(build_libdir)/libjulia-internal.dll.a $(DESTDIR)$(libdir)/
320
329
else ifeq ($(JULIA_BUILD_MODE),debug)
321
- - $(INSTALL_M) $(build_libdir)/libjulia-debug.dll.a $(DESTDIR)$(libdir)/
322
- - $(INSTALL_M) $(build_libdir)/libjulia-internal-debug.dll.a $(DESTDIR)$(libdir)/
330
+ $(INSTALL_M) $(build_libdir)/libjulia-debug.dll.a $(DESTDIR)$(libdir)/
331
+ $(INSTALL_M) $(build_libdir)/libjulia-internal-debug.dll.a $(DESTDIR)$(libdir)/
323
332
endif
324
- -$(INSTALL_M) $(wildcard $(build_private_libdir)/*.a) $(DESTDIR)$(private_libdir)/
325
- -rm -f $(DESTDIR)$(private_libdir)/sys-o.a
333
+ $(INSTALL_M) $(filter-out %-bc.a %-o.a,$(wildcard $(build_private_libdir)/lib*.a)) $(DESTDIR)$(private_libdir)/
326
334
327
- # We have a single exception; we want 7z.dll to live in private_libexecdir,
328
- # not bindir, so that 7z.exe can find it.
329
- -mv $(DESTDIR)$(bindir)/7z.dll $(DESTDIR)$(private_libexecdir)/
330
- -$(INSTALL_M) $(build_bindir)/libopenlibm.dll.a $(DESTDIR)$(libdir)/
331
- -$(INSTALL_M) $(build_libdir)/libssp.dll.a $(DESTDIR)$(libdir)/
335
+ $(INSTALL_M) $(build_bindir)/libopenlibm.dll.a $(DESTDIR)$(libdir)/
336
+ $(INSTALL_M) $(build_libdir)/libssp.dll.a $(DESTDIR)$(libdir)/
332
337
else
333
338
334
339
# Copy over .dSYM directories directly for Darwin
335
340
ifneq ($(DARWIN_FRAMEWORK ) ,1)
336
341
ifeq ($(OS ) ,Darwin)
337
342
ifeq ($(JULIA_BUILD_MODE ) ,release)
338
- - cp -a $(build_libdir)/libjulia.*.dSYM $(DESTDIR)$(libdir)
339
- - cp -a $(build_libdir)/libjulia-internal.*.dSYM $(DESTDIR)$(private_libdir)
340
- - cp -a $(build_libdir)/libjulia-codegen.*.dSYM $(DESTDIR)$(private_libdir)
341
- - cp -a $(build_private_libdir)/sys.dylib.dSYM $(DESTDIR)$(private_libdir)
343
+ cp -a $(build_libdir)/libjulia.*.dSYM $(DESTDIR)$(libdir)
344
+ cp -a $(build_libdir)/libjulia-internal.*.dSYM $(DESTDIR)$(private_libdir)
345
+ cp -a $(build_libdir)/libjulia-codegen.*.dSYM $(DESTDIR)$(private_libdir)
346
+ cp -a $(build_private_libdir)/sys.dylib.dSYM $(DESTDIR)$(private_libdir)
342
347
else ifeq ($(JULIA_BUILD_MODE),debug)
343
- - cp -a $(build_libdir)/libjulia-debug.*.dSYM $(DESTDIR)$(libdir)
344
- - cp -a $(build_libdir)/libjulia-internal-debug.*.dSYM $(DESTDIR)$(private_libdir)
345
- - cp -a $(build_libdir)/libjulia-codegen-debug.*.dSYM $(DESTDIR)$(private_libdir)
346
- - cp -a $(build_private_libdir)/sys-debug.dylib.dSYM $(DESTDIR)$(private_libdir)
348
+ cp -a $(build_libdir)/libjulia-debug.*.dSYM $(DESTDIR)$(libdir)
349
+ cp -a $(build_libdir)/libjulia-internal-debug.*.dSYM $(DESTDIR)$(private_libdir)
350
+ cp -a $(build_libdir)/libjulia-codegen-debug.*.dSYM $(DESTDIR)$(private_libdir)
351
+ cp -a $(build_private_libdir)/sys-debug.dylib.dSYM $(DESTDIR)$(private_libdir)
347
352
endif
348
353
endif
349
354
350
355
# Copy over shared library file for libjulia.*
351
356
for suffix in $(JL_TARGETS) ; do \
352
357
for lib in $(build_libdir)/lib$${suffix}.*$(SHLIB_EXT)*; do \
353
358
if [ "$${lib# #*.}" != "dSYM" ]; then \
354
- $(INSTALL_M) $$lib $(DESTDIR)$(libdir) ; \
359
+ $(INSTALL_M) $$lib $(DESTDIR)$(libdir) || exit 1 ; \
355
360
fi \
356
361
done \
357
362
done
@@ -371,26 +376,24 @@ endif
371
376
for suffix in $(JL_PRIVATE_LIBS-0) ; do \
372
377
for lib in $(build_libdir)/$${suffix}.*$(SHLIB_EXT)*; do \
373
378
if [ "$${lib# #*.}" != "dSYM" ]; then \
374
- $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \
379
+ $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) || exit 1 ; \
375
380
fi \
376
381
done \
377
382
done
378
383
for suffix in $(JL_PRIVATE_LIBS-1) ; do \
379
384
for lib in $(build_private_libdir)/$${suffix}.$(SHLIB_EXT)*; do \
380
385
if [ "$${lib# #*.}" != "dSYM" ]; then \
381
- $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \
386
+ $(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) || exit 1 ; \
382
387
fi \
383
388
done \
384
389
done
385
390
endif
386
- # Install `7z` into private_libexecdir
387
- $(INSTALL_M) $(build_bindir)/7z$(EXE) $(DESTDIR)$(private_libexecdir)/
388
-
389
- # Install `lld` into private_libexecdir
390
- $(INSTALL_M) $(build_depsbindir)/lld$(EXE) $(DESTDIR)$(private_libexecdir)/
391
-
392
- # Install `dsymutil` into private_libexecdir/
393
- $(INSTALL_M) $(build_depsbindir)/dsymutil$(EXE) $(DESTDIR)$(private_libexecdir)/
391
+ for exe in $(JL_PRIVATE_EXES) ; do \
392
+ $(INSTALL_M) $(build_private_libexecdir)/$$exe $(DESTDIR)$(private_libexecdir) || exit 1; \
393
+ done
394
+ for exe in $(JL_PRIVATE_TOOLS) ; do \
395
+ $(INSTALL_M) $(build_depsbindir)/$$exe $(DESTDIR)$(private_libexecdir) || exit 1; \
396
+ done
394
397
395
398
# Copy public headers
396
399
cp -R -L $(build_includedir)/julia/* $(DESTDIR)$(includedir)/julia
@@ -442,13 +445,13 @@ ifneq ($(private_libdir_rel),$(build_private_libdir_rel))
442
445
ifeq ($(OS ) , Darwin)
443
446
ifneq ($(DARWIN_FRAMEWORK ) ,1)
444
447
for j in $(JL_TARGETS) ; do \
445
- install_name_tool -rpath @executable_path/$(build_private_libdir_rel) @executable_path/$(private_libdir_rel) $(DESTDIR)$(bindir)/$$j; \
446
- install_name_tool -add_rpath @executable_path/$(build_libdir_rel) @executable_path/$(libdir_rel) $(DESTDIR)$(bindir)/$$j; \
448
+ install_name_tool -rpath @executable_path/$(build_private_libdir_rel) @executable_path/$(private_libdir_rel) $(DESTDIR)$(bindir)/$$j || exit 1 ; \
449
+ install_name_tool -rpath @executable_path/$(build_libdir_rel) @executable_path/$(libdir_rel) $(DESTDIR)$(bindir)/$$j || exit 1 ; \
447
450
done
448
451
endif
449
452
else ifneq (,$(findstring $(OS),Linux FreeBSD))
450
453
for j in $(JL_TARGETS) ; do \
451
- $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $(DESTDIR)$(bindir)/$$j; \
454
+ $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $(DESTDIR)$(bindir)/$$j || exit 1 ; \
452
455
done
453
456
endif
454
457
@@ -471,11 +474,11 @@ endif
471
474
ifeq ($(OS ) , Darwin)
472
475
ifneq ($(DARWIN_FRAMEWORK ) ,1)
473
476
ifeq ($(JULIA_BUILD_MODE ) ,release)
474
- install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-internal.$(SHLIB_EXT)
475
- install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-codegen.$(SHLIB_EXT)
477
+ install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-internal.$(SHLIB_EXT)
478
+ install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-codegen.$(SHLIB_EXT)
476
479
else ifeq ($(JULIA_BUILD_MODE),debug)
477
- install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-internal-debug.$(SHLIB_EXT)
478
- install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-codegen-debug.$(SHLIB_EXT)
480
+ install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-internal-debug.$(SHLIB_EXT)
481
+ install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-codegen-debug.$(SHLIB_EXT)
479
482
endif
480
483
endif
481
484
else ifneq (,$(findstring $(OS),Linux FreeBSD))
@@ -486,11 +489,43 @@ else ifeq ($(JULIA_BUILD_MODE),debug)
486
489
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-internal-debug.$(SHLIB_EXT)
487
490
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN:$$ORIGIN/$(reverse_private_libdir_rel)' $(DESTDIR)$(private_libdir)/libjulia-codegen-debug.$(SHLIB_EXT)
488
491
endif
492
+ endif
493
+
494
+ ifeq ($(OS ) , Darwin)
495
+ ifneq ($(DARWIN_FRAMEWORK ) ,1)
496
+ for j in $(JL_PRIVATE_TOOLS) ; do \
497
+ [ -L $(DESTDIR)$(private_libexecdir)/$$j ] && continue; \
498
+ install_name_tool -rpath @loader_path/$(build_libdir_rel) @executable_path/$(reverse_private_libexecdir_rel) $(DESTDIR)$(private_libexecdir)/$$j || exit 1; \
499
+ done
500
+ endif
501
+ else ifneq (,$(findstring $(OS),Linux FreeBSD))
502
+ for j in $(JL_PRIVATE_TOOLS) ; do \
503
+ [ -L $(DESTDIR)$(private_libexecdir)/$$j ] && continue; \
504
+ $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(reverse_private_libexecdir_rel)' $(DESTDIR)$(private_libexecdir)/$$j || exit 1; \
505
+ done
506
+ endif
507
+
508
+ ifneq ($(reverse_private_libexecdir_rel ) ,$(reverse_build_private_libexecdir_rel ) )
509
+ ifeq ($(OS ) , Darwin)
510
+ ifneq ($(DARWIN_FRAMEWORK ) ,1)
511
+ for j in $(JL_PRIVATE_EXES) ; do \
512
+ [ $$j = 7z ] && continue; \
513
+ [ -L $(DESTDIR)$(private_libexecdir)/$$j ] && continue; \
514
+ install_name_tool -rpath @executable_path/$(reverse_build_private_libexecdir_rel) @executable_path/$(reverse_private_libexecdir_rel) $(DESTDIR)$(private_libexecdir)/$$j || exit 1; \
515
+ done
516
+ endif
517
+ else ifneq (,$(findstring $(OS),Linux FreeBSD))
518
+ for j in $(JL_PRIVATE_EXES) ; do \
519
+ [ $$j = 7z ] && continue; \
520
+ [ -L $(DESTDIR)$(private_libexecdir)/$$j ] && continue; \
521
+ $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(reverse_private_libexecdir_rel)' $(DESTDIR)$(private_libexecdir)/$$j || exit 1; \
522
+ done
523
+ endif
489
524
endif
490
525
491
526
# Fix rpaths for dependencies. This should be fixed in BinaryBuilder later.
492
527
ifeq ($(OS ) , Linux)
493
- - $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN' $(DESTDIR)$(private_shlibdir)/libLLVM.$(SHLIB_EXT)
528
+ $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN' $(DESTDIR)$(private_shlibdir)/libLLVM.$(SHLIB_EXT)
494
529
endif
495
530
ifneq ($(LOADER_BUILD_DEP_LIBS ) ,$(LOADER_INSTALL_DEP_LIBS ) )
496
531
# Next, overwrite relative path to libjulia-internal in our loader if $$(LOADER_BUILD_DEP_LIBS) != $$(LOADER_INSTALL_DEP_LIBS)
@@ -511,7 +546,7 @@ ifeq ($(OS),FreeBSD)
511
546
# don't set libgfortran's RPATH, it won't be able to find its friends on systems
512
547
# that don't have the exact GCC port installed used for the build.
513
548
for lib in $(DESTDIR)$(private_libdir)/libgfortran*$(SHLIB_EXT)*; do \
514
- $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN' $$lib; \
549
+ $(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN' $$lib || exit 1 ; \
515
550
done
516
551
endif
517
552
0 commit comments