xref: /OK3568_Linux_fs/kernel/tools/lib/subcmd/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*4882a593SmuzhiyunLD ?= $(CROSS_COMPILE)ld
14*4882a593SmuzhiyunAR ?= $(CROSS_COMPILE)ar
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunRM = rm -f
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunMAKEFLAGS += --no-print-directory
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunLIBFILE = $(OUTPUT)libsubcmd.a
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunCFLAGS := -ggdb3 -Wall -Wextra -std=gnu99 -fPIC
23*4882a593Smuzhiyun
24*4882a593Smuzhiyunifeq ($(DEBUG),0)
25*4882a593Smuzhiyun  ifeq ($(feature-fortify-source), 1)
26*4882a593Smuzhiyun    CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
27*4882a593Smuzhiyun  endif
28*4882a593Smuzhiyunendif
29*4882a593Smuzhiyun
30*4882a593Smuzhiyunifeq ($(DEBUG),1)
31*4882a593Smuzhiyun  CFLAGS += -O0
32*4882a593Smuzhiyunelse ifeq ($(CC_NO_CLANG), 0)
33*4882a593Smuzhiyun  CFLAGS += -O3
34*4882a593Smuzhiyunelse
35*4882a593Smuzhiyun  CFLAGS += -O6
36*4882a593Smuzhiyunendif
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun# Treat warnings as errors unless directed not to
39*4882a593Smuzhiyunifneq ($(WERROR),0)
40*4882a593Smuzhiyun  CFLAGS += -Werror
41*4882a593Smuzhiyunendif
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunCFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
44*4882a593Smuzhiyun
45*4882a593SmuzhiyunCFLAGS += -I$(srctree)/tools/include/
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunCFLAGS += $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
48*4882a593Smuzhiyun
49*4882a593SmuzhiyunSUBCMD_IN := $(OUTPUT)libsubcmd-in.o
50*4882a593Smuzhiyun
51*4882a593Smuzhiyunall:
52*4882a593Smuzhiyun
53*4882a593Smuzhiyunexport srctree OUTPUT CC LD CFLAGS V
54*4882a593Smuzhiyuninclude $(srctree)/tools/build/Makefile.include
55*4882a593Smuzhiyun
56*4882a593Smuzhiyunall: fixdep $(LIBFILE)
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun$(SUBCMD_IN): FORCE
59*4882a593Smuzhiyun	@$(MAKE) $(build)=libsubcmd
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun$(LIBFILE): $(SUBCMD_IN)
62*4882a593Smuzhiyun	$(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(SUBCMD_IN)
63*4882a593Smuzhiyun
64*4882a593Smuzhiyunclean:
65*4882a593Smuzhiyun	$(call QUIET_CLEAN, libsubcmd) $(RM) $(LIBFILE); \
66*4882a593Smuzhiyun	find $(if $(OUTPUT),$(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | xargs $(RM)
67*4882a593Smuzhiyun
68*4882a593SmuzhiyunFORCE:
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun.PHONY: clean FORCE
71