10 EXE := $(BUILDDIR)/$(EXENAME)
11 STATICLIB := $(BUILDDIR)/lib$(LIBNAME).a
16 SHAREDLIB := $(BUILDDIR)/lib$(LIBNAME).so.$(SHARED_VERMAJ).$(SHARED_VERMIN).$(SHARED_VERREV)
18 HEADERS := $(shell find $(INCLUDEDIR)/ -iname "*.h")
19 HEADERS += $(shell find $(SRCDIR)/ -iname "*.h")
21 ALLSRCS := $(shell find $(SRCDIR)/ -iname "*.c")
22 LIBSRCS := $(filter $(SRCDIR)/lib$(LIBNAME)/%.c, $(ALLSRCS))
23 EXESRCS := $(filter-out $(SRCDIR)/lib$(LIBNAME)/%.c, $(ALLSRCS))
24 LIBOBJS := $(patsubst %.c, $(BUILDDIR)/%.o, $(LIBSRCS))
25 EXEOBJS := $(patsubst %.c, $(BUILDDIR)/%.o, $(EXESRCS))
27 INCLUDES := $(patsubst %, -I%, $(INCLUDEDIR) $(SRCDIR)) $(shell pkg-config --cflags-only-I $(LIBRARIES))
28 CFLAGS := -g -Wall -pedantic -Wno-variadic-macros -fPIC $(shell pkg-config --cflags-only-other $(LIBRARIES))
29 LDFLAGS := $(shell pkg-config --libs $(LIBRARIES))
34 all: $(STATICLIB) $(SHAREDLIB) $(EXE)
44 gdb $(EXE) $(shell ps -e | sed "s/^ *\([0-9]\+\) .*$(EXENAME).*$$/\1/g;te;d;:e")
47 $(EXE): $(EXEOBJS) $(STATICLIB)
48 gcc -o $@ $^ $(LDFLAGS)
50 $(SHAREDLIB): $(LIBOBJS)
51 gcc -shared -Wl,-soname,lib$(LIBNAME).so.$(SHARED_VERMAJ) -o $@ $^ $(LDFLAGS)
53 $(STATICLIB): $(LIBOBJS)
56 $(BUILDDIR)/$(SRCDIR)/%.o: $(SRCDIR)/%.c $(HEADERS)
57 @if [ ! -d $(dir $@) ] ; then mkdir -p $(dir $@) ; fi
58 gcc $(INCLUDES) $(CFLAGS) -c -o $@ $<
69 find . -xdev -name "*~" -exec rm {} \;
70 find . -xdev -name "core" -exec rm {} \;