mirror of
https://github.com/linux-msm/qrtr.git
synced 2025-12-25 06:29:11 +01:00
This component is compiled in Debian and OE where we have multilib support enabled by default, so let's use proper variables for Makefile so that distro can better configure the destination folders. Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
125 lines
2.6 KiB
Makefile
125 lines
2.6 KiB
Makefile
proj := qrtr
|
|
proj-major := 1
|
|
proj-minor := 0
|
|
proj-version := $(proj-major).$(proj-minor)
|
|
|
|
CFLAGS := -Wall -g
|
|
LDFLAGS :=
|
|
|
|
prefix := /usr/local
|
|
bindir := $(prefix)/bin
|
|
libdir := $(prefix)/lib
|
|
includedir := $(prefix)/include
|
|
|
|
ifneq ($(CROSS_COMPILE),)
|
|
CC := $(CROSS_COMPILE)gcc
|
|
endif
|
|
SFLAGS := -I$(shell $(CC) -print-file-name=include) -Wno-non-pointer-null
|
|
|
|
$(proj)-cfg-srcs := \
|
|
src/cfg.c
|
|
|
|
$(proj)-ns-srcs := \
|
|
src/ns.c \
|
|
src/map.c \
|
|
src/hash.c \
|
|
src/waiter.c \
|
|
src/util.c \
|
|
|
|
$(proj)-lookup-srcs := \
|
|
src/lookup.c \
|
|
src/util.c \
|
|
|
|
lib$(proj).so-srcs := \
|
|
lib/libqrtr.c \
|
|
|
|
lib$(proj).so-cflags := -fPIC -Isrc
|
|
|
|
targets := $(proj)-ns $(proj)-cfg $(proj)-lookup lib$(proj).so
|
|
|
|
out := out
|
|
src_to_obj = $(patsubst %.c,$(out)/obj/%.o,$(1))
|
|
src_to_dep = $(patsubst %.c,$(out)/dep/%.d,$(1))
|
|
|
|
all-srcs :=
|
|
all-objs :=
|
|
all-deps :=
|
|
all-clean := $(out)
|
|
all-install :=
|
|
|
|
all: $(targets)
|
|
|
|
$(out)/obj/%.o: %.c
|
|
ifneq ($C,)
|
|
@echo "CHECK $<"
|
|
@sparse $< $(patsubst -iquote=%,-I%,$(CFLAGS)) $(SFLAGS)
|
|
endif
|
|
@echo "CC $<"
|
|
@$(CC) -MM -MF $(call src_to_dep,$<) -MP -MT "$@ $(call src_to_dep,$<)" $(CFLAGS) $(_CFLAGS) $<
|
|
@$(CC) -o $@ -c $< $(CFLAGS) $(_CFLAGS)
|
|
|
|
define add-inc-target
|
|
$(DESTDIR)$(includedir)/$2: $1/$2
|
|
@echo "INSTALL $$<"
|
|
@install -D -m 755 $$< $$@
|
|
|
|
all-install += $(DESTDIR)$(includedir)/$2
|
|
endef
|
|
|
|
define add-target-deps
|
|
all-srcs += $($1-srcs)
|
|
all-objs += $(call src_to_obj,$($1-srcs))
|
|
all-deps += $(call src_to_dep,$($1-srcs))
|
|
all-clean += $1
|
|
$(call src_to_obj,$($1-srcs)): _CFLAGS := $($1-cflags)
|
|
endef
|
|
|
|
define add-bin-target
|
|
|
|
$(call add-target-deps,$1)
|
|
|
|
$1: $(call src_to_obj,$($1-srcs))
|
|
@echo "LD $$@"
|
|
$$(CC) -o $$@ $$(filter %.o,$$^) $(LDFLAGS) -static
|
|
|
|
$(DESTDIR)$(bindir)/$1: $1
|
|
@echo "INSTALL $$<"
|
|
@install -D -m 755 $$< $$@
|
|
|
|
all-install += $(DESTDIR)$(bindir)/$1
|
|
endef
|
|
|
|
define add-lib-target
|
|
|
|
$(call add-target-deps,$1)
|
|
|
|
$1: $(call src_to_obj,$($1-srcs))
|
|
@echo "LD $$@"
|
|
$$(CC) -o $$@ $$(filter %.o,$$^) $(LDFLAGS) -shared -Wl,-soname,$1.$(proj-major)
|
|
|
|
$(DESTDIR)$(libdir)/$1.$(proj-version): $1
|
|
@echo "INSTALL $$<"
|
|
@install -D -m 755 $$< $$@
|
|
@ln -sf $1.$(proj-version) $(DESTDIR)$(libdir)/$1.$(proj-major)
|
|
@ln -sf $1.$(proj-major) $(DESTDIR)$(libdir)/$1
|
|
|
|
all-install += $(DESTDIR)$(libdir)/$1.$(proj-version)
|
|
endef
|
|
|
|
$(foreach v,$(filter-out %.so,$(targets)),$(eval $(call add-bin-target,$v)))
|
|
$(foreach v,$(filter %.so,$(targets)),$(eval $(call add-lib-target,$v)))
|
|
$(eval $(call add-inc-target,lib,libqrtr.h))
|
|
|
|
install: $(all-install)
|
|
|
|
clean:
|
|
@echo CLEAN
|
|
@$(RM) -r $(all-clean)
|
|
|
|
$(call src_to_obj,$(all-srcs)): Makefile
|
|
|
|
ifneq ("$(MAKECMDGOALS)","clean")
|
|
cmd-goal-1 := $(shell mkdir -p $(sort $(dir $(all-objs) $(all-deps))))
|
|
-include $(all-deps)
|
|
endif
|