Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
64 lines (50 loc) · 1.48 KB
/
Copy pathMakefile
File metadata and controls
64 lines (50 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#===============
# GEMMul8 build
#===============
.DEFAULT_GOAL := all
include make/config.mk
include make/backend.mk
include make/functions.mk
include make/selection.mk
include make/sources.mk
include make/rules.mk
include make/inst_common.mk
export TMPDIR := $(TEMPDIR)
ifeq ($(filter clean,$(MAKECMDGOALS)),)
INST_MK := $(sort $(shell find src -name instantiations.mk 2>/dev/null))
include $(INST_MK)
ALL_OBJ := $(CU_OBJ) $(INST_OBJ)
else
ALL_OBJ :=
endif
LINK_FLAGS :=
ifeq ($(shell uname -m),aarch64)
LINK_FLAGS += -Xlinker --stub-group-size=33554432
endif
.PHONY: all clean info compile_objects_banner FORCE build-plan
all: info $(STATIC_LIB) $(SHARED_LIB)
$(STATIC_LIB): $(ALL_OBJ) $(ACTIVE_CONFIG) $(BUILD_MAKEFILES)
@mkdir -p lib
@echo "Creating static library"
@echo "AR $@"
@rm -f $@.tmp
@ar rcs $@.tmp $(ALL_OBJ)
@mv -f $@.tmp $@
$(SHARED_LIB): $(ALL_OBJ) $(HOOK_OBJ) $(ACTIVE_CONFIG) $(BUILD_MAKEFILES)
@mkdir -p lib
@echo "Creating shared library"
@echo "LD $@"
@$(COMPILER) $(ARCH) -shared -o $@.tmp $(ALL_OBJ) $(HOOK_OBJ) $(LIBS) $(LINK_FLAGS)
@mv -f $@.tmp $@
$(ACTIVE_CONFIG): FORCE
@mkdir -p $(@D)
@printf '%s\n' '$(BUILD_SIGNATURE)' > $@.tmp
@cmp -s $@.tmp $@ && rm -f $@.tmp || mv -f $@.tmp $@
FORCE:
build-plan:
@echo 'OPS : $(BUILD_OPS)'
@echo 'OZ2_BACKENDS : $(BUILD_OZ2_BACKENDS)'
@echo 'OBJECTS : $(words $(ALL_OBJ)) + $(words $(HOOK_OBJ)) hooks'
@$(foreach obj,$(ALL_OBJ) $(HOOK_OBJ),echo '$(obj)';)
clean:
rm -rf build lib $(COMPILE_INFO)