1
0
Files
linux/debian/rules.d/Makefile.inc
2025-07-26 13:24:48 +03:00

113 lines
3.4 KiB
Makefile

# Normalise OUTDIR to avoid triggering rebuilds
override OUTDIR := $(patsubst ./%,%,$(OUTDIR))
VPATH = $(top_rulesdir)/$(OUTDIR) $(top_srcdir)/$(OUTDIR)
SHELL = /bin/sh -e
srcdir := $(top_srcdir)/$(OUTDIR)
objdir := $(CURDIR)
CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
PKG_CONFIG = $(CROSS_COMPILE)pkg-config
CFLAGS := $(shell dpkg-buildflags --get CFLAGS) -Wall
CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) \
-I$(srcdir) \
-I$(top_srcdir)/debian/build/build-tools/$(OUTDIR) \
-I$(top_srcdir)/scripts/include \
-isystem $(top_srcdir)/debian/build/build-tools/include
CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) -Wall
LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
installdir ?= $(prefix)/$(OUTDIR)
all: all-local all-recursive
install: install-local install-recursive
%-recursive:
+@list='$(SUBDIRS)'; \
for subdir in $$list; do \
echo "Making $* in $$subdir"; \
mkdir -p $$subdir; \
$(MAKE) -C $$subdir -f $(top_rulesdir)/$(OUTDIR)/$$subdir/Makefile OUTDIR=$(OUTDIR)/$$subdir $*; \
done
all-local: $(PROGS) $(KBUILD_PROGS)
install-local: install-local-progs install-local-scripts install-local-data
install-local-progs: $(PROGS) $(KBUILD_PROGS)
@for p in $^; do \
echo " install -m755 '$$p' '$(DESTDIR)/$(installdir)'"; \
install -D -m755 "$$p" "$(DESTDIR)/$(installdir)/$$(basename $$p)"; \
done
SCRIPTS_REAL = $(wildcard $(addprefix $(srcdir)/,$(SCRIPTS)))
install-local-scripts: $(SCRIPTS_REAL)
@for p in $^; do \
echo " install -m755 '$$p' '$(DESTDIR)/$(installdir)'"; \
install -D -m755 \
-s --strip-program $(top_srcdir)/debian/bin/fix-shebang \
"$$p" "$(DESTDIR)/$(installdir)/$$(basename $$p)"; \
done
DATA_REAL = $(wildcard $(addprefix $(srcdir)/,$(DATA)))
install-local-data: $(DATA_REAL)
@for p in $^; do \
echo " install -m644 '$$p' '$(DESTDIR)/$(installdir)'"; \
install -D -m644 "$$p" "$(DESTDIR)/$(installdir)/$$(basename $$p)"; \
done
# Invoke upstream makefile with common required variables, not
# including architecture and toolchain options
MAKE_UPSTREAM_BASE = +$(MAKE_UPSTREAM_ENV) $(MAKE) -C $(srcdir) \
prefix=/usr \
bindir=$(or $(bindir),/usr/bin) \
libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
mandir=/usr/share/man \
DESTDIR=$(DESTDIR) \
O=$(objdir) \
STRIP=true \
V=1
# Invoke upstream makefile with common required variables
MAKE_UPSTREAM = $(MAKE_UPSTREAM_BASE) \
ARCH=$(KERNEL_ARCH) \
CC='$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)' \
CXX='$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)' \
LD=$(CROSS_COMPILE)ld \
PKG_CONFIG='$(PKG_CONFIG)'
MAKE_UPSTREAM_FORCE_CROSS_VARS = \
HOSTARCH=$(KERNEL_ARCH) \
HOSTAR=$(CROSS_COMPILE)ar \
HOSTCC='$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)' \
HOSTLD=$(CROSS_COMPILE)ld \
HOSTPKG_CONFIG=$(CROSS_COMPILE)pkg-config \
REALHOSTCC=gcc \
REALHOSTLD=ld
# Invoke upstream makefile with common required variables, forcing
# cross-build of a tool that expects to always be native
MAKE_UPSTREAM_FORCE_CROSS = $(MAKE_UPSTREAM_BASE) \
$(MAKE_UPSTREAM_FORCE_CROSS_VARS)
ifdef KBUILD_PROGS
# Invoke Kbuild for this directory, forcing cross-build of hostprogs
$(KBUILD_PROGS):
+$(MAKE) -C $(top_srcdir)/debian/build/build-tools \
-f $(top_srcdir)/scripts/Makefile.build \
srcroot=$(top_srcdir) \
srctree=$(top_srcdir) \
VPATH=$(top_srcdir) \
building_out_of_srctree=1 \
objtree=$(top_srcdir)/debian/build/build-tools \
obj=$(OUTDIR) \
KBUILD_VERBOSE=1 \
$(MAKE_UPSTREAM_FORCE_CROSS_VARS) \
$(addprefix $(OUTDIR)/,$@)
endif