1 # SPDX-License-Identifier: GPL-2.0
2 include ..
/..
/scripts
/Makefile.
include
3 include ..
/..
/scripts
/utilities.mak
# QUIET_CLEAN
6 srctree
:= $(patsubst %/,%,$(dir $(CURDIR
)))
7 srctree
:= $(patsubst %/,%,$(dir $(srctree
)))
8 srctree
:= $(patsubst %/,%,$(dir $(srctree
)))
9 #$(info Determined 'srctree' to be $(srctree))
12 CC ?
= $(CROSS_COMPILE
)gcc
13 AR ?
= $(CROSS_COMPILE
)ar
14 LD ?
= $(CROSS_COMPILE
)ld
16 MAKEFLAGS
+= --no-print-directory
21 # Use DESTDIR for installing into a different root directory.
22 # This is useful for building a package. The program will be
23 # installed in this directory as if it was the root directory.
24 # Then the build tool can move it later.
26 DESTDIR_SQ
= '$(subst ','\'',$(DESTDIR
))'
28 LIBFILE = $(OUTPUT)libapi.a
30 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
31 CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -fPIC
38 CFLAGS += -D_FORTIFY_SOURCE
41 # Treat warnings as errors unless directed not to
46 CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
47 CFLAGS += -I$(srctree)/tools/lib/api
48 CFLAGS += -I$(srctree)/tools/include
52 API_IN := $(OUTPUT)libapi-in.o
55 libdir_relative = lib64
61 libdir = $(prefix)/$(libdir_relative)
64 libdir_SQ = $(subst ','\'',$(libdir))
68 export srctree OUTPUT CC LD CFLAGS V
69 include $(srctree
)/tools
/build
/Makefile.
include
70 include $(srctree
)/tools
/scripts
/Makefile.
include
72 all: fixdep
$(LIBFILE
)
75 @
$(MAKE
) $(build
)=libapi
78 $(QUIET_AR
)$(RM
) $@
&& $(AR
) rcs
$@
$(API_IN
)
80 define do_install_mkdir
81 if
[ ! -d
'$(DESTDIR_SQ)$1' ]; then \
82 $(INSTALL
) -d
-m
755 '$(DESTDIR_SQ)$1'; \
87 if
[ ! -d
'$2' ]; then \
88 $(INSTALL
) -d
-m
755 '$2'; \
90 $(INSTALL
) $1 $(if
$3,-m
$3,) '$2'
93 install_lib
: $(LIBFILE
)
94 $(call QUIET_INSTALL
, $(LIBFILE
)) \
95 $(call do_install_mkdir
,$(libdir_SQ
)); \
96 cp
-fpR
$(LIBFILE
) $(DESTDIR
)$(libdir_SQ
)
98 HDRS
:= cpu.h debug.h io.h
100 FS_HDRS
:= fs
/fs.h fs
/tracing_path.h
101 INSTALL_HDRS_PFX
:= $(DESTDIR
)$(prefix)/include/api
102 INSTALL_HDRS
:= $(addprefix $(INSTALL_HDRS_PFX
)/, $(HDRS
))
103 INSTALL_FD_HDRS
:= $(addprefix $(INSTALL_HDRS_PFX
)/, $(FD_HDRS
))
104 INSTALL_FS_HDRS
:= $(addprefix $(INSTALL_HDRS_PFX
)/, $(FS_HDRS
))
106 $(INSTALL_HDRS
): $(INSTALL_HDRS_PFX
)/%.h
: %.h
107 $(call QUIET_INSTALL
, $@
) \
108 $(call do_install
,$<,$(INSTALL_HDRS_PFX
)/,644)
110 $(INSTALL_FD_HDRS
): $(INSTALL_HDRS_PFX
)/fd
/%.h
: fd
/%.h
111 $(call QUIET_INSTALL
, $@
) \
112 $(call do_install
,$<,$(INSTALL_HDRS_PFX
)/fd
/,644)
114 $(INSTALL_FS_HDRS
): $(INSTALL_HDRS_PFX
)/fs
/%.h
: fs
/%.h
115 $(call QUIET_INSTALL
, $@
) \
116 $(call do_install
,$<,$(INSTALL_HDRS_PFX
)/fs
/,644)
118 install_headers
: $(INSTALL_HDRS
) $(INSTALL_FD_HDRS
) $(INSTALL_FS_HDRS
)
119 $(call QUIET_INSTALL
, libapi_headers
)
121 install: install_lib install_headers
124 $(call QUIET_CLEAN
, libapi
) $(RM
) $(LIBFILE
); \
125 find
$(or
$(OUTPUT
),.
) -name \
*.o
-or
-name \
*.o.cmd
-or
-name \
*.o.d | xargs
$(RM
)