summaryrefslogtreecommitdiffstats
path: root/Makefile.am
diff options
context:
space:
mode:
authorStephen Dolan <mu@netsoc.tcd.ie>2013-05-08 02:30:08 +0100
committerStephen Dolan <mu@netsoc.tcd.ie>2013-05-08 02:42:23 +0100
commitd121420757001950604473f5b0f7a592caa1433e (patch)
treefe1d5c043fdc81d8b431d2558e83120860bf11c2 /Makefile.am
parent1ebb3825400074dc62e92d161f76a57ef4fd40d4 (diff)
Clean up autotools config.
Remove some of @stagrlee's hard work since jq's testsuite is less silly than when he wrote the autotools config.
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am175
1 files changed, 47 insertions, 128 deletions
diff --git a/Makefile.am b/Makefile.am
index 2aa2dda0..5018439f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,164 +1,83 @@
-# Converted to automake by thompson@dtosolutions.com 26NOV12
+### C source files to be built
-# setup is only used by distribution developers, not package developers.
-# Still, as a matter of allowing patching, its not a bad idea to distribute
-# the developer setup script in the tarball.
-EXTRA_DIST = \
- setup.sh \
- config.h.in \
- ChangeLog \
- VERSION \
- lexer.l \
- lexer.h \
- gen_utf8_tables.py \
- jq.spec \
- testdata \
- docs/content/1.tutorial/default.yml \
- docs/content/2.download/default.yml \
- docs/content/3.manual/manual.yml \
- docs/content/index/index.yml \
- docs/Gemfile \
- docs/Gemfile.lock \
- docs/public/.htaccess \
- docs/public/bootstrap/css/bootstrap-responsive.css \
- docs/public/bootstrap/css/bootstrap-responsive.min.css \
- docs/public/bootstrap/css/bootstrap.css \
- docs/public/bootstrap/css/bootstrap.min.css \
- docs/public/bootstrap/img/glyphicons-halflings-white.png \
- docs/public/bootstrap/img/glyphicons-halflings.png \
- docs/public/bootstrap/js/bootstrap.js \
- docs/public/bootstrap/js/bootstrap.min.js \
- docs/public/css/base.scss \
- docs/public/jq.png \
- docs/public/robots.txt \
- docs/Rakefile \
- docs/site.yml \
- docs/templates/default.liquid \
- docs/templates/index.liquid \
- docs/templates/manual.liquid \
- docs/templates/shared/_footer.liquid \
- docs/templates/shared/_head.liquid \
- docs/templates/shared/_header.liquid
+JQ_INCS = jq_parser.h builtin.h bytecode.h compile.h execute.h \
+ forkable_stack.h frame_layout.h jv.h jv_alloc.h jv_aux.h jv_dtoa.h \
+ jv_parse.h jv_unicode.h locfile.h opcode.h opcode_list.h parser.y \
+ jv_utf8_tables.h
-# README.md is expected in Github projects, good stuff in it, so we'll
-# distribute it and install it with the package in the doc directory.
-docdir = ${datadir}/doc/${PACKAGE}
-dist_doc_DATA = README.md INSTALL COPYING AUTHORS README NEWS
+JQ_SRC = opcode.c bytecode.c compile.c execute.c builtin.c jv.c \
+ jv_parse.c jv_print.c jv_dtoa.c jv_unicode.c jv_aux.c jv_alloc.c \
+ lexer.c jq_test.c ${JQ_INCS}
+
+
+### C build options
-JQ_INCS = \
- jq_parser.h \
- builtin.h \
- bytecode.h \
- compile.h \
- execute.h \
- forkable_stack.h \
- frame_layout.h \
- jv.h \
- jv_alloc.h \
- jv_aux.h \
- jv_dtoa.h \
- jv_parse.h \
- jv_unicode.h \
- locfile.h \
- opcode.h \
- opcode_list.h \
- parser.y \
- jv_utf8_tables.gen.h
-
-JQ_SRC = \
- opcode.c \
- bytecode.c \
- compile.c \
- execute.c \
- builtin.c \
- jv.c \
- jv_parse.c \
- jv_print.c \
- jv_dtoa.c \
- jv_unicode.c \
- jv_aux.c \
- jv_alloc.c \
- lexer.c \
- ${JQ_INCS}
-
-if DEVELOPMENT_ENABLED
-DEVCFLAGS = -Wextra -Wall -Wno-missing-field-initializers -Wno-unused-parameter -std=gnu99 -ggdb -Wno-unused-function -O0 -DJQ_DEBUG=1
-RPMBINS = jq jq_test
-else
-DEVCFLAGS = -DJQ_DEBUG=0
-RPMBINS = jq
-endif
+AM_CFLAGS = -Wextra -Wall -Wno-missing-field-initializers \
+ -Wno-unused-parameter -Wno-unused-function
+
+
+### Generating the lexer and parser
+
+# While there is some autoconf macro support for lex/flex, it doesn't support
+# header file creation so we'll use good old make
+BUILT_SOURCES = lexer.h lexer.c
+lexer.c: lexer.l
+ flex -o lexer.c --header-file=lexer.h lexer.l
+lexer.h: lexer.c
# Tell YACC (bison) autoconf macros that you want a header file created.
# If the --warnings=all fails, you probably have an old version of bison
# OSX ships an old bison, so update with homebrew or macports
AM_YFLAGS = --warnings=all -d
-bin_PROGRAMS = jq
-BUILT_SOURCES = jv_utf8_tables.gen.h lexer.h lexer.c
-jq_SOURCES = ${JQ_SRC} main.c
-jq_CPPFLAGS = ${DEVCFLAGS}
-# always test, but conditionally distribute to /usr/libexec/jq/jq_test
-if DEVELOPMENT_ENABLED
- pkglibexec_PROGRAMS = jq_test
- # automake doesn't like putting data in libexec (pkglibexec_DATA)
- # so we'll create our own macro and distribute testdata
- mydatadir = ${libexecdir}/${PACKAGE}
- mydata_DATA = testdata
- DEVBUILD=yes
-else
- noinst_PROGRAMS = jq_test
+### Building the jq binary
- DEVBUILD=no
-endif
+main.c: config.h
-jq_test_SOURCES = ${JQ_SRC} jq_test.c
-jq_test_CPPFLAGS = ${DEVCFLAGS}
+bin_PROGRAMS = jq
+jq_SOURCES = ${JQ_SRC} main.c
-# this is what gets "make check" to work
-TESTS = jq_test
-LOG_COMPILER = valgrind
-AM_LOG_FLAGS = --error-exitcode=1 -q --leak-check=full
-man_MANS = jq.1
+### Tests
-jq.1 :
- cd ${abs_srcdir}/docs; rake manpage > ${abs_builddir}/$@
+# this is what gets "make check" to work
+TESTS = tests/all.test
+TEST_LOG_COMPILER = tests/run
-# nasty circular dependency on header files between the generated C files
-parser.o: lexer.c
-lexer.o: parcer.c
-lexer.c: parser.h
+### Packaging
-# While there is some autoconf macro support for lex/flex, it doesn't support
-# header file creation so we'll use good old make
-lexer.c: lexer.l
- flex -o lexer.c --header-file=lexer.h lexer.l
-lexer.h: lexer.c
+# setup is only used by distribution developers, not package developers.
+# Still, as a matter of allowing patching, its not a bad idea to distribute
+# the developer setup script in the tarball.
+EXTRA_DIST = setup.sh config.h.in ChangeLog VERSION lexer.l lexer.h \
+ gen_utf8_tables.py jq.spec testdata
-jv_utf8_tables.gen.h: gen_utf8_tables.py
- python $^ > $@
+# README.md is expected in Github projects, good stuff in it, so we'll
+# distribute it and install it with the package in the doc directory.
+docdir = ${datadir}/doc/${PACKAGE}
+dist_doc_DATA = README.md INSTALL COPYING AUTHORS README NEWS
-jv_unicode.c: jv_utf8_tables.gen.h
+man_MANS = jq.1
+
+jq.1 :
+ cd ${abs_srcdir}/docs; rake manpage > ${abs_builddir}/$@
ChangeLog:
git log --name-status > $@ || echo "no changelog" > $@
-main.c: config.h
-
releasetag:
git tag -s "jq-$$(cat VERSION)" -m "jq release $$(cat VERSION)"
RELEASE ?= 1
-rpm: ${RPMBINS}
+rpm: jq
@echo "Packaging jq as an RPM ..."
mkdir -p rpm/SOURCES rpm/BUILD rpm/BUILDROOT rpm/RPMS rpm/SPECS
cp jq-$$(cat VERSION).tar.gz rpm/SOURCES/
- rpmbuild -tb --define "_topdir ${PWD}/rpm" --define "_prefix /usr" --define "myver $$(cat VERSION)" --define "myrel ${RELEASE}" --define "devbuild ${DEVBUILD}" rpm/SOURCES/jq-$$(cat VERSION).tar.gz
+ rpmbuild -tb --define "_topdir ${PWD}/rpm" --define "_prefix /usr" --define "myver $$(cat VERSION)" --define "myrel ${RELEASE}" rpm/SOURCES/jq-$$(cat VERSION).tar.gz
find rpm/RPMS/ -name "*.rpm" -exec mv {} ./ \;
rm -rf rpm