Browse Source

e24: fix makefile support to be built by buildroot

Signed-off-by: Andy Hu <andy.hu@starfivetech.com>
Andy Hu 1 year ago
parent
commit
bc57fcef31
1 changed files with 30 additions and 12 deletions
  1. 30 12
      e24/client/Makefile

+ 30 - 12
e24/client/Makefile

@@ -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