Add README.md and COPYING
[revag-bap.git] / Makefile
1 LIBNAME := vag-bap
2
3 BUILDDIR  := build
4 STATICLIB := $(BUILDDIR)/lib$(LIBNAME).a
5
6 INCLUDEDIR := include
7 HEADERS    := $(shell find $(INCLUDEDIR)/)
8
9 SRCDIR  := src
10 SOURCES := $(shell find $(SRCDIR)/ -iname "*.c")
11 OBJS    := $(patsubst %.c, $(BUILDDIR)/%.o, $(SOURCES))
12
13 INCLUDES := $(patsubst %, -I%, $(INCLUDEDIR))
14 CFLAGS   := -Wall -g
15
16 TOOLDIR     := tools
17 TOOLSOURCES := $(shell find $(TOOLDIR)/ -iname "*.c")
18 TOOLEXES    := $(patsubst %.c, $(BUILDDIR)/%, $(TOOLSOURCES))
19 TOOLLIBS    := -lncurses
20
21
22
23
24
25 .PHONY: tools
26 tools: $(TOOLEXES)
27
28
29 $(BUILDDIR)/$(TOOLDIR)/%: $(TOOLDIR)/%.c $(HEADERS) $(STATICLIB)
30         @if [ ! -d $(dir $@) ] ; then mkdir -p $(dir $@) ; fi
31         $(CC) $(INCLUDES) $(CFLAGS) -o $@ $< $(STATICLIB) $(TOOLLIBS)
32
33
34
35 .PHONY: lib
36 lib: $(STATICLIB)
37
38 $(STATICLIB): $(OBJS)
39         @if [ ! -d $(BUILDDIR) ] ; then echo "Error: Build dir '$(BUILDDIR)' does not exist." ; false ; fi
40         ar rcs $@ $^
41
42
43 $(BUILDDIR)/$(SRCDIR)/%.o: $(SRCDIR)/%.c $(HEADERS)
44         @if [ ! -d $(dir $@) ] ; then mkdir -p $(dir $@) ; fi
45         $(CC) $(INCLUDES) $(CFLAGS) -c -o $@ $<
46
47
48
49 .PHONY: clean
50 clean:
51         rm -f $(STATICLIB)
52         rm -f $(OBJS)
53         rm -f $(TOOLEXES)
54         rm -rf $(BUILDDIR)/
55
56
57 .PHONY: distclean
58 distclean: clean
59         find . -xdev -name "*~" -exec rm {} \;
60         find . -xdev -name "core" -exec rm {} \;