aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 41374b90b43ef3dc4f455dcf499b8f757523f4eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
PREFIX   ?= /usr/local
PROG     ?= calculer
CFLAGS   ?= -O0 -g3
LDFLAGS  ?=
LIBS     ?=


CALCULER_VERSION      := 1.0

__CFLAGS   := -std=c99 \
	      -Wall \
	      -DCALCULER_VERSION=\"$(CALCULER_VERSION)\" \
	      -DCALCULER_PREFIX=\"$(PREFIX)\" \
	      $(shell pkg-config --cflags readline) \
	      $(shell pkg-config --cflags raylib)
__LDFLAGS  :=
__LIBS     := $(shell pkg-config --libs readline) \
	      $(shell pkg-config --libs raylib)

all: $(PROG) libcli.so libtui.so libray.so

$(PROG): src/calculer.o src/disp.o
	$(CC) -o $@ $^ $(__LDFLAGS) $(__LIBS) $(LDFLAGS) $(LIBS)

src/calculer.o: src/calculer.c src/disp.h
	$(CC) $(__CFLAGS) $(CFLAGS) -o $@ -c $<
src/disp.o: src/disp.c src/disp.h
	$(CC) $(__CFLAGS) $(CFLAGS) -o $@ -c $<

libcli.so: src/cli.o src/input.o
	$(CC) -shared -o $@ $^
libtui.so: src/calc_data.o src/tui.o src/input.o
	$(CC) -shared -o $@ $^
libray.so: src/calc_data.o src/ray.o src/input.o
	$(CC) -shared -o $@ $^

src/calc_data.o: src/calc_data.c src/calc_data.h
	$(CC) $(__CFLAGS) $(CFLAGS) -o $@ -c -fpic $<
src/input.o: src/input.c src/input.h
	$(CC) $(__CFLAGS) $(CFLAGS) -o $@ -c -fpic $<

src/cli.o: src/cli.c src/disp.h
	$(CC) $(__CFLAGS) $(CFLAGS) -o $@ -c -fpic $<
src/tui.o: src/tui.c src/disp.h
	$(CC) $(__CFLAGS) $(CFLAGS) -o $@ -c -fpic $<
src/ray.o: src/ray.c src/calc_data.h src/disp.h src/input.h
	$(CC) $(__CFLAGS) $(CFLAGS) -o $@ -c -fpic $<

install: $(PROG)
	mkdir -p $(PREFIX)/bin
	install --mode=0755 $(PROG) $(PREFIX)/bin/
	mkdir -p  $(PREFIX)/lib/calculer
	install --mode=0755 libcli.so libtui.so libray.so $(PREFIX)/lib/calculer/

uninstall:
	rm -rf $(PREFIX)/bin/$(PROG) $(PREFIX)/lib/calculer

clean:
	rm -rf $(PROG) *.so *.tar.gz src/*.o

dist:
	git archive \
	    --output="calculer-$(CALCULER_VERSION).tar.gz" \
	    --prefix="calculer-$(CALCULER_VERSION)/" \
	    HEAD

.PHONY: all clean dist install uninstall