blob: e8a413f55aaf3e00f429fd42361c3007ad3ffc9d (
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
|
.POSIX:
BINDIR=bin
LIBDIR=lib
OBJDIR=obj
SRCDIR=src
INCDIR=include
TESTDIR=test
CFLAGS=-I$(INCDIR) -Wall -Wextra -Wpedantic -g
OBJECTS=$(OBJDIR)/mapalloc.o
TESTS=$(BINDIR)/overflow $(BINDIR)/underflow $(BINDIR)/zero
all: $(LIBDIR)/libmapalloc.a $(LIBDIR)/libmapalloc.so
tests: $(TESTS)
$(OBJDIR)/mapalloc.o: $(SRCDIR)/mapalloc.c $(INCDIR)/mapalloc.h
@mkdir -p $(@D)
$(CC) -c -o $@ $(CFLAGS) $(SRCDIR)/$(*F).c
$(LIBDIR)/libmapalloc.a: $(OBJECTS)
@mkdir -p $(@D)
$(AR) $(ARFLAGS) $@ $<
$(LIBDIR)/libmapalloc.so: $(OBJECTS)
@mkdir -p $(@D)
$(CC) -o $@ -shared $(OBJECTS)
$(BINDIR)/overflow: $(TESTDIR)/overflow.c $(LIBDIR)/libmapalloc.a
$(BINDIR)/underflow: $(TESTDIR)/underflow.c $(LIBDIR)/libmapalloc.a
$(BINDIR)/zero: $(TESTDIR)/zero.c $(LIBDIR)/libmapalloc.a
$(TESTS):
@mkdir -p $(@D)
$(CC) -o $@ $(CFLAGS) $(TESTDIR)/$(@F).c -L$(LIBDIR) -lmapalloc
clean:
$(RM) -rf $(LIBDIR) $(OBJDIR) $(BINDIR)
|