|
|
|
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 > $@
|