106 lines
3.3 KiB
Makefile
106 lines
3.3 KiB
Makefile
DIR_Config = ./lib/Config
|
|
DIR_EPD = ./lib/e-Paper
|
|
DIR_FONTS = ./lib/Fonts
|
|
DIR_GUI = ./lib/GUI
|
|
DIR_Examples = ./examples
|
|
DIR_BIN = ./bin
|
|
DIR_LIB = "$(shell pwd)"
|
|
|
|
SRC_EPD = $(wildcard ${DIR_EPD}/*.c)
|
|
SRC_FONTS = $(wildcard ${DIR_FONTS}/*.c)
|
|
SRC_GUI = $(wildcard ${DIR_GUI}/*.c)
|
|
SRC_Examples = $(wildcard ${DIR_Examples}/*.c)
|
|
|
|
SRC_EXAMPLE = ${SRC_Examples}
|
|
SRC_LIB = ${SRC_EPD} ${SRC_FONTS} ${SRC_GUI}
|
|
|
|
OBJ_EXAMPLE = $(patsubst %.c,${DIR_BIN}/%.o,$(notdir ${SRC_EXAMPLE}))
|
|
OBJ_LIB = $(patsubst %.c,${DIR_BIN}/%.o,$(notdir ${SRC_LIB}))
|
|
|
|
OBJ_DEV_RPI = $(wildcard $(DIR_BIN)/dev_hardware_SPI.o $(DIR_BIN)/RPI_sysfs_gpio.o $(DIR_BIN)/DEV_Config.o )
|
|
OBJ_DEV_JETSON = $(wildcard $(DIR_BIN)/sysfs_software_spi.o $(DIR_BIN)/sysfs_gpio.o $(DIR_BIN)/DEV_Config.o )
|
|
|
|
DEBUG = -D DEBUG
|
|
|
|
|
|
# RASPBERRY PI LIBRARIES
|
|
|
|
USELIB_RPI = USE_DEV_LIB
|
|
#USELIB_RPI = USE_BCM2835_LIB
|
|
#USELIB_RPI = USE_WIRINGPI_LIB
|
|
|
|
LIB_RPI = -lm
|
|
ifeq ($(USELIB_RPI), USE_BCM2835_LIB)
|
|
LIB_RPI += -lbcm2835
|
|
else ifeq ($(USELIB_RPI), USE_WIRINGPI_LIB)
|
|
LIB_RPI += -lwiringPi
|
|
endif
|
|
DEBUG_RPI = -D $(USELIB_RPI) -D RPI
|
|
|
|
|
|
# JETSON NANO LIBRARIES
|
|
|
|
USELIB_JETSON = USE_DEV_LIB
|
|
#USELIB_JETSON = USE_HARDWARE_LIB
|
|
|
|
LIB_JETSON = -lm
|
|
DEBUG_JETSON = -D $(USELIB_JETSON) -D JETSON
|
|
|
|
|
|
.PHONY : RPI JETSON clean
|
|
|
|
all: select_one
|
|
RPI: make_bin_dir RPI_DEV RPI_lib RPI_example
|
|
JETSON: make_bin_dir JETSON_DEV JETSON_lib JETSON_example
|
|
|
|
TARGET_example = epd
|
|
TARGET_lib = libepd.so
|
|
CC = gcc
|
|
CFLAGS += -g -O0 -Wall
|
|
|
|
select_one:
|
|
$(info Use 'make RPI' or 'make JETSON')
|
|
|
|
make_bin_dir:
|
|
mkdir -p ${DIR_BIN}
|
|
|
|
RPI_lib: make_bin_dir ${OBJ_LIB}
|
|
$(CC) -shared -o ${TARGET_lib} ${OBJ_LIB} ${OBJ_DEV_RPI} ${LIB_RPI}
|
|
|
|
JETSON_lib: make_bin_dir ${OBJ_LIB}
|
|
$(CC) -shared -o ${TARGET_lib} ${OBJ_LIB} ${OBJ_DEV_JETSON} ${LIB_JETSON}
|
|
|
|
RPI_example: RPI_lib ${OBJ_EXAMPLE}
|
|
echo $(@)
|
|
$(CC) $(CFLAGS) -D RPI $(OBJ_EXAMPLE) -o $(TARGET_example) $(LIB_RPI) $(DEBUG) -L$(DIR_LIB) -lepd -Wl,-rpath=$(DIR_LIB)
|
|
|
|
JETSON_example: JETSON_lib ${OBJ_EXAMPLE}
|
|
echo $(@)
|
|
$(CC) $(CFLAGS) -D JETSON $(OBJ_EXAMPLE) -o $(TARGET_example) $(LIB_JETSON) $(DEBUG) -L$(DIR_LIB) -lepd -Wl,-rpath=$(DIR_LIB)
|
|
|
|
${DIR_BIN}/%.o:$(DIR_Examples)/%.c
|
|
$(CC) $(CFLAGS) -c $< -o $@ -I $(DIR_Config) -I $(DIR_GUI) -I $(DIR_EPD) $(DEBUG)
|
|
|
|
${DIR_BIN}/%.o:$(DIR_EPD)/%.c
|
|
$(CC) $(CFLAGS) -c $< -o $@ -I $(DIR_Config) $(DEBUG)
|
|
|
|
${DIR_BIN}/%.o:$(DIR_FONTS)/%.c
|
|
$(CC) $(CFLAGS) -c $< -o $@ $(DEBUG)
|
|
|
|
${DIR_BIN}/%.o:$(DIR_GUI)/%.c
|
|
$(CC) $(CFLAGS) -c $< -o $@ -I $(DIR_Config) $(DEBUG)
|
|
|
|
RPI_DEV:
|
|
$(CC) $(CFLAGS) $(DEBUG_RPI) -c $(DIR_Config)/dev_hardware_SPI.c -o $(DIR_BIN)/dev_hardware_SPI.o $(LIB_RPI) $(DEBUG)
|
|
$(CC) $(CFLAGS) $(DEBUG_RPI) -c $(DIR_Config)/RPI_sysfs_gpio.c -o $(DIR_BIN)/RPI_sysfs_gpio.o $(LIB_RPI) $(DEBUG)
|
|
$(CC) $(CFLAGS) $(DEBUG_RPI) -c $(DIR_Config)/DEV_Config.c -o $(DIR_BIN)/DEV_Config.o $(LIB_RPI) $(DEBUG)
|
|
|
|
JETSON_DEV:
|
|
$(CC) $(CFLAGS) $(DEBUG_JETSON) -c $(DIR_Config)/sysfs_software_spi.c -o $(DIR_BIN)/sysfs_software_spi.o $(LIB_JETSON) $(DEBUG)
|
|
$(CC) $(CFLAGS) $(DEBUG_JETSON) -c $(DIR_Config)/sysfs_gpio.c -o $(DIR_BIN)/sysfs_gpio.o $(LIB_JETSON) $(DEBUG)
|
|
$(CC) $(CFLAGS) $(DEBUG_JETSON) -c $(DIR_Config)/DEV_Config.c -o $(DIR_BIN)/DEV_Config.o $(LIB_JETSON) $(DEBUG)
|
|
|
|
clean :
|
|
rm -rf $(DIR_BIN)
|
|
rm -f $(TARGET_example) $(TARGET_lib)
|
|
|