rework build to not distribute tests unless --enable-devel is specificied to autoconf
This commit is contained in:
1 parent
d8a072ca01
commit
43fd939f16
4 files changed
+69
-34
No files matched your search
+31
-12
@@ -44,10 +44,14 @@ JQ_SRC = \
|
||||
jv_aux.c \
|
||||
jv_alloc.c \
|
||||
lexer.c \
|
||||
$(JQ_INCS)
|
||||
${JQ_INCS}
|
||||
|
||||
if DEVCFLAGS_ENABLED
|
||||
DEVCFLAGS = -Wextra -Wall -Wno-missing-field-initializers -Wno-unused-parameter -std=gnu99 -ggdb -Wno-unused-function
|
||||
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
|
||||
|
||||
# Tell YACC (bison) autoconf macros that you want a header file created.
|
||||
@@ -55,15 +59,31 @@ endif
|
||||
# OSX ships an old bison, so update with homebrew or macports
|
||||
AM_YFLAGS = --warnings=all -d
|
||||
|
||||
bin_PROGRAMS = jq jq_test
|
||||
bin_PROGRAMS = jq
|
||||
BUILT_SOURCES = jv_utf8_tables.gen.h lexer.h lexer.c
|
||||
jq_SOURCES = $(JQ_SRC) main.c
|
||||
jq_CPPFLAGS = $(DEVCFLAGS) -O -DJQ_DEBUG=0
|
||||
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
|
||||
|
||||
DEVBUILD=no
|
||||
endif
|
||||
|
||||
jq_test_SOURCES = ${JQ_SRC} jq_test.c
|
||||
jq_test_CPPFLAGS = ${DEVCFLAGS}
|
||||
|
||||
# this is what gets "make check" to work
|
||||
TESTS = jq_test
|
||||
jq_test_SOURCES = $(JQ_SRC) jq_test.c
|
||||
jq_test_CPPFLAGS = $(DEVCFLAGS) -DJQ_DEBUG=1
|
||||
LOG_COMPILER = valgrind
|
||||
AM_LOG_FLAGS = --error-exitcode=1 -q --leak-check=full
|
||||
|
||||
@@ -93,15 +113,14 @@ main.c: config.h
|
||||
releasetag:
|
||||
git tag -s "jq-$$(cat VERSION)" -m "jq release $$(cat VERSION)"
|
||||
|
||||
# can probably delete and have RPM created off autoconf generated tarball releases
|
||||
RELEASE ?= 1
|
||||
rpm: jq jq_test
|
||||
rpm: ${RPMBINS}
|
||||
@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 "version $$(cat VERSION)" --define "release ${RELEASE}" rpm/SOURCES/jq-$$(cat VERSION).tar.gz
|
||||
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
|
||||
find rpm/RPMS/ -name "*.rpm" -exec mv {} ./ \;
|
||||
rm -rf rpm
|
||||
|
||||
dist-clean-local:
|
||||
rm -f $(BUILT_SOURCES)
|
||||
rm -f ${BUILT_SOURCES}
|
||||
+10
-10
@@ -22,16 +22,16 @@ dnl developers like them by default but the packager can disable if so
|
||||
dnl desired. This is useful if something other than gcc is needed or
|
||||
dnl for distros that need to heavily tweek the compiler (gentoo, ARM cpu
|
||||
dnl linux's, etc)
|
||||
AC_ARG_ENABLE([devcflags],
|
||||
[AC_HELP_STRING([--enable-devcflags=@<:@yes/no@:>@],
|
||||
[Enable the same CFLAGS used by jq developers @<:@default=yes@:>@])],
|
||||
[enable_devcflags=$enableval],
|
||||
[enable_devcflags=yes])
|
||||
AC_MSG_RESULT($enable_devcflags)
|
||||
dnl AM_CONDITIONAL(DEVCFLAGS, test x$enable_devcflags = xyes)
|
||||
if test "$enable_devcflags" = "yes"; then
|
||||
AM_CONDITIONAL(DEVCFLAGS_ENABLED, true)
|
||||
fi
|
||||
AC_ARG_ENABLE(
|
||||
[devel],
|
||||
[AC_HELP_STRING(
|
||||
[--enable-devel],
|
||||
[Build the tests and enable the same CFLAGS used by jq developers @<:@default=no@:>@])],
|
||||
[],
|
||||
[enable_devel=no]
|
||||
)
|
||||
AC_MSG_RESULT($enable_devel)
|
||||
AM_CONDITIONAL([DEVELOPMENT_ENABLED], [test x$enable_devel = xyes])
|
||||
|
||||
dnl
|
||||
dnl these program checks should probably be deleted
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
# Your OS of choice will likely ignore this RPM spec file.
|
||||
Summary: Command-line JSON processor
|
||||
Name: jq
|
||||
Version: %{version}
|
||||
Release: %{release}
|
||||
Source0: jq-%{version}.tar.gz
|
||||
Version: %{myver}
|
||||
Release: %{myrel}%{?dist}
|
||||
Source0: jq-%{myver}.tar.gz
|
||||
URL: https://github.com/stedolan/jq
|
||||
License: BSD
|
||||
AutoReqProv: no
|
||||
@@ -18,16 +18,22 @@ Group: Applications/System
|
||||
%global debug_package %{nil}
|
||||
%global __os_install_post %{nil}
|
||||
|
||||
# Crank up the compression
|
||||
%define _binary_payload w7.lzdio
|
||||
|
||||
%description
|
||||
jq is a command-line JSON processor
|
||||
|
||||
%prep
|
||||
|
||||
%setup
|
||||
|
||||
%build
|
||||
echo "Building in: \"$(pwd)\""
|
||||
%if "%{devbuild}" == "yes"
|
||||
./configure --prefix=%{_prefix} --enable-devel
|
||||
%else
|
||||
./configure --prefix=%{_prefix}
|
||||
%endif
|
||||
make
|
||||
|
||||
%install
|
||||
@@ -40,13 +46,16 @@ rm -rf %{buildroot}
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/jq
|
||||
%{_bindir}/jq_test
|
||||
%{_datadir}/doc/jq/AUTHORS
|
||||
%{_datadir}/doc/jq/COPYING
|
||||
%{_datadir}/doc/jq/INSTALL
|
||||
%{_datadir}/doc/jq/NEWS
|
||||
%{_datadir}/doc/jq/README
|
||||
%{_datadir}/doc/jq/README.md
|
||||
%if "%{devbuild}" == "yes"
|
||||
%{_libexecdir}/%{name}/jq_test
|
||||
%{_libexecdir}/%{name}/testdata
|
||||
%endif
|
||||
%{_datadir}/doc/%{name}/AUTHORS
|
||||
%{_datadir}/doc/%{name}/COPYING
|
||||
%{_datadir}/doc/%{name}/INSTALL
|
||||
%{_datadir}/doc/%{name}/NEWS
|
||||
%{_datadir}/doc/%{name}/README
|
||||
%{_datadir}/doc/%{name}/README.md
|
||||
|
||||
%changelog
|
||||
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# RUN ME after pulling the code from git!
|
||||
#
|
||||
# This script is handy after pulling the code out of git without having
|
||||
# to remember all the typing needed to build up and tear down all the
|
||||
# crap that autotools puts in your source repo. The intent is to keep
|
||||
# all generated files out of git.
|
||||
|
||||
if [ "clean" == "$1" ]; then
|
||||
make distclean || echo "continuing..."
|
||||
rm -rf tmp autom4te.cache config
|
||||
rm -f INSTALL Makefile.in aclocal.m4 configure config.h.in ChangeLog
|
||||
rm -f jv_utf8_tables.gen.h lexer.c lexer.h parser.c parser.h
|
||||
elif [ "superclean" == "$1" ]; then
|
||||
# if autoconf errors during distcheck, it leaves files that need chmod'ing
|
||||
ver=$(tr -d '\n' <VERSION)
|
||||
if [ "x${ver}" != "x" ]; then
|
||||
if [ -d jq-${ver} ]; then
|
||||
@@ -17,7 +24,7 @@ elif [ "superclean" == "$1" ]; then
|
||||
fi
|
||||
else
|
||||
autoreconf --install
|
||||
./configure --prefix=/opt/junk
|
||||
./configure --enable-devel --prefix=/opt/junk
|
||||
make check
|
||||
mkdir tmp
|
||||
make DESTDIR=./tmp install
|
||||
|
||||
Reference in new issue
Block a user