Makefile 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. DIR_Config = ./lib/Config
  2. DIR_EPD = ./lib/e-Paper
  3. DIR_FONTS = ./lib/Fonts
  4. DIR_GUI = ./lib/GUI
  5. DIR_Examples = ./examples
  6. DIR_BIN = ./bin
  7. EPD = NULL
  8. ifeq ($(EPD), reserved)
  9. # This reserved interface will be used for future screen upgrade versions. Simply add EPD=reserved after the compiler command
  10. # reserved needs to be changed to its screen name
  11. OBJ_C_EPD = ${DIR_EPD}/reserved.c
  12. OBJ_C_Examples = ${DIR_Examples}/reserved_test.c
  13. OBJ_C = $(wildcard ${OBJ_C_EPD} ${DIR_GUI}/*.c ${OBJ_C_Examples} ${DIR_Examples}/main.c ${DIR_Examples}/ImageData2.c ${DIR_Examples}/ImageData.c ${DIR_FONTS}/*.c )
  14. else
  15. OBJ_C = $(wildcard ${DIR_EPD}/*.c ${DIR_GUI}/*.c ${DIR_Examples}/*.c ${DIR_FONTS}/*.c )
  16. endif
  17. OBJ_O = $(patsubst %.c,${DIR_BIN}/%.o,$(notdir ${OBJ_C}))
  18. RPI_DEV_C = $(wildcard $(DIR_BIN)/dev_hardware_SPI.o $(DIR_BIN)/RPI_sysfs_gpio.o $(DIR_BIN)/DEV_Config.o )
  19. JETSON_DEV_C = $(wildcard $(DIR_BIN)/sysfs_software_spi.o $(DIR_BIN)/sysfs_gpio.o $(DIR_BIN)/DEV_Config.o )
  20. DEBUG = -D DEBUG
  21. # USELIB_RPI = USE_BCM2835_LIB
  22. # USELIB_RPI = USE_WIRINGPI_LIB
  23. USELIB_RPI = USE_LGPIO_LIB
  24. # USELIB_RPI = USE_DEV_LIB
  25. LIB_RPI=-Wl,--gc-sections
  26. ifeq ($(USELIB_RPI), USE_BCM2835_LIB)
  27. LIB_RPI += -lbcm2835 -lm
  28. else ifeq ($(USELIB_RPI), USE_WIRINGPI_LIB)
  29. LIB_RPI += -lwiringPi -lm
  30. else ifeq ($(USELIB_RPI), USE_LGPIO_LIB)
  31. LIB_RPI += -llgpio -lm
  32. else ifeq ($(USELIB_RPI), USE_DEV_LIB)
  33. LIB_RPI += -lgpiod -lm
  34. endif
  35. DEBUG_RPI = -D $(USELIB_RPI) -D RPI
  36. USELIB_JETSONI = USE_DEV_LIB
  37. # USELIB_JETSONI = USE_HARDWARE_LIB
  38. ifeq ($(USELIB_JETSONI), USE_DEV_LIB)
  39. LIB_JETSONI = -lm
  40. else ifeq ($(USELIB_JETSONI), USE_HARDWARE_LIB)
  41. LIB_JETSONI = -lm
  42. endif
  43. DEBUG_JETSONI = -D $(USELIB_JETSONI) -D JETSON
  44. .PHONY : RPI JETSON clean
  45. RPI:RPI_DEV RPI_epd
  46. JETSON: JETSON_DEV JETSON_epd
  47. TARGET = epd
  48. CC = gcc
  49. MSG = -g -O -ffunction-sections -fdata-sections -Wall
  50. CFLAGS += $(MSG) -D $(EPD)
  51. RPI_epd:${OBJ_O}
  52. echo $(@)
  53. $(CC) $(CFLAGS) -D RPI $(OBJ_O) $(RPI_DEV_C) -o $(TARGET) $(LIB_RPI) $(DEBUG)
  54. JETSON_epd:${OBJ_O}
  55. echo $(@)
  56. $(CC) $(CFLAGS) $(OBJ_O) $(JETSON_DEV_C) -o $(TARGET) $(LIB_JETSONI) $(DEBUG)
  57. $(shell mkdir -p $(DIR_BIN))
  58. ${DIR_BIN}/%.o:$(DIR_Examples)/%.c
  59. $(CC) $(CFLAGS) -c $< -o $@ -I $(DIR_Config) -I $(DIR_GUI) -I $(DIR_EPD) $(DEBUG)
  60. ${DIR_BIN}/%.o:$(DIR_EPD)/%.c
  61. $(CC) $(CFLAGS) -c $< -o $@ -I $(DIR_Config) $(DEBUG)
  62. ${DIR_BIN}/%.o:$(DIR_FONTS)/%.c
  63. $(CC) $(CFLAGS) -c $< -o $@ $(DEBUG)
  64. ${DIR_BIN}/%.o:$(DIR_GUI)/%.c
  65. $(CC) $(CFLAGS) -c $< -o $@ -I $(DIR_Config) $(DEBUG)
  66. RPI_DEV:
  67. ifeq ($(USELIB_RPI), USE_DEV_LIB)
  68. $(CC) $(CFLAGS) $(DEBUG_RPI) -c $(DIR_Config)/dev_hardware_SPI.c -o $(DIR_BIN)/dev_hardware_SPI.o $(LIB_RPI) $(DEBUG)
  69. $(CC) $(CFLAGS) $(DEBUG_RPI) -c $(DIR_Config)/DEV_Config.c -o $(DIR_BIN)/DEV_Config.o $(LIB_RPI) $(DEBUG)
  70. $(CC) $(CFLAGS) $(DEBUG_RPI) -c $(DIR_Config)/RPI_gpiod.c -o $(DIR_BIN)/RPI_gpiod.o $(LIB_RPI) $(DEBUG)
  71. else
  72. $(CC) $(CFLAGS) $(DEBUG_RPI) -c $(DIR_Config)/dev_hardware_SPI.c -o $(DIR_BIN)/dev_hardware_SPI.o $(LIB_RPI) $(DEBUG)
  73. $(CC) $(CFLAGS) $(DEBUG_RPI) -c $(DIR_Config)/DEV_Config.c -o $(DIR_BIN)/DEV_Config.o $(LIB_RPI) $(DEBUG)
  74. endif
  75. JETSON_DEV:
  76. $(CC) $(CFLAGS) $(DEBUG_JETSONI) -c $(DIR_Config)/sysfs_software_spi.c -o $(DIR_BIN)/sysfs_software_spi.o $(LIB_JETSONI) $(DEBUG)
  77. $(CC) $(CFLAGS) $(DEBUG_JETSONI) -c $(DIR_Config)/sysfs_gpio.c -o $(DIR_BIN)/sysfs_gpio.o $(LIB_JETSONI) $(DEBUG)
  78. $(CC) $(CFLAGS) $(DEBUG_JETSONI) -c $(DIR_Config)/DEV_Config.c -o $(DIR_BIN)/DEV_Config.o $(LIB_JETSONI) $(DEBUG)
  79. clean :
  80. rm $(DIR_BIN)/*.*
  81. rm $(TARGET)