diff --git a/.gitignore b/.gitignore index 0897599..d757bf1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,7 +12,8 @@ !ChangeLog !doc/* -!Makefile +!Makefile.am +!configure.ac *~ *.swp diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..fb15be4 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "dependencies/csptr"] + path = dependencies/csptr + url = https://github.com/Snaipe/c-smart-pointers.git diff --git a/Makefile b/Makefile deleted file mode 100644 index c6bf7d4..0000000 --- a/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -CC = gcc -CFLAGS = -Wall -Wextra -std=gnu99 -Isrc/ -Iinclude/ -g - -SRCS = runner.c report.c event.c stats.c -OBJS = $(addprefix src/,$(subst .c,.o,$(SRCS))) - -sample: samples/simple.o libcriterion.a - $(LINK.o) -o $@ $< -L. -lcriterion -lcsptr - -libcriterion.a: $(OBJS) - $(AR) cru $@ $^ - -clean: - $(RM) $(OBJS) samples/simple.o - -distclean: clean - $(RM) libcriterion.a sample diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..618be24 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,40 @@ +ACLOCAL_AMFLAGS = -I m4 +SUBDIRS = dependencies/csptr samples + +lib_LTLIBRARIES = libcriterion.la + +WARNINGS = -Wall -Wextra \ + -Wno-unused-result -Wno-missing-field-initializers + +libcriterion_la_CFLAGS = \ + $(WARNINGS) \ + -std=gnu11 \ + -fplan9-extensions \ + -I$(top_srcdir)/include/ \ + $(COVERAGE_CFLAGS) + +libcriterion_la_LDFLAGS = $(COVERAGE_LDFLAGS) + +# dirty but unless someone has a better alternative... +libcriterion_la_LIBADD = dependencies/csptr/src/libcsptr_la-*.lo + +EXTRA_DIST = LICENSE + +subdirincludedir = $(includedir)/criterion/ +subdirinclude_HEADERS = \ + include/criterion/assert.h \ + include/criterion/common.h \ + include/criterion/criterion.h \ + include/criterion/event.h \ + include/criterion/hooks.h \ + include/criterion/stats.h + +libcriterion_la_SOURCES = \ + src/event.c \ + src/event.h \ + src/report.c \ + src/report.h \ + src/runner.c \ + src/runner.h \ + src/stats.c \ + src/stats.h diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..e141d59 --- /dev/null +++ b/configure.ac @@ -0,0 +1,38 @@ +AC_PREREQ([2.60]) + +AC_INIT([criterion], [1.0], [], [criterion], [franklinmathieu@gmail.com]) +AC_CONFIG_SRCDIR([src/runner.c]) + +LT_PREREQ([2.2.4]) +AC_CANONICAL_SYSTEM + +AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip foreign subdir-objects parallel-tests color-tests]) +LT_INIT([disable-shared]) +AC_CONFIG_MACRO_DIR([m4]) + +AC_PROG_CC +AM_PROG_CC_C_O + +AC_PROG_LIBTOOL +AC_PROG_INSTALL +AC_PROG_LN_S + +AC_PROG_MAKE_SET +AC_SUBST([LIBTOOL_DEPS]) + +AC_ARG_ENABLE([gcov], + [AS_HELP_STRING([--enable-gcov], + [Compile the project with converage enabled])], + [COVERAGE_CFLAGS="-O0 -fprofile-arcs -ftest-coverage" + COVERAGE_LDFLAGS="-lgcov" + AC_SUBST([COVERAGE_CFLAGS]) + AC_SUBST([COVERAGE_LDFLAGS]) + ], + []) + +AC_CONFIG_HEADERS([src/config.h]) +AC_CONFIG_FILES([Makefile samples/Makefile]) + +AC_CONFIG_SUBDIRS([dependencies/csptr]) + +AC_OUTPUT diff --git a/dependencies/csptr b/dependencies/csptr new file mode 160000 index 0000000..333c650 --- /dev/null +++ b/dependencies/csptr @@ -0,0 +1 @@ +Subproject commit 333c650c515204d02b40aed4c3c531b6c56159bf diff --git a/samples/Makefile.am b/samples/Makefile.am new file mode 100644 index 0000000..0de96d6 --- /dev/null +++ b/samples/Makefile.am @@ -0,0 +1,8 @@ +TESTS = signal simple + +check_PROGRAMS = signal simple +CFLAGS = -I$(top_srcdir)/include/ +LDADD = -L$(top_srcdir)/ -lcriterion + +signal_SOURCES = signal.c +simple_SOURCES = simple.c