113 lines
3.4 KiB
Makefile
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
|