Skip to content

Commit 6a796e0

Browse files
authored
Make trimming tests work in an out-of-tree build. (#58340)
1 parent bbb0582 commit 6a796e0

File tree

3 files changed

+21
-15
lines changed

3 files changed

+21
-15
lines changed

test/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ EMBEDDING_ARGS := "JULIA=$(JULIA_EXECUTABLE)" "BIN=$(SRCDIR)/embedding" "CC=$(CC
2424

2525
GCEXT_ARGS := "JULIA=$(JULIA_EXECUTABLE)" "BIN=$(SRCDIR)/gcext" "CC=$(CC)"
2626

27-
TRIMMING_ARGS := "JULIA=$(JULIA_EXECUTABLE)" "BIN=$(JULIAHOME)/usr/bin" "CC=$(CC)"
27+
TRIMMING_ARGS := "JULIA=$(JULIA_EXECUTABLE)" "BIN=$(SRCDIR)/trimming" "CC=$(CC)"
2828

2929
default:
3030

test/trimming/Makefile

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,40 +16,43 @@ endif
1616
# location of test source
1717
SRCDIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
1818
JULIAHOME := $(abspath $(SRCDIR)/../..)
19-
BUILDSCRIPT := $(BIN)/../share/julia/juliac-buildscript.jl
2019
include $(JULIAHOME)/Make.inc
2120

2221
# get the executable suffix, if any
2322
EXE := $(suffix $(abspath $(JULIA)))
2423

2524
# get compiler and linker flags. (see: `contrib/julia-config.jl`)
2625
JULIA_CONFIG := $(JULIA) -e 'include(joinpath(Sys.BINDIR, Base.DATAROOTDIR, "julia", "julia-config.jl"))' --
26+
JULIA_LIBDIR := $(shell $(JULIA) -e 'println(joinpath(Sys.BINDIR, "..", "lib"))' --)
2727
CPPFLAGS_ADD :=
2828
CFLAGS_ADD = $(shell $(JULIA_CONFIG) --cflags)
2929
LDFLAGS_ADD = -lm $(shell $(JULIA_CONFIG) --ldflags --ldlibs) -ljulia-internal
3030

31+
# get the JuliaC build script
32+
JULIAC_BUILDSCRIPT := $(shell $(JULIA) -e 'print(joinpath(Sys.BINDIR, Base.DATAROOTDIR, "julia", "juliac-buildscript.jl"))')
33+
3134
#=============================================================================
3235

33-
release: hello$(EXE) basic_jll$(EXE)
36+
release: $(BIN)/hello$(EXE) $(BIN)/basic_jll$(EXE)
3437

35-
hello-o.a: $(SRCDIR)/hello.jl $(BUILDSCRIPT)
36-
$(JULIA) -t 1 -J $(BIN)/../lib/julia/sys.$(SHLIB_EXT) --startup-file=no --history-file=no --output-o $@ --output-incremental=no --strip-ir --strip-metadata --experimental --trim $(BUILDSCRIPT) $< --output-exe true
38+
$(BIN)/hello-o.a: $(SRCDIR)/hello.jl $(JULIAC_BUILDSCRIPT)
39+
$(JULIA) -t 1 -J $(JULIA_LIBDIR)/julia/sys.$(SHLIB_EXT) --startup-file=no --history-file=no --output-o $@ --output-incremental=no --strip-ir --strip-metadata --experimental --trim $(JULIAC_BUILDSCRIPT) $< --output-exe true
3740

38-
basic_jll-o.a: $(SRCDIR)/basic_jll.jl $(BUILDSCRIPT)
39-
$(JULIA) -t 1 -J $(BIN)/../lib/julia/sys.$(SHLIB_EXT) --startup-file=no --history-file=no --project=$(SRCDIR) -e "using Pkg; Pkg.instantiate()"
40-
$(JULIA) -t 1 -J $(BIN)/../lib/julia/sys.$(SHLIB_EXT) --startup-file=no --history-file=no --project=$(SRCDIR) --output-o $@ --output-incremental=no --strip-ir --strip-metadata --experimental --trim $(BUILDSCRIPT) $< --output-exe true
41+
$(BIN)/basic_jll-o.a: $(SRCDIR)/basic_jll.jl $(JULIAC_BUILDSCRIPT)
42+
$(JULIA) -t 1 -J $(JULIA_LIBDIR)/julia/sys.$(SHLIB_EXT) --startup-file=no --history-file=no --project=$(SRCDIR) -e "using Pkg; Pkg.instantiate()"
43+
$(JULIA) -t 1 -J $(JULIA_LIBDIR)/julia/sys.$(SHLIB_EXT) --startup-file=no --history-file=no --project=$(SRCDIR) --output-o $@ --output-incremental=no --strip-ir --strip-metadata --experimental --trim $(JULIAC_BUILDSCRIPT) $< --output-exe true
4144

42-
hello$(EXE): hello-o.a
45+
$(BIN)/hello$(EXE): $(BIN)/hello-o.a
4346
$(CC) -o $@ $(WHOLE_ARCHIVE) $< $(NO_WHOLE_ARCHIVE) $(CPPFLAGS_ADD) $(CPPFLAGS) $(CFLAGS_ADD) $(CFLAGS) $(LDFLAGS_ADD) $(LDFLAGS)
4447

45-
basic_jll$(EXE): basic_jll-o.a
48+
$(BIN)/basic_jll$(EXE): $(BIN)/basic_jll-o.a
4649
$(CC) -o $@ $(WHOLE_ARCHIVE) $< $(NO_WHOLE_ARCHIVE) $(CPPFLAGS_ADD) $(CPPFLAGS) $(CFLAGS_ADD) $(CFLAGS) $(LDFLAGS_ADD) $(LDFLAGS)
4750

48-
check: hello$(EXE) basic_jll$(EXE)
49-
$(JULIA) --depwarn=error $(SRCDIR)/../runtests.jl $(SRCDIR)/trimming
51+
check: $(BIN)/hello$(EXE) $(BIN)/basic_jll$(EXE)
52+
$(JULIA) --depwarn=error $(SRCDIR)/trimming.jl $<
5053

5154
clean:
52-
-rm -f hello$(EXE) basic_jll$(EXE) hello-o.a basic_jll-o.a
55+
-rm -f $(BIN)/hello$(EXE) $(BIN)/basic_jll$(EXE) $(BIN)/hello-o.a $(BIN)/basic_jll-o.a
5356

5457
.PHONY: release clean check
5558

test/trimming/trimming.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
using Test
22

3+
@test length(ARGS) == 1
4+
bindir = dirname(ARGS[1])
5+
36
let exe_suffix = splitext(Base.julia_exename())[2]
47

5-
hello_exe = joinpath(@__DIR__, "hello" * exe_suffix)
8+
hello_exe = joinpath(bindir, "hello" * exe_suffix)
69
@test readchomp(`$hello_exe`) == "Hello, world!"
710
@test filesize(hello_exe) < 2_000_000
811

9-
basic_jll_exe = joinpath(@__DIR__, "basic_jll" * exe_suffix)
12+
basic_jll_exe = joinpath(bindir, "basic_jll" * exe_suffix)
1013
lines = split(readchomp(`$basic_jll_exe`), "\n")
1114
@test lines[1] == "Julia! Hello, world!"
1215
@test lines[2] == lines[3]

0 commit comments

Comments
 (0)