summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile37
1 files changed, 33 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 6e553d4..f8bf829 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,13 @@
+VERSION = 0.1.0
TARGET_NAME = gnunetchat
SOURCE_DIR = src/
INCLUDE_DIR = include/
TESTS_DIR = tests/
INSTALL_DIR ?= /usr/local/
+DOXYGEN_DIR = doc/
+PACKAGE = lib$(TARGET_NAME)
LIBRARY = lib$(TARGET_NAME).so
SOURCES = gnunet_chat_lib.c\
gnunet_chat_account.c\
@@ -33,9 +36,18 @@ LIBRARIES = gnunetarm\
gnunetregex\
gnunetutil
+DIST_FILES = Makefile\
+ AUTHORS\
+ COPYING\
+ Doxyfile\
+ HOWTO.md\
+ README.md
+
GNU_CC ?= gcc
GNU_LD ?= gcc
GNU_RM ?= rm
+GNU_CP ?= cp
+GNU_TAR ?= tar
DOXYGEN ?= doxygen
CFLAGS += -fPIC -pedantic -Wall -Wextra -ggdb3
@@ -44,13 +56,16 @@ LDFLAGS += -shared
DEBUGFLAGS = -O0 -D _DEBUG
RELEASEFLAGS = -O2 -D NDEBUG
+DIST_DIR = $(PACKAGE)-$(VERSION)/
+DIST_TAR = $(PACKAGE)-$(VERSION).tar.gz
+
SOURCE_FILES = $(addprefix $(SOURCE_DIR), $(SOURCES))
OBJECT_FILES = $(SOURCE_FILES:%.c=%.o)
HEADER_FILES = $(addprefix $(INCLUDE_DIR), $(HEADERS))
TEST_FILES = $(addprefix $(TESTS_DIR), $(TESTS))
TEST_CASES = $(TEST_FILES:%.c=%.test)
LIBRARY_FLAGS = $(addprefix -l, $(LIBRARIES))
-TEST_FLAGS = $(LIBRARY_FLAGS) -lcheck -l$(TARGET_NAME)
+TEST_FLAGS = $(LIBRARY_FLAGS) -lcheck -l$(TARGET_NAME) -L.
all: $(LIBRARY)
@@ -66,11 +81,13 @@ release: $(LIBRARY)
$(LIBRARY): $(OBJECT_FILES)
$(GNU_LD) $(LDFLAGS) $^ -o $@ $(LIBRARY_FLAGS)
-check: $(TEST_CASES)
- $(foreach TEST_CASE,$(TEST_CASES),./$(TEST_CASE);)
+check: $(LIBRARY) $(TEST_CASES)
+ $(foreach TEST_CASE,$(TEST_CASES),LD_LIBRARY_PATH=. ./$(TEST_CASE);)
%.test: %.c
- $(GNU_CC) $(CFLAGS) $< -o $@ -I $(INCLUDE_DIR) $(TEST_FLAGS)
+ ln -s ../$(INCLUDE_DIR) $(addprefix $(TESTS_DIR), gnunet)
+ $(GNU_CC) $(CFLAGS) $< -o $@ -I $(TESTS_DIR) $(TEST_FLAGS)
+ $(GNU_RM) $(addprefix $(TESTS_DIR), gnunet)
.PHONY: install
@@ -85,9 +102,21 @@ uninstall:
$(GNU_RM) -f $(addsuffix $(HEADERS), $(addprefix $(INSTALL_DIR), include/gnunet/))
$(GNU_RM) -f $(addsuffix $(LIBRARY), $(addprefix $(INSTALL_DIR), lib/))
+.PHONY: dist
+
+dist: clean
+ mkdir $(DIST_DIR)
+ $(GNU_CP) -r $(INCLUDE_DIR) $(DIST_DIR)
+ $(GNU_CP) -r $(SOURCE_DIR) $(DIST_DIR)
+ $(GNU_CP) -r $(TESTS_DIR) $(DIST_DIR)
+ $(foreach DIST_FILE,$(DIST_FILES),$(GNU_CP) $(DIST_FILE) $(DIST_DIR);)
+ $(GNU_TAR) -czf $(DIST_TAR) $(DIST_DIR)
+ $(GNU_RM) -r $(DIST_DIR)
+
.PHONY: docs
docs:
+ mkdir -p $(DOXYGEN_DIR)
$(DOXYGEN)
.PHONY: clean