Files
gk-sdk/build/sdk_lib_rules.mk
T

50 lines
1.8 KiB
Makefile

# modules should define SRCS LIB_NAME SDK_USR_CFLAGS(if needed)
# by default, libs will install to out/lib dir, modules can define THIS_LIB_STATIC_INSTALL_DIR and THIS_LIB_SHARE_INSTALL_DIR to change it
OBJS := $(SRCS:%.c=%.o) $(CPP_SRCS:%.cpp=%.o) $(ASM_SRCS:%.S=%.o)
OBJ_DIR32 := $(OUT_DIR)/obj/$(subst $(SDK_DIR)/,,$(CURDIR))
OBJS32 := $(addprefix $(OBJ_DIR32)/,$(OBJS))
TARGETS := $(OBJ_DIR32)/$(LIB_NAME)
ifeq ($(THIS_LIB_STATIC_INSTALL_DIR),)
THIS_LIB_STATIC_INSTALL_DIR = $(SDK_STATIC_LIB_DIR)
endif
ifeq ($(THIS_LIB_SHARE_INSTALL_DIR),)
THIS_LIB_SHARE_INSTALL_DIR = $(SDK_SHARE_LIB_DIR)
endif
.PHONY: all clean
all: $(TARGETS)
$(AT)test -d $(THIS_LIB_STATIC_INSTALL_DIR) || mkdir -p $(THIS_LIB_STATIC_INSTALL_DIR)
$(AT)cp -rf $(OBJ_DIR32)/$(LIB_NAME).a $(THIS_LIB_STATIC_INSTALL_DIR)
$(AT)test -d $(THIS_LIB_SHARE_INSTALL_DIR) || mkdir -p $(THIS_LIB_SHARE_INSTALL_DIR)
$(AT)cp -rf $(OBJ_DIR32)/$(LIB_NAME).so $(THIS_LIB_SHARE_INSTALL_DIR)
clean:
$(AT)rm -rf $(OBJS32)
$(AT)rm -rf $(OBJ_DIR32)/$(LIB_NAME).a $(OBJ_DIR32)/$(LIB_NAME).so
$(AT)rm -f $(THIS_LIB_STATIC_INSTALL_DIR)/$(LIB_NAME).a $(THIS_LIB_SHARE_INSTALL_DIR)/$(LIB_NAME).so
$(OBJ_DIR32)/%.o : %.c
$(AT)test -d $(dir $@) || mkdir -p $(dir $@)
$(AT)$(CONFIG_XMEDIA_USR_ARM_TOOLCHAINS)-gcc $(SDK_USR_CFLAGS) -o $@ -c $^
$(OBJ_DIR32)/%.o : %.cpp
$(AT)test -d $(dir $@) || mkdir -p $(dir $@)
$(AT)$(CONFIG_XMEDIA_USR_ARM_TOOLCHAINS)-gcc $(SDK_USR_CFLAGS) -o $@ -c $^
$(OBJ_DIR32)/%.o : %.S
$(AT)test -d $(dir $@) || mkdir -p $(dir $@)
$(AT)$(CONFIG_XMEDIA_USR_ARM_TOOLCHAINS)-gcc $(SDK_USR_CFLAGS) -o $@ -c $^
$(OBJ_DIR32)/$(LIB_NAME) : $(OBJS32)
$(AT)$(CONFIG_XMEDIA_USR_ARM_TOOLCHAINS)-ar -rcs $@.a $(OBJS32)
$(AT)$(CONFIG_XMEDIA_USR_ARM_TOOLCHAINS)-gcc $(SDK_LD_CFLAGS) -fPIC -shared -o $@.so $(OBJS32)