Added Makefile
This commit is contained in:
parent
153899c41d
commit
cb3ff7597f
36
Makefile
Normal file
36
Makefile
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# Debug flags and release flags for GCC
|
||||
ifeq ($(BUILD),debug)
|
||||
CFLAGS += -O0 -g
|
||||
BUILD_DIR = build/debug
|
||||
else
|
||||
CFLAGS += -O2 -s -DNDEBUG
|
||||
BUILD_DIR = build/release
|
||||
endif
|
||||
|
||||
# Get the system architecture if not specified
|
||||
ifeq ($(ARCH),)
|
||||
ARCH = $(shell uname -m)
|
||||
endif
|
||||
|
||||
VALGRIND_ARGS += --leak-check=full --track-origins=yes --show-leak-kinds=all
|
||||
BINARY_NAME = demo
|
||||
|
||||
$(BUILD_DIR)/$(ARCH)/$(BINARY_NAME): obj/kernels.o obj/solve.o obj/gp.o obj/main.o
|
||||
gcc -std=c99 $(CFLAGS) obj/kernels.o obj/gp.o obj/solve.o obj/main.o\
|
||||
-lgsl -lopenblas -lm -o $(BUILD_DIR)/$(ARCH)/$(BINARY_NAME).$(ARCH)
|
||||
obj/$(BINARY_NAME).o: $(BINARY_NAME).c
|
||||
gcc -Wall -c main.c -o obj/main.o
|
||||
obj/kernels.o: src/kernels.c
|
||||
gcc -Wall -c src/kernels.c -o obj/kernels.o
|
||||
obj/solve.o: src/solve.c
|
||||
gcc -Wall -c src/solve.c -o obj/solve.o
|
||||
obj/gp.o: src/gp.c
|
||||
gcc -Wall -c src/gp.c -o obj/gp.o
|
||||
|
||||
.PHONY : debug
|
||||
debug:
|
||||
$(MAKE) "BUILD=debug" && valgrind $(VALGRIND_ARGS) build/debug/main.x86_64
|
||||
|
||||
.PHONY : clean
|
||||
clean:
|
||||
rm obj/*.o
|
||||
Loading…
Reference in New Issue
Block a user