Allow static building with make

Set STATIC_BUILD=1 environment variable to enable static building
when using makefiles.

Signed-off-by: Tero Tervala <tero.tervala@unikie.com>
Message-Id: <20220629163531.932281-1-tero.tervala@unikie.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
Tero Tervala 2022-06-29 19:35:31 +03:00 committed by David Gibson
parent fda71da26e
commit fd9b8c96c7
3 changed files with 24 additions and 11 deletions

View file

@ -198,6 +198,13 @@ LIBFDT_lib = $(LIBFDT_dir)/$(LIBFDT_LIB)
LIBFDT_include = $(addprefix $(LIBFDT_dir)/,$(LIBFDT_INCLUDES)) LIBFDT_include = $(addprefix $(LIBFDT_dir)/,$(LIBFDT_INCLUDES))
LIBFDT_version = $(addprefix $(LIBFDT_dir)/,$(LIBFDT_VERSION)) LIBFDT_version = $(addprefix $(LIBFDT_dir)/,$(LIBFDT_VERSION))
ifeq ($(STATIC_BUILD),1)
CFLAGS += -static
LIBFDT_dep = $(LIBFDT_archive)
else
LIBFDT_dep = $(LIBFDT_lib)
endif
include $(LIBFDT_dir)/Makefile.libfdt include $(LIBFDT_dir)/Makefile.libfdt
.PHONY: libfdt .PHONY: libfdt
@ -261,11 +268,11 @@ convert-dtsv0: $(CONVERT_OBJS)
fdtdump: $(FDTDUMP_OBJS) fdtdump: $(FDTDUMP_OBJS)
fdtget: $(FDTGET_OBJS) $(LIBFDT_lib) fdtget: $(FDTGET_OBJS) $(LIBFDT_dep)
fdtput: $(FDTPUT_OBJS) $(LIBFDT_lib) fdtput: $(FDTPUT_OBJS) $(LIBFDT_dep)
fdtoverlay: $(FDTOVERLAY_OBJS) $(LIBFDT_lib) fdtoverlay: $(FDTOVERLAY_OBJS) $(LIBFDT_dep)
dist: dist:
git archive --format=tar --prefix=dtc-$(dtc_version)/ HEAD \ git archive --format=tar --prefix=dtc-$(dtc_version)/ HEAD \

View file

@ -37,8 +37,10 @@ LIBTREE_TESTS_L = truncated_property truncated_string truncated_memrsv \
LIBTREE_TESTS = $(LIBTREE_TESTS_L:%=$(TESTS_PREFIX)%) LIBTREE_TESTS = $(LIBTREE_TESTS_L:%=$(TESTS_PREFIX)%)
DL_LIB_TESTS_L = asm_tree_dump value-labels ifneq ($(STATIC_BUILD),1)
DL_LIB_TESTS = $(DL_LIB_TESTS_L:%=$(TESTS_PREFIX)%) DL_LIB_TESTS_L = asm_tree_dump value-labels
DL_LIB_TESTS = $(DL_LIB_TESTS_L:%=$(TESTS_PREFIX)%)
endif
TESTS = $(LIB_TESTS) $(LIBTREE_TESTS) $(DL_LIB_TESTS) TESTS = $(LIB_TESTS) $(LIBTREE_TESTS) $(DL_LIB_TESTS)
@ -60,17 +62,17 @@ TESTS_CLEANDIRS = $(TESTS_CLEANDIRS_L:%=$(TESTS_PREFIX)%)
.PHONY: tests .PHONY: tests
tests: $(TESTS) $(TESTS_TREES) tests: $(TESTS) $(TESTS_TREES)
$(LIB_TESTS): %: $(TESTS_PREFIX)testutils.o util.o $(LIBFDT_lib) $(LIB_TESTS): %: $(TESTS_PREFIX)testutils.o util.o $(LIBFDT_dep)
# Not necessary on all platforms; allow -ldl to be excluded instead of forcing # Not necessary on all platforms; allow -ldl to be excluded instead of forcing
# other platforms to patch it out. # other platforms to patch it out.
LIBDL = -ldl LIBDL = -ldl
$(DL_LIB_TESTS): %: %.o $(TESTS_PREFIX)testutils.o util.o $(LIBFDT_lib) $(DL_LIB_TESTS): %: %.o $(TESTS_PREFIX)testutils.o util.o $(LIBFDT_dep)
@$(VECHO) LD [libdl] $@ @$(VECHO) LD [libdl] $@
$(LINK.c) -o $@ $^ $(LIBDL) $(LINK.c) -o $@ $^ $(LIBDL)
$(LIBTREE_TESTS): %: $(TESTS_PREFIX)testutils.o $(TESTS_PREFIX)trees.o \ $(LIBTREE_TESTS): %: $(TESTS_PREFIX)testutils.o $(TESTS_PREFIX)trees.o \
util.o $(LIBFDT_lib) util.o $(LIBFDT_dep)
$(TESTS_PREFIX)dumptrees: $(TESTS_PREFIX)trees.o $(TESTS_PREFIX)dumptrees: $(TESTS_PREFIX)trees.o

View file

@ -607,11 +607,15 @@ dtc_tests () {
run_dtc_test -I dts -O asm -o oasm_$tree.test.s "$SRCDIR/$tree" run_dtc_test -I dts -O asm -o oasm_$tree.test.s "$SRCDIR/$tree"
asm_to_so_test oasm_$tree asm_to_so_test oasm_$tree
run_dtc_test -I dts -O dtb -o $tree.test.dtb "$SRCDIR/$tree" run_dtc_test -I dts -O dtb -o $tree.test.dtb "$SRCDIR/$tree"
run_test asm_tree_dump ./oasm_$tree.test.so oasm_$tree.test.dtb if [ -x ./asm_tree_dump ]; then
run_wrap_test cmp oasm_$tree.test.dtb $tree.test.dtb run_test asm_tree_dump ./oasm_$tree.test.so oasm_$tree.test.dtb
run_wrap_test cmp oasm_$tree.test.dtb $tree.test.dtb
fi
done done
run_test value-labels ./oasm_value-labels.dts.test.so if [ -x ./value-labels ]; then
run_test value-labels ./oasm_value-labels.dts.test.so
fi
# Check -Odts mode preserve all dtb information # Check -Odts mode preserve all dtb information
for tree in test_tree1.dtb dtc_tree1.test.dtb dtc_escapes.test.dtb \ for tree in test_tree1.dtb dtc_tree1.test.dtb dtc_escapes.test.dtb \