# ============================================================================== # lib makefile #FileName: makefile #Author: xianfeng.du #Data: 2022-08-10 #Description: extract libxxx.a to xxx.o # ============================================================================== VERSION = 1.00 # ============================================================================== # include common makefile Rules # ============================================================================== #$(info "MAKE_DIR"=$(MAKE_DIR)) include $(MAKE_DIR)/makefile.config include $(MAKE_DIR)/makefile.toolchain # ============================================================================== # files DIR definition # ============================================================================== #$(info DIR_LIB=$(DIR_LIB)) DIR_APE := $(DIR_LIB)/ape_spu DIR_Common := $(DIR_LIB)/common DIR_RFM := $(DIR_LIB)/rfm_spu LIB_APE_DIRS := $(DIR_APE) $(DIR_Common) LIB_RFM_DIRS := $(DIR_RFM) $(DIR_Common) #Flatten files LIB_ABS_APE_DIRS := $(foreach d,$(LIB_APE_DIRS),$(abspath $(d))) LIB_APE_FILES := $(foreach d,$(LIB_ABS_APE_DIRS),$(wildcard $(d)/*.a)) LIB_ABS_RFM_DIRS := $(foreach d,$(LIB_RFM_DIRS),$(abspath $(d))) LIB_RFM_FILES := $(foreach d,$(LIB_ABS_RFM_DIRS),$(wildcard $(d)/*.a)) # ============================================================================== # Variables: Output Files # ============================================================================== APE_TARGET_DIR := $(DIR_LIB)/lib/ape_spu RFM_TARGET_DIR := $(DIR_LIB)/lib/rfm_spu # ============================================================================== # Rules: extract # ============================================================================== $(APE_TARGET_DIR): # @echo "# Creating directory $@" mkdir -p $@ @for list in $(LIB_APE_FILES); \ do \ # echo $$list; \ ar -x $$list; \ mv *.o $@; \ done $(RFM_TARGET_DIR): # @echo "# Creating directory $@" mkdir -p $@ @for list in $(LIB_RFM_FILES); \ do \ # echo $$list; \ ar -x $$list; \ mv *.o $@; \ done # ============================================================================== # Rules: Targets # ============================================================================== .DEFAULT_GOAL := all .PHONY: build clean all: build build: $(APE_TARGET_DIR) $(RFM_TARGET_DIR) # $(eval export APE_OBJ_LIB := $(wildcard $(APE_TARGET_DIR)/*.o)) # $(eval export RFM_OBJ_LIB := $(wildcard $(RFM_TARGET_DIR)/*.o)) # @echo "# APE_OBJ_LIB:$(APE_OBJ_LIB)" # @echo "# RFM_OBJ_LIB:$(RFM_OBJ_LIB)" clean: @echo "deleted all files" rm -rf $(BUILD_DIR)