README.md: x86-32/64 support
[centaur.git] / Makefile
index 8cef4c90107aa18f0630619874dac4d78dbe5f51..5dbb7287d381368a36b4468f00b453a26cfc9af1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,6 @@
 LIBNAME := elfu
 EXENAME := elfucli
 
-LIBRARIES := libelf
-
 BUILDDIR   := build
 INCLUDEDIR := include
 SRCDIR     := src
@@ -24,9 +22,22 @@ EXESRCS := $(filter-out $(SRCDIR)/lib$(LIBNAME)/%.c, $(ALLSRCS))
 LIBOBJS := $(patsubst %.c, $(BUILDDIR)/%.o, $(LIBSRCS))
 EXEOBJS := $(patsubst %.c, $(BUILDDIR)/%.o, $(EXESRCS))
 
-INCLUDES := $(patsubst %, -I%, $(INCLUDEDIR) $(SRCDIR)) $(shell pkg-config --cflags-only-I $(LIBRARIES))
-CFLAGS   := -g -Wall -std=gnu99 -pedantic -fPIC $(shell pkg-config --cflags-only-other $(LIBRARIES))
-LDFLAGS  := $(shell pkg-config --libs $(LIBRARIES))
+
+ifeq ($(shell pkg-config --exists libelf > /dev/null 2> /dev/null ; echo $$?),0)
+       LIBELF_INCLUDES := $(shell pkg-config --cflags-only-I libelf)
+       LIBELF_CFLAGS   := $(shell pkg-config --cflags-only-other libelf)
+       LIBELF_LDFLAGS  := $(shell pkg-config --libs libelf)
+else
+       LIBELF_INCLUDES :=
+       LIBELF_CFLAGS   :=
+       LIBELF_LDFLAGS  := -lelf
+endif
+
+
+INCLUDES := $(patsubst %, -I%, $(INCLUDEDIR) $(SRCDIR)) $(LIBELF_INCLUDES)
+CFLAGS   := -g -Wall -std=gnu99 -pedantic $(LIBELF_CFLAGS)
+LDFLAGS  := $(LIBELF_LDFLAGS)
+
 
 
 
@@ -47,8 +58,8 @@ debug: $(EXE)
 $(EXE): $(EXEOBJS) $(STATICLIB)
        gcc -o $@ $^ $(LDFLAGS)
 
-$(SHAREDLIB): $(LIBOBJS)
-       gcc -shared -Wl,-soname,lib$(LIBNAME).so.$(SHARED_VERMAJ) -o $@ $^ $(LDFLAGS)
+$(SHAREDLIB): $(LIBSRCS)
+       gcc $(INCLUDES) $(CFLAGS) -shared -fPIC -Wl,-soname,lib$(LIBNAME).so.$(SHARED_VERMAJ) -o $@ $^ $(LDFLAGS)
 
 $(STATICLIB): $(LIBOBJS)
        ar rcs $@ $^
@@ -58,6 +69,15 @@ $(BUILDDIR)/$(SRCDIR)/%.o: $(SRCDIR)/%.c $(HEADERS)
        gcc $(INCLUDES) $(CFLAGS) -c -o $@ $<
 
 
+.PHONY: docs
+docs: doxygen-doc
+
+.PHONY: doxygen-doc
+doxygen-doc:
+       mkdir -p docs
+       doxygen
+
+
 .PHONY: clean
 clean:
        rm -rf $(BUILDDIR)/
@@ -68,3 +88,4 @@ clean:
 distclean: clean
        find . -xdev -name "*~" -exec rm {} \;
        find . -xdev -name "core" -exec rm {} \;
+       rm -rf docs/doxygen/