@@ -17,51 +17,49 @@ GCC := gcc
17
17
CLANG := clang-14
18
18
LLD := lld-14
19
19
20
+ export ICU4X_FFI_BAKED_ROOT = $(dir $(realpath $(lastword $(MAKEFILE_LIST ) ) ) ) baked
20
21
21
- ../../../../../target/debug/libicu_capi_staticlib.a : $(ALL_RUST )
22
- cargo build -p icu_capi_staticlib --no-default-features --features buffer_provider
22
+ ../../../../../target/debug/libicu_capi_staticlib.a : $(ALL_RUST ) $( ICU4X_FFI_BAKED_ROOT )
23
+ cargo build -p icu_capi_staticlib --no-default-features
23
24
24
- icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/debug/libicu_capi_staticlib_tiny.a : $(ALL_RUST )
25
+ icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/debug/libicu_capi_staticlib_tiny.a : $(ALL_RUST ) $( ICU4X_FFI_BAKED_ROOT )
25
26
cd icu_capi_staticlib_tiny && \
26
- RUSTFLAGS=" -Clinker-plugin-lto -Clinker=$( CLANG) -Ccodegen-units=1 -Clink-arg=-flto -Cpanic=abort" cargo +${ ICU4X_NIGHTLY_TOOLCHAIN} panic-abort-build --target x86_64-unknown-linux-gnu
27
+ RUSTFLAGS=" -Clinker-plugin-lto -Clinker=$( CLANG) -Ccodegen-units=1 -Clink-arg=-flto -Cpanic=abort" cargo +$( ICU4X_NIGHTLY_TOOLCHAIN ) panic-abort-build --target x86_64-unknown-linux-gnu
27
28
28
- icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/release-opt-size/libicu_capi_staticlib_tiny.a : $(ALL_RUST )
29
+ icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/release-opt-size/libicu_capi_staticlib_tiny.a : $(ALL_RUST ) $( ICU4X_FFI_BAKED_ROOT )
29
30
cd icu_capi_staticlib_tiny && \
30
- RUSTFLAGS=" -Clinker-plugin-lto -Clinker=$( CLANG) -Ccodegen-units=1 -Clink-arg=-flto -Cpanic=abort" cargo +${ ICU4X_NIGHTLY_TOOLCHAIN} panic-abort-build --target x86_64-unknown-linux-gnu --profile=release-opt-size
31
+ RUSTFLAGS=" -Clinker-plugin-lto -Clinker=$( CLANG) -Ccodegen-units=1 -Clink-arg=-flto -Cpanic=abort" cargo +$( ICU4X_NIGHTLY_TOOLCHAIN ) panic-abort-build --target x86_64-unknown-linux-gnu --profile=release-opt-size
31
32
32
- decimal-bn-en.postcard :
33
- cargo run -p icu_datagen --features bin -- --locales en bn --keys " decimal/symbols@1" --cldr-root ../../../../../provider/testdata/data/cldr/ --format blob --out decimal-bn-en.postcard
34
-
35
- decimal_bn_en.h : decimal-bn-en.postcard
36
- xxd -i -C decimal-bn-en.postcard > decimal_bn_en.h
33
+ $(ICU4X_FFI_BAKED_ROOT ) :
34
+ cargo run -p icu_datagen --features bin,icu_segmenter -- --locales en bn --keys " decimal/symbols@1" --cldr-root ../../../../../provider/testdata/data/cldr/ --format mod --use-separate-crates --out ${ICU4X_FFI_BAKED_ROOT}
37
35
38
36
# Naive target: no optimizations, full std
39
- optim0.elf : ../../../../../target/debug/libicu_capi_staticlib.a $(ALL_HEADERS ) test.c decimal_bn_en.h
37
+ optim0.elf : ../../../../../target/debug/libicu_capi_staticlib.a $(ALL_HEADERS ) test.c
40
38
$(GCC ) test.c ../../../../../target/debug/libicu_capi_staticlib.a -ldl -lpthread -lm -g -o optim0.elf
41
39
42
40
# optim.elf: gcc with maximum link-time code stripping (gc-sections and strip-all)
43
- optim1.elf : ../../../../../target/debug/libicu_capi_staticlib.a $(ALL_HEADERS ) test.c decimal_bn_en.h
41
+ optim1.elf : ../../../../../target/debug/libicu_capi_staticlib.a $(ALL_HEADERS ) test.c
44
42
$(GCC ) -fdata-sections -ffunction-sections test.c ../../../../../target/debug/libicu_capi_staticlib.a -ldl -lpthread -lm -g -o optim1.elf -Wl,--gc-sections -Wl,--strip-all
45
43
46
44
# optim2.elf: clang single-step with gc-sections
47
- optim2.elf : icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/debug/libicu_capi_staticlib_tiny.a $(ALL_HEADERS ) test.c decimal_bn_en.h
45
+ optim2.elf : icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/debug/libicu_capi_staticlib_tiny.a $(ALL_HEADERS ) test.c
48
46
$(CLANG ) -flto -fdata-sections -ffunction-sections test.c icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/debug/libicu_capi_staticlib_tiny.a -g -o optim2.elf -Wl,--gc-sections
49
47
50
- optim3.o : $(ALL_HEADERS ) test.c decimal_bn_en.h
48
+ optim3.o : $(ALL_HEADERS ) test.c
51
49
$(CLANG ) -c -flto=thin -fdata-sections -ffunction-sections --target=x86_64-unknown-linux-gnu test.c -g -o optim3.o
52
50
53
51
# optim3.elf: clang two-step with lld, debug mode
54
52
optim3.elf : optim3.o icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/debug/libicu_capi_staticlib_tiny.a
55
53
$(CLANG ) -flto=thin -fuse-ld=$(LLD ) -L . -o optim3.elf optim3.o icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/debug/libicu_capi_staticlib_tiny.a -Wl,--gc-sections
56
54
57
- optim4.o : $(ALL_HEADERS ) test.c decimal_bn_en.h
55
+ optim4.o : $(ALL_HEADERS ) test.c
58
56
$(CLANG ) -c -flto=thin -fdata-sections -ffunction-sections --target=x86_64-unknown-linux-gnu test.c -g -o optim4.o
59
57
60
58
# optim4.elf: clang two-step with lld, release mode with debug symbols
61
59
optim4.elf : optim4.o icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/release-opt-size/libicu_capi_staticlib_tiny.a
62
60
$(CLANG ) -flto=thin -fuse-ld=$(LLD ) -L . -o optim4.elf optim4.o icu_capi_staticlib_tiny/target/x86_64-unknown-linux-gnu/release-opt-size/libicu_capi_staticlib_tiny.a -Wl,--gc-sections
63
61
64
- optim5.o : $(ALL_HEADERS ) test.c decimal_bn_en.h
62
+ optim5.o : $(ALL_HEADERS ) test.c
65
63
$(CLANG ) -c -flto=thin -fdata-sections -ffunction-sections --target=x86_64-unknown-linux-gnu test.c -o optim5.o
66
64
67
65
# optim5.elf: clang two-step with lld, release mode stripped of debug symbols
0 commit comments