yb_arm/driver/rfic/rf/makefile
2025-05-20 01:20:32 +08:00

164 lines
4.2 KiB
Makefile

#example source paths
API_PATH = api
ADI_PATH = adrv9025
UCP4008_PATH = ucp
#Include paths
UCP4008_INCL = $(UCP4008_PATH)/inc
ADI_APP_INCL = $(ADI_PATH)/c_src/app/example
ADI_ADRV9025_INCL = $(ADI_PATH)/c_src/devices/adrv9025/public/include
ADI_AD9528_INCL = $(ADI_PATH)/c_src/devices/ad9528/public/include
ADI_COMMON_INCL = $(ADI_PATH)/c_src/common
ADI_COMMON_ERROR_INCL = $(ADI_PATH)/c_src/common/adi_error
ADI_COMMON_LOGGING_INCL = $(ADI_PATH)/c_src/common/adi_logging
ADI_COMMON_HAL_INCL = $(ADI_PATH)/c_src/common/adi_hal
ADI_PLATFORM_INCL = $(ADI_PATH)/c_src/platforms
ADI_PLATFORM_UTILS_INCL = $(ADI_PATH)/c_src/platforms/platform_utils
#src paths
UCP4008_SRC = $(UCP4008_PATH)/
API_SRC = $(API_PATH)
ADI_APP_SRC = $(ADI_PATH)/c_src/app/
ADI_PLATFORM_SRC = $(ADI_PATH)/c_src/platforms
ADI_UCP2PLATFORM_SRC = $(ADI_PATH)/c_src/platforms/ucp2/
ADI_COMMON_SRC = $(ADI_PATH)/c_src/common
ADI_COMMON_ERROR_SRC = $(ADI_PATH)/c_src/common/adi_error
ADI_COMMON_LOGGING_SRC = $(ADI_PATH)/c_src/common/adi_logging
ADI_COMMON_HAL_SRC = $(ADI_PATH)/c_src/common/adi_hal
ADI_AD9528_SRC = $(ADI_PATH)/c_src/devices/ad9528
ADI_ADRV9025_SRC = $(ADI_PATH)/c_src/devices/adrv9025
#LIBs to link
LIB_UCP4008 = $(UCP4008_PATH)/libjesd.a
LIB_API = $(API_PATH)/libapi.a
LIB_ADI_APP = $(ADI_PATH)/c_src/app/libadi_app.a
LIB_ADI_ADRV9025_DEVICE = $(ADI_PATH)/c_src/devices/adrv9025/libadi_adrv9025.a
LIB_ADI_COMMON_DEVICE = $(ADI_PATH)/c_src/common/libadi_common.a
LIB_ADI_PLATFORM = $(ADI_PATH)/c_src/platforms/libadi_platform.a
LIB_ADI_UCP2PLATFORM = $(ADI_PATH)/c_src/platforms/ucp2/libadi_ucp2platform.a
LIB_ADI_AD9528 = $(ADI_PATH)/c_src/devices/ad9528/libadi_ad9528.a
arch = arm64
CROSS_CC ?= aarch64-linux-gnu-
ifeq ($(arch),x86)
CC = gcc
LD = gcc
else
CC = $(CROSS_CC)gcc
LD = $(CROSS_CC)gcc
endif
ARFLAGS = -rv
CFLAGS = -Wall -Wchar-subscripts -Wshadow -DDEBUG=1 -DGTEST=1 \
-I$(UCP4008_INCL) \
-I$(JSON_INCL) \
-I$(API_INCL) \
-I$(ADI_APP_INCL) \
-I$(ADI_ADRV9025_INCL) \
-I$(ADI_AD9528_INCL) \
-I$(ADI_COMMON_INCL) \
-I$(ADI_COMMON_ERROR_INCL) \
-I$(ADI_COMMON_LOGGING_INCL) \
-I$(ADI_COMMON_HAL_INCL) \
-I$(ADI_PLATFORM_INCL) \
-I$(ADI_PLATFORM_UTILS_INCL) \
-Werror
TARGET = rfic.out
TARGET_LIB = librfic.a
SRC_RFIC = $(wildcard ./demo/rfic.c)
OBJS_RFIC = $(SRC_RFIC:.c=.o)
#All DEPS are built by adi_adrv9025_board_lib
DEPS = $(LIB_UCP4008) \
$(LIB_API) \
$(LIB_ADI_APP) \
$(LIB_ADI_ADRV9025_DEVICE) \
$(LIB_ADI_COMMON_DEVICE) \
$(LIB_ADI_PLATFORM) \
$(LIB_ADI_UCP2PLATFORM) \
$(LIB_ADI_AD9528)
all: lib $(TARGET)
.c.o:
$(CC) $(CFLAGS) -o $@ -c $<
lib: $(TARGET_LIB)
$(TARGET): $(OBJS_RFIC) $(OBJS_JESD)
$(LD) -o $@ $(OBJS_RFIC) $(TARGET_LIB) -lm
mkdir -p ./out/jesd
cp ./ucp/libjesd.a ./out/jesd/
cp ./ucp/inc/ucp_api_jesd.h ./out/jesd/
cp ./api/src/ucp_jesd_initdata.c ./out/jesd/
mkdir -p ./out/rfic
mv librfic.a ./out/rfic/
cp ./api/inc/ucp_api_rfic.h ./out/rfic/
cp ./api/src/ucp_jesd_initdata.c ./out/rfic/
mkdir -p ./out/app
mv rfic.out ./out/app
$(TARGET_LIB): adi_lib api_lib
mkdir -p ./out/obj
ar x $(LIB_UCP4008)
ar x $(LIB_API)
ar x $(LIB_ADI_APP)
ar x $(LIB_ADI_ADRV9025_DEVICE)
ar x $(LIB_ADI_COMMON_DEVICE)
ar x $(LIB_ADI_PLATFORM)
ar x $(LIB_ADI_UCP2PLATFORM)
ar x $(LIB_ADI_AD9528)
mv *.o ./out/obj
ar -rv $@ ./out/obj/*.o
rm -rf demo/*.o
$(MAKE) -C $(API_SRC) clean
$(MAKE) -C $(ADI_APP_SRC) clean
$(MAKE) -C $(ADI_PLATFORM_SRC) clean
$(MAKE) -C $(ADI_UCP2PLATFORM_SRC) clean
$(MAKE) -C $(ADI_COMMON_SRC) clean
$(MAKE) -C $(ADI_AD9528_SRC) clean
$(MAKE) -C $(ADI_ADRV9025_SRC) clean
adi_lib: adi_app_lib \
adi_platform_lib \
adi_common_lib \
adi_ad9528_lib \
adi_adrv9025_lib
api_lib:
$(MAKE) -C $(API_SRC) CC=$(CC)
adi_app_lib:
$(MAKE) -C $(ADI_APP_SRC) CC=$(CC)
adi_platform_lib:
$(MAKE) -C $(ADI_PLATFORM_SRC) CC=$(CC)
adi_common_lib:
$(MAKE) -C $(ADI_COMMON_SRC) CC=$(CC)
adi_ad9528_lib:
$(MAKE) -C $(ADI_AD9528_SRC) CC=$(CC)
adi_adrv9025_lib:
$(MAKE) -C $(ADI_ADRV9025_SRC) CC=$(CC)
clean:
$(MAKE) -C $(API_SRC) clean
$(MAKE) -C $(ADI_PLATFORM_SRC) clean
$(MAKE) -C $(ADI_UCP2PLATFORM_SRC) clean
$(MAKE) -C $(ADI_COMMON_SRC) clean
$(MAKE) -C $(ADI_AD9528_SRC) clean
$(MAKE) -C $(ADI_ADRV9025_SRC) clean
rm -rf demo/*.o
rm -rf ./out
rm -rf ./api/*.a
clr:
$(MAKE) clean
rm -rf ./out