Makefile 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # SPDX-License-Identifier: GPL-2.0
  2. #
  3. # Copyright (C) 2022 StarFive Technology Co., Ltd.
  4. #
  5. CROSS_BIN_PATH := $(CURDIR)/../../../work/buildroot_initramfs/host/bin
  6. target := riscv64-buildroot-linux-gnu
  7. CC = $(target)-gcc
  8. CXX = $(target)-g++
  9. AR = $(target)-ar
  10. # if cross gcc file exist, then use it, else use the buildroot to build
  11. ifeq ($(CROSS_BIN_PATH)/$(target)-gcc, $(wildcard $(CROSS_BIN_PATH)/$(target)-gcc))
  12. CC = $(CROSS_BIN_PATH)/$(target)-gcc
  13. CXX = $(CROSS_BIN_PATH)/$(target)-g++
  14. AR = $(CROSS_BIN_PATH)/$(target)-ar
  15. endif
  16. INCLUDEDIR= -I$(CURDIR)/include
  17. CUR_SOURCE=${wildcard *.c src/*.c}
  18. #SOURCES=$(notdir $(CUR_SOURCE))
  19. CUR_OBJS=${patsubst %.c,%.o,$(CUR_SOURCE)}
  20. ROOT_DIR=$(CURDIR)/obj
  21. ALL_OBJ_POS=$(addprefix $(ROOT_DIR)/,$(CUR_OBJS))
  22. test_bin := $(CURDIR)/e24_share_mem
  23. # $(info $(CUR_OBJS))
  24. .PHONY: all CREATE_DIR
  25. all: CREATE_DIR $(test_bin)
  26. $(test_bin): $(CUR_OBJS)
  27. $(CC) $(INCLUDEDIR) $(ALL_OBJ_POS) -o $@
  28. $(CUR_OBJS):%.o:%.c
  29. $(CC) $(INCLUDEDIR) -c $^ -o $(ROOT_DIR)/$@
  30. clean:
  31. rm -rf $(ALL_OBJ_POS) $(test_bin) $(ROOT_DIR)
  32. CREATE_DIR:
  33. mkdir -p $(ROOT_DIR) $(ROOT_DIR)/src