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 LD ?
= $(CROSS_COMPILE
)ld
14 AR ?
= $(CROSS_COMPILE
)ar
18 MAKEFLAGS
+= --no-print-directory
22 # Use DESTDIR for installing into a different root directory.
23 # This is useful for building a package. The program will be
24 # installed in this directory as if it was the root directory.
25 # Then the build tool can move it later.
27 DESTDIR_SQ
= '$(subst ','\'',$(DESTDIR
))'
29 LIBFILE = $(OUTPUT)libsubcmd.a
31 CFLAGS := -ggdb3 -Wall -Wextra -std=gnu99 -fPIC
34 ifeq ($(feature-fortify-source), 1)
35 CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
45 # Treat warnings as errors unless directed not to
50 CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
52 CFLAGS += -I$(srctree)/tools/include/
54 CFLAGS += $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
56 SUBCMD_IN := $(OUTPUT)libsubcmd-in.o
59 libdir_relative = lib64
65 libdir = $(prefix)/$(libdir_relative)
68 libdir_SQ = $(subst ','\'',$(libdir))
72 export srctree OUTPUT CC LD CFLAGS V
73 include $(srctree
)/tools
/build
/Makefile.
include
75 all: fixdep
$(LIBFILE
)
77 $(SUBCMD_IN
): fixdep FORCE
78 @
$(MAKE
) $(build
)=libsubcmd
80 $(LIBFILE
): $(SUBCMD_IN
)
81 $(QUIET_AR
)$(RM
) $@
&& $(AR
) rcs
$@
$(SUBCMD_IN
)
83 define do_install_mkdir
84 if
[ ! -d
'$(DESTDIR_SQ)$1' ]; then \
85 $(INSTALL
) -d
-m
755 '$(DESTDIR_SQ)$1'; \
90 if
[ ! -d
'$2' ]; then \
91 $(INSTALL
) -d
-m
755 '$2'; \
93 $(INSTALL
) $1 $(if
$3,-m
$3,) '$2'
96 install_lib
: $(LIBFILE
)
97 $(call QUIET_INSTALL
, $(LIBFILE
)) \
98 $(call do_install_mkdir
,$(libdir_SQ
)); \
99 cp
-fpR
$(LIBFILE
) $(DESTDIR
)$(libdir_SQ
)
101 HDRS
:= exec-cmd.h help.h pager.h parse-options.h run-command.h
102 INSTALL_HDRS_PFX
:= $(DESTDIR
)$(prefix)/include/subcmd
103 INSTALL_HDRS
:= $(addprefix $(INSTALL_HDRS_PFX
)/, $(HDRS
))
105 $(INSTALL_HDRS
): $(INSTALL_HDRS_PFX
)/%.h
: %.h
106 $(call QUIET_INSTALL
, $@
) \
107 $(call do_install
,$<,$(INSTALL_HDRS_PFX
)/,644)
109 install_headers
: $(INSTALL_HDRS
)
110 $(call QUIET_INSTALL
, libsubcmd_headers
)
112 install: install_lib install_headers
115 $(call QUIET_CLEAN
, libsubcmd
) $(RM
) $(LIBFILE
); \
116 find
$(or
$(OUTPUT
),.
) -name \
*.o
-or
-name \
*.o.cmd
-or
-name \
*.o.d | xargs
$(RM
)