xref: /OK3568_Linux_fs/kernel/tools/lib/api/Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyuninclude ../../scripts/Makefile.include
3*4882a593Smuzhiyuninclude ../../scripts/utilities.mak		# QUIET_CLEAN
4*4882a593Smuzhiyun
5*4882a593Smuzhiyunifeq ($(srctree),)
6*4882a593Smuzhiyunsrctree := $(patsubst %/,%,$(dir $(CURDIR)))
7*4882a593Smuzhiyunsrctree := $(patsubst %/,%,$(dir $(srctree)))
8*4882a593Smuzhiyunsrctree := $(patsubst %/,%,$(dir $(srctree)))
9*4882a593Smuzhiyun#$(info Determined 'srctree' to be $(srctree))
10*4882a593Smuzhiyunendif
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunCC ?= $(CROSS_COMPILE)gcc
13*4882a593SmuzhiyunAR ?= $(CROSS_COMPILE)ar
14*4882a593SmuzhiyunLD ?= $(CROSS_COMPILE)ld
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunMAKEFLAGS += --no-print-directory
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunLIBFILE = $(OUTPUT)libapi.a
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunCFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
21*4882a593SmuzhiyunCFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -U_FORTIFY_SOURCE -fPIC
22*4882a593Smuzhiyun
23*4882a593Smuzhiyunifeq ($(DEBUG),0)
24*4882a593Smuzhiyunifeq ($(CC_NO_CLANG), 0)
25*4882a593Smuzhiyun  CFLAGS += -O3
26*4882a593Smuzhiyunelse
27*4882a593Smuzhiyun  CFLAGS += -O6
28*4882a593Smuzhiyunendif
29*4882a593Smuzhiyunendif
30*4882a593Smuzhiyun
31*4882a593Smuzhiyunifeq ($(DEBUG),0)
32*4882a593Smuzhiyun  CFLAGS += -D_FORTIFY_SOURCE
33*4882a593Smuzhiyunendif
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun# Treat warnings as errors unless directed not to
36*4882a593Smuzhiyunifneq ($(WERROR),0)
37*4882a593Smuzhiyun  CFLAGS += -Werror
38*4882a593Smuzhiyunendif
39*4882a593Smuzhiyun
40*4882a593SmuzhiyunCFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
41*4882a593SmuzhiyunCFLAGS += -I$(srctree)/tools/lib/api
42*4882a593SmuzhiyunCFLAGS += -I$(srctree)/tools/include
43*4882a593Smuzhiyun
44*4882a593SmuzhiyunRM = rm -f
45*4882a593Smuzhiyun
46*4882a593SmuzhiyunAPI_IN := $(OUTPUT)libapi-in.o
47*4882a593Smuzhiyun
48*4882a593Smuzhiyunall:
49*4882a593Smuzhiyun
50*4882a593Smuzhiyunexport srctree OUTPUT CC LD CFLAGS V
51*4882a593Smuzhiyuninclude $(srctree)/tools/build/Makefile.include
52*4882a593Smuzhiyun
53*4882a593Smuzhiyunall: fixdep $(LIBFILE)
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun$(API_IN): FORCE
56*4882a593Smuzhiyun	@$(MAKE) $(build)=libapi
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun$(LIBFILE): $(API_IN)
59*4882a593Smuzhiyun	$(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(API_IN)
60*4882a593Smuzhiyun
61*4882a593Smuzhiyunclean:
62*4882a593Smuzhiyun	$(call QUIET_CLEAN, libapi) $(RM) $(LIBFILE); \
63*4882a593Smuzhiyun	find $(if $(OUTPUT),$(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | xargs $(RM)
64*4882a593Smuzhiyun
65*4882a593SmuzhiyunFORCE:
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun.PHONY: clean FORCE
68