]> git.mdlowis.com Git - projs/libcds.git/commitdiff
Added distribution tarball generation to the makefile master
authorMike Lowis <mike.lowis@gentex.com>
Wed, 30 Dec 2015 13:06:53 +0000 (13:06 +0000)
committerMike Lowis <mike.lowis@gentex.com>
Wed, 30 Dec 2015 13:06:53 +0000 (13:06 +0000)
Makefile

index 34f9d2f6cc245615b69aa004186d8db00a628130..95bf8da027abe4406a998cd933b2d7a372ace4e0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -3,6 +3,9 @@
 #------------------------------------------------------------------------------
 # Update these variables according to your requirements.
 
+# version
+VERSION = 0.0.1
+
 # tools
 CC = c99
 LD = ${CC}
@@ -34,23 +37,25 @@ ARCHIVE = @echo AR $@; ${AR} ${ARFLAGS} $@ $^
 CLEAN   = @rm -f
 
 #------------------------------------------------------------------------------
-# Build Targets and Rules
+# Build-Specific Macros
 #------------------------------------------------------------------------------
+# Library macros and rules
 LIBNAME = cds
-LIB  = lib${LIBNAME}.a
-DEPS = ${OBJS:.o=.d}
-OBJS = source/vector/vec.o      \
-       source/map/map.o         \
-       source/string/str.o      \
-       source/rbt/rbt.o         \
-       source/mem/mem.o         \
-       source/murmur3/murmur3.o \
-       source/buffer/buf.o      \
-       source/list/list.o       \
-       source/exn/exn.o         \
-       source/set/set.o         \
-       source/cmp/cmp.o
-
+LIB     = lib${LIBNAME}.a
+DEPS    = ${OBJS:.o=.d}
+OBJS    = source/vector/vec.o      \
+          source/map/map.o         \
+          source/string/str.o      \
+          source/rbt/rbt.o         \
+          source/mem/mem.o         \
+          source/murmur3/murmur3.o \
+          source/buffer/buf.o      \
+          source/list/list.o       \
+          source/exn/exn.o         \
+          source/set/set.o         \
+          source/cmp/cmp.o
+
+# Test binary macros
 TEST_BIN  = test${LIBNAME}
 TEST_DEPS = ${TEST_OBJS:.o=.d}
 TEST_OBJS = tests/main.o      \
@@ -64,9 +69,20 @@ TEST_OBJS = tests/main.o      \
             tests/test_buf.o  \
             tests/test.o
 
+# Distribution dir and tarball settings
+DISTDIR   = ${LIBNAME}-${VERSION}
+DISTTAR   = ${DISTDIR}.tar
+DISTGZ    = ${DISTTAR}.gz
+DISTFILES = config.mk LICENSE.md Makefile README.md source tests
+
 # load user-specific settings
 -include config.mk
 
+#------------------------------------------------------------------------------
+# Phony Targets
+#------------------------------------------------------------------------------
+.PHONY: all options tests dist
+
 all: options ${LIB} ${TEST_BIN} tests
 
 options:
@@ -79,13 +95,28 @@ options:
        @echo "  ARFLAGS  = ${ARFLAGS}"
 
 tests: ${TEST_BIN}
-       -./$<
+       -./${TEST_BIN}
+
+dist: clean
+       @echo DIST ${DISTGZ}
+       @mkdir -p ${DISTDIR}
+       @cp -R ${DISTFILES} ${DISTDIR}
+       @tar -cf ${DISTTAR} ${DISTDIR}
+       @gzip ${DISTTAR}
+       @rm -rf ${DISTDIR}
 
 clean:
        ${CLEAN} ${LIB} ${TEST_BIN} ${OBJS} ${TEST_OBJS} ${DEPS} ${TEST_DEPS}
        ${CLEAN} ${OBJS:.o=.gcno} ${OBJS:.o=.gcda}
        ${CLEAN} ${TEST_OBJS:.o=.gcno} ${TEST_OBJS:.o=.gcda}
        ${CLEAN} ${DEPS} ${TEST_DEPS}
+       ${CLEAN} ${DISTTAR} ${DISTGZ}
+
+#------------------------------------------------------------------------------
+# Target-Specific Rules
+#------------------------------------------------------------------------------
+.c.o:
+       ${COMPILE}
 
 ${LIB}: ${OBJS}
        ${ARCHIVE}
@@ -93,12 +124,7 @@ ${LIB}: ${OBJS}
 ${TEST_BIN}: ${TEST_OBJS} ${LIB}
        ${LINK}
 
-.c.o:
-       ${COMPILE}
-
 # load dependency files
 -include ${DEPS}
 -include ${TEST_DEPS}
 
-.PHONY: all options tests
-