--- /dev/null
+Copyright (c) 2015, Mike Lowis
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
#------------------------------------------------------------------------------
# Update these variables according to your requirements.
+# version
+VERSION = 0.0.1
+
# tools
CC = c99
LD = ${CC}
CLEAN = @rm -f
#------------------------------------------------------------------------------
-# Build Targets and Rules
+# Build-Specific Macros
#------------------------------------------------------------------------------
+# Main build settings
LIBNAME = onward
LIB = lib${LIBNAME}.a
BIN = ${LIBNAME}
DEPS = ${OBJS:.o=.d}
OBJS = source/onward.o source/main.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 dist
+
all: options ${LIB} ${BIN}
options:
@echo " AR = ${AR}"
@echo " ARFLAGS = ${ARFLAGS}"
-${LIB}: ${OBJS}
- ${ARCHIVE}
+dist: clean
+ @echo DIST ${DISTGZ}
+ @mkdir -p ${DISTDIR}
+ @cp -R ${DISTFILES} ${DISTDIR}
+ @tar -cf ${DISTTAR} ${DISTDIR}
+ @gzip ${DISTTAR}
+ @rm -rf ${DISTDIR}
-${BIN}: ${LIB}
- ${LINK}
+clean:
+ ${CLEAN} ${LIB} ${BIN} ${OBJS} ${DEPS}
+ ${CLEAN} ${OBJS:.o=.gcno} ${OBJS:.o=.gcda}
+ ${CLEAN} ${DEPS} ${TEST_DEPS}
+ ${CLEAN} ${DISTTAR} ${DISTGZ}
+#------------------------------------------------------------------------------
+# Target-Specific Rules
+#------------------------------------------------------------------------------
.c.o:
${COMPILE}
-clean:
- ${CLEAN} ${LIB} ${BIN} ${OBJS} ${DEPS}
- ${CLEAN} ${OBJS:.o=.gcno} ${OBJS:.o=.gcda}
+${LIB}: ${OBJS}
+ ${ARCHIVE}
+
+${BIN}: ${LIB}
+ ${LINK}
# load dependency files
-include ${DEPS}
-.PHONY: all options
-