From 2711ae8c32912cedd0e0feb22d82737f02c413ea Mon Sep 17 00:00:00 2001 From: Andrej Karpathy Date: Wed, 26 Jul 2023 16:40:40 +0000 Subject: [PATCH] make compiler tunable in Makefile, i think potentially nice and useful --- Makefile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index d178b3d..1ef49da 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,16 @@ +# choose your compiler, e.g. gcc/clang +# example override to clang: make run CC=clang +CC = gcc # the most basic way of building that is most likely to work on most systems .PHONY: run run: run.c - gcc -O3 -o run run.c -lm + $(CC) -O3 -o run run.c -lm # useful for a debug build, can then e.g. analyze with valgrind, example: # $ valgrind --leak-check=full ./run out/model.bin 1.0 3 rundebug: run.c - gcc -g -o run run.c -lm + $(CC) -g -o run run.c -lm # https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html # https://simonbyrne.github.io/notes/fastmath/ @@ -20,14 +23,14 @@ rundebug: run.c # In our specific application this is *probably* okay to use .PHONY: runfast runfast: run.c - gcc -Ofast -o run run.c -lm + $(CC) -Ofast -o run run.c -lm # additionally compiles with OpenMP, allowing multithreaded runs # make sure to also enable multiple threads when running, e.g.: # OMP_NUM_THREADS=4 ./run out/model.bin .PHONY: runomp runomp: run.c - gcc -Ofast -fopenmp -march=native run.c -lm -o run + $(CC) -Ofast -fopenmp -march=native run.c -lm -o run .PHONY: clean clean: