aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 33c790926b2cf2e4ba7c5ba74cea89d155c89dcd (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
CC     ?= cc
CFLAGS ?= -O2 -g
PREFIX ?= /usr/local

__CFLAGS := -I./include/ -std=c99 -D_POSIX_C_SOURCE=200809L -Wall -Wextra

all: libuconfig.a test/uconfig_test

libuconfig.a: src/uconfig.o
	ar rcs $@ $^

src/uconfig.o: src/uconfig.c include/uconfig.h
	$(CC) $(__CFLAGS) -c -fPIC $(CFLAGS) -o $@ $<

test/uconfig_test: test/uconfig_test.o libuconfig.a
	$(CC) -o $@ $^

test/uconfig_test.o: test/uconfig_test.c include/uconfig.h
	$(CC) $(__CFLAGS) -c -o $@ $<

check: all
	./test/uconfig_test

clean:
	rm -f libuconfig.a src/uconfig.o

install: libuconfig.a
	mkdir -p $(PREFIX)/lib $(PREFIX)/include
	install --mode=0644 libuconfig.a      $(PREFIX)/lib/
	install --mode=0644 include/uconfig.h $(PREFIX)/include/

uninstall:
	rm -f $(PREFIX)/lib/libuconfig.a $(PREFIX)/include/uconfig.h

.PHONY: all check clean install uninstall