You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
2.4 KiB
Makefile

CC=clang
CFLAGS=-std=c99 -Wextra -pedantic -g -O0
CC_OPENMP=gcc # no OpenMP in our clang
CFLAGS_OPENMP=$(CFLAGS) -fopenmp
TARGETS=approximate-pi linked-list mandelbrot threads circular-buffer structs \
ncurses-pong bit-fuckery bit-fuckery2 checkcheck multibrot bloom \
wo-lernen lua-foo binsearch test-inline-assembly \
uiowa-threads-example uiowa-threads-my-example \
mtrace-test av-variance undefined-behaviour \
multibrot-openmp hello-openmp mandelbrot-openmp \
positional-format-strings unions argv
EXTRAS=mandelbrot.bmp multibrot.png test-inline-assembly.s \
mtrace-test.trace mtrace-test.txt multibrot-openmp.png
VERYEXTRAS=cppcheck.txt macros.txt tags
.PHONY: all
all: $(TARGETS)
.PHONY: really-all
really-all: all $(EXTRAS)
.PHONY: clean
clean:
rm -f $(TARGETS) $(EXTRAS) $(VERYEXTRAS) *.o *~
.PHONY: cppcheck
cppcheck: cppcheck.txt
cppcheck.txt: *.c *.h
cppcheck . 2> $@
cat $@
tags: *.c
ctags -R .
.PHONY: uncrustify
uncrustify:
uncrustify -c uncrustify.cfg --no-backup *.c
mandelbrot: mandelbrot.c
$(CC) $(CFLAGS) $(shell sdl-config --cflags) -o $@ $< $(shell sdl-config --libs) -lm
mandelbrot.bmp: mandelbrot
./mandelbrot
threads: threads.c
$(CC) $(CFLAGS) -o $@ $< -pthread
ncurses-pong: ncurses-pong.c
$(CC) $(CFLAGS) -o $@ $< -lncurses
checkcheck: checkcheck.c
$(CC) $(CFLAGS) -o $@ $< -lcheck
multibrot: multibrot.c
$(CC) $(CFLAGS) -o $@ $< -lm -lpng -pthread
multibrot.png: multibrot
./multibrot -j2
multibrot-openmp.png: multibrot-openmp
time ./multibrot-openmp
lua-foo: lua-foo.c
$(CC) $(CFLAGS) -o $@ $< -llua -lm
test-inline-assembly: test-inline-assembly.c
$(CC) -Wall -o $@ $<
test-inline-assembly.s: test-inline-assembly.c
$(CC) -Wall -S -o $@ $<
mtrace-test.trace: mtrace-test
MALLOC_TRACE=$@ ./mtrace-test
mtrace-test.txt: mtrace-test.trace
-mtrace mtrace-test mtrace-test.trace > mtrace-test.txt
uiowa-threads-example: uiowa-threads.o uiowa-threads-example.c
$(CC) $(CFLAGS) -o $@ $^
uiowa-threads-my-example: uiowa-threads.o uiowa-threads-my-example.c
$(CC) $(CFLAGS) -o $@ $^
av-variance: av-variance.c
$(CC) $(CFLAGS) -o $@ $< -lm
hello-openmp: hello-openmp.c
$(CC_OPENMP) $(CFLAGS_OPENMP) -o $@ $<
multibrot-openmp: multibrot-openmp.c
$(CC_OPENMP) $(CFLAGS_OPENMP) -o $@ $< -lm -lpng
mandelbrot-openmp: mandelbrot-openmp.c
$(CC_OPENMP) $(CFLAGS_OPENMP) $(shell sdl-config --cflags) -o $@ $< $(shell sdl-config --libs) -lm
macros.txt:
$(CC) -dM -E -x c /dev/null > $@