summaryrefslogtreecommitdiff
path: root/Makefile
blob: b50a6cc5ded9e8acb566c7228d059a8abb935c24 (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
LIBNAME := vag-bap

BUILDDIR  := build
STATICLIB := $(BUILDDIR)/lib$(LIBNAME).a

INCLUDEDIR := include
HEADERS    := $(shell find $(INCLUDEDIR)/)

SRCDIR  := src
SOURCES := $(shell find $(SRCDIR)/ -iname "*.c")
OBJS    := $(patsubst %.c, $(BUILDDIR)/%.o, $(SOURCES))

INCLUDES := $(patsubst %, -I%, $(INCLUDEDIR))
CFLAGS   := -Wall -g

TOOLDIR     := tools
TOOLSOURCES := $(shell find $(TOOLDIR)/ -iname "*.c")
TOOLEXES    := $(patsubst %.c, $(BUILDDIR)/%, $(TOOLSOURCES))
TOOLLIBS    := -lncurses





.PHONY: tools
tools: $(TOOLEXES)


$(BUILDDIR)/$(TOOLDIR)/%: $(TOOLDIR)/%.c $(HEADERS) $(STATICLIB)
	@if [ ! -d $(dir $@) ] ; then mkdir -p $(dir $@) ; fi
	$(CC) $(INCLUDES) $(CFLAGS) -o $@ $< $(STATICLIB) $(TOOLLIBS)



.PHONY: lib
lib: $(STATICLIB)

$(STATICLIB): $(OBJS)
	@if [ ! -d $(BUILDDIR) ] ; then echo "Error: Build dir '$(BUILDDIR)' does not exist." ; false ; fi
	ar rcs $@ $^


$(BUILDDIR)/$(SRCDIR)/%.o: $(SRCDIR)/%.c $(HEADERS)
	@if [ ! -d $(dir $@) ] ; then mkdir -p $(dir $@) ; fi
	$(CC) $(INCLUDES) $(CFLAGS) -c -o $@ $<



.PHONY: clean
clean:
	rm -f $(STATICLIB)
	rm -f $(OBJS)
	rm -f $(TOOLEXES)
	rm -rf $(BUILDDIR)/


.PHONY: distclean
distclean: clean
	find . -xdev -name "*~" -exec rm {} \;
	find . -xdev -name "core" -exec rm {} \;