From: Mike Lowis Date: Wed, 30 Dec 2015 13:06:53 +0000 (+0000) Subject: Added distribution tarball generation to the makefile X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=fdcd55cb4ddb903b7c9a9ac984b60c3ae086ea78;p=projs%2Flibcds.git Added distribution tarball generation to the makefile --- diff --git a/Makefile b/Makefile index 34f9d2f..95bf8da 100644 --- 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 -