71 lines
1.7 KiB
Makefile
71 lines
1.7 KiB
Makefile
|
|
DRV_CFLAGS += -O0 -g -Wall -Wextra -pedantic -Wfatal-errors
|
|
|
|
DRV_CFLAGS += -I/tools/opae/1.4.0/include
|
|
|
|
DRV_LDFLAGS += -L/tools/opae/1.4.0/lib
|
|
|
|
# stack execution protection
|
|
DRV_LDFLAGS +=-z noexecstack
|
|
|
|
# data relocation and projection
|
|
DRV_LDFLAGS +=-z relro -z now
|
|
|
|
# stack buffer overrun detection
|
|
# Note that CentOS 7 has gcc 4.8 by default. When we switch
|
|
# to a system with gcc 4.9 or newer this should be changed to
|
|
# CFLAGS="-fstack-protector-strong"
|
|
DRV_CFLAGS +=-fstack-protector
|
|
|
|
# Position independent code
|
|
DRV_CFLAGS += -fPIC
|
|
|
|
DRV_LDFLAGS += -luuid
|
|
|
|
DRV_LDFLAGS += -shared
|
|
|
|
FPGA_LIBS += -lopae-c
|
|
ASE_LIBS += -lopae-c-ase
|
|
|
|
CXXFLAGS += -std=c++17 -O0 -g -Wall -Wextra -pedantic -Wfatal-errors
|
|
|
|
LDFLAGS += -L.
|
|
|
|
PROJECT = libvxdrv.so
|
|
PROJECT_ASE = libvxdrv_ase.so
|
|
|
|
AFU_JSON_INFO = vortex_afu.h
|
|
|
|
all: $(PROJECT) $(PROJECT_ASE) test test_ase
|
|
|
|
# AFU info from JSON file, including AFU UUID
|
|
$(AFU_JSON_INFO): ../hw/vortex_afu.json
|
|
afu_json_mgr json-info --afu-json=$^ --c-hdr=$@
|
|
|
|
$(PROJECT): vx_driver.o
|
|
$(CC) $(DRV_CFLAGS) $^ $(DRV_LDFLAGS) $(FPGA_LIBS) -o $@
|
|
|
|
$(PROJECT_ASE): vx_driver.o
|
|
$(CC) $(DRV_CFLAGS) -DUSE_ASE $^ $(DRV_LDFLAGS) $(ASE_LIBS) -o $@
|
|
|
|
test: test.o utils.o $(PROJECT)
|
|
$(CXX) $(CXXFLAGS) test.o utils.o $(LDFLAGS) -lvxdrv -o $@
|
|
|
|
test_ase: test.o utils.o $(PROJECT_ASE)
|
|
$(CXX) $(CXXFLAGS) -DUSE_ASE test.o utils.o $(LDFLAGS) -lvxdrv_ase -o $@
|
|
|
|
vx_driver.o: vx_driver.c
|
|
$(CC) $(DRV_CFLAGS) -c $^ -o $@
|
|
|
|
test.o: test.cpp $(AFU_JSON_INFO)
|
|
$(CXX) $(CXXFLAGS) -c test.cpp -o $@
|
|
|
|
.depend: vx_driver.c test.cpp
|
|
$(CXX) $(CXXFLAGS) -MM $^ > .depend;
|
|
|
|
clean:
|
|
rm -rf $(PROJECT) $(PROJECT_ASE) test test_ase $(AFU_JSON_INFO) *.so *.o .depend
|
|
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
-include .depend
|
|
endif |