Files
2026-08-24 10:03:24 +08:00

85 lines
2.2 KiB
Makefile

LDLIBS += -lsystemd -lpthread
LDFLAGS+=-L$(BUILDDIR)
LINK:=$(CC)
CPPFLAGS+=-I./ -fPIC -g
LIB_VER=0
# BUILDDIR used for out-of-source compile
BUILDDIR?=./
all:
.PHONY: clean
define build_project
OBJ_C := $(patsubst %.c,$(TARGET)_o/%.o,$(filter %.c,$2))
OBJ_CXX := $(patsubst %.cpp,$(TARGET)_o/%.o,$(filter %.cpp,$2))
OBJ_PATH := $(addprefix $(TARGET)_o/, $(sort $(dir $2)))
_dummy := $$(shell mkdir -p $$(OBJ_PATH))
$(TARGET):OBJ_ALL:=$$(OBJ_C) $$(OBJ_CXX)
$(TARGET):LINK:=$(if $(filter %.cpp,$2),$(CXX),$(CC))
$(TARGET)_clean:CLEAN_FILES:=$(TARGET) $$(OBJ_PATH) $(TARGET)_o
ifneq (,$(findstring shared_lib,$1))
ifneq ($(suffix $(TARGET)),.so)
all:$(basename $(TARGET))
$(basename $(TARGET)):$(TARGET)
ln -frs $$< $$@
endif
endif
$(TARGET): $$(OBJ_C) $$(OBJ_CXX)
ifneq (,$(findstring shared_lib,$1))
$$(LINK) $$(CPPFLAGS) $$(LDFLAGS) -shared -Wl,-soname,$(notdir $(TARGET)) -o $$@ $$(OBJ_ALL) $$(LDLIBS)
else ifneq (,$(findstring static_lib,$1))
$(AR) rcs -o $$@ $$+
$(RANLIB) $$@
else
$$(LINK) $$(CPPFLAGS) $$(LDFLAGS) -o $$@ $$(OBJ_ALL) $$(LDLIBS)
endif
$$(OBJ_C):$(TARGET)_o/%.o:%.c
$$(CC) $$(CPPFLAGS) $$(CFLAGS) -c $$< -o $$@
$$(OBJ_CXX):$(TARGET)_o/%.o:%.cpp
$$(CXX) $$(CPPFLAGS) $$(CXXFLAGS) -c $$< -o $$@
.PHONY: $(TARGET)_clean
$(TARGET)_clean:
-rm -rf $$(abspath $$(CLEAN_FILES))
clean: $(TARGET)_clean
all:$(TARGET)
endef
TARGET := $(BUILDDIR)/libamldbus.so.$(LIB_VER)
$(eval $(call build_project,shared_lib,aml-dbus.c))
TARGET := $(BUILDDIR)/ambus-sample1
$(TARGET):$(BUILDDIR)/libamldbus.so
$(TARGET):LDLIBS+=-lamldbus
#$(eval $(call build_project,exe,sample/cpp/sample1.cpp))
TARGET := $(BUILDDIR)/ambus-sample-server-1
$(TARGET):$(BUILDDIR)/libamldbus.so
$(TARGET):LDLIBS+=-lamldbus
#$(eval $(call build_project,exe,sample/c/sample-server.c))
TARGET := $(BUILDDIR)/ambus-sample-client-1
$(TARGET):$(BUILDDIR)/libamldbus.so
$(TARGET):LDLIBS+=-lamldbus
#$(eval $(call build_project,exe,sample/c/sample-client.c))
TARGET := $(BUILDDIR)/ambus-easy-intf-server
$(TARGET):$(BUILDDIR)/libamldbus.so
$(TARGET):LDLIBS+=-lamldbus
$(eval $(call build_project,exe,sample/c/easy-intf-server.c))
TARGET := $(BUILDDIR)/ambus-easy-intf-client
$(TARGET):$(BUILDDIR)/libamldbus.so
$(TARGET):LDLIBS+=-lamldbus
$(eval $(call build_project,exe,sample/c/easy-intf-client.c))