|
@@ -1,25 +1,43 @@
|
|
|
-wrkdir := $(CURDIR)
|
|
|
-RISCVV := $(wrkdir)/../../../work/buildroot_initramfs/host/bin
|
|
|
+# SPDX-License-Identifier: GPL-2.0
|
|
|
+#
|
|
|
+# Copyright (C) 2022 StarFive Technology Co., Ltd.
|
|
|
+#
|
|
|
+CROSS_BIN_PATH := $(CURDIR)/../../../work/buildroot_initramfs/host/bin
|
|
|
target := riscv64-buildroot-linux-gnu
|
|
|
-CROSS_COMPILE := $(RISCVV)/$(target)-
|
|
|
|
|
|
-INCLUDEDIR= -I$(wrkdir)/include
|
|
|
+CC = $(target)-gcc
|
|
|
+CXX = $(target)-g++
|
|
|
+AR = $(target)-ar
|
|
|
+
|
|
|
+# if cross gcc file exist, then use it, else use the buildroot to build
|
|
|
+ifeq ($(CROSS_BIN_PATH)/$(target)-gcc, $(wildcard $(CROSS_BIN_PATH)/$(target)-gcc))
|
|
|
+CC = $(CROSS_BIN_PATH)/$(target)-gcc
|
|
|
+CXX = $(CROSS_BIN_PATH)/$(target)-g++
|
|
|
+AR = $(CROSS_BIN_PATH)/$(target)-ar
|
|
|
+endif
|
|
|
+
|
|
|
+INCLUDEDIR= -I$(CURDIR)/include
|
|
|
CUR_SOURCE=${wildcard *.c src/*.c}
|
|
|
#SOURCES=$(notdir $(CUR_SOURCE))
|
|
|
CUR_OBJS=${patsubst %.c,%.o,$(CUR_SOURCE)}
|
|
|
ROOT_DIR=$(CURDIR)/obj
|
|
|
ALL_OBJ_POS=$(addprefix $(ROOT_DIR)/,$(CUR_OBJS))
|
|
|
|
|
|
-test_bin := $(wrkdir)/e24_share_mem
|
|
|
+test_bin := $(CURDIR)/e24_share_mem
|
|
|
+
|
|
|
+# $(info $(CUR_OBJS))
|
|
|
|
|
|
-$(info $(CUR_OBJS))
|
|
|
-.PHONY:all
|
|
|
-all:$(CUR_OBJS) $(test_bin)
|
|
|
-$(test_bin):$(ALL_OBJ_POS)
|
|
|
- $(CROSS_COMPILE)gcc $(INCLUDEDIR) $^ -o $@
|
|
|
+.PHONY: all CREATE_DIR
|
|
|
+all: CREATE_DIR $(test_bin)
|
|
|
+
|
|
|
+$(test_bin): $(CUR_OBJS)
|
|
|
+ $(CC) $(INCLUDEDIR) $(ALL_OBJ_POS) -o $@
|
|
|
|
|
|
$(CUR_OBJS):%.o:%.c
|
|
|
- $(CROSS_COMPILE)gcc $(INCLUDEDIR) -c $^ -o $(ROOT_DIR)/$@
|
|
|
+ $(CC) $(INCLUDEDIR) -c $^ -o $(ROOT_DIR)/$@
|
|
|
|
|
|
clean:
|
|
|
- rm -rf $(ALL_OBJ_POS) $(test_bin)
|
|
|
+ rm -rf $(ALL_OBJ_POS) $(test_bin) $(ROOT_DIR)
|
|
|
+
|
|
|
+CREATE_DIR:
|
|
|
+ mkdir -p $(ROOT_DIR) $(ROOT_DIR)/src
|