50 lines
1.8 KiB
Makefile
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)
|
|
|