ledger/Makefile.am

328 lines
7.9 KiB
Makefile

lib_LTLIBRARIES = libamounts.la libledger.la
libamounts_la_CPPFLAGS = -I$(srcdir)/src
libamounts_la_SOURCES = \
src/utils.cc \
src/times.cc \
src/mask.cc \
src/binary.cc \
\
src/amount.cc \
src/commodity.cc \
src/balance.cc \
src/value.cc \
\
src/token.cc \
src/parser.cc \
src/op.cc \
src/expr.cc \
src/scope.cc \
src/format.cc \
src/option.cc
if HAVE_EXPAT
libamounts_la_CPPFLAGS += -DHAVE_EXPAT=1
else
if HAVE_XMLPARSE
libamounts_la_CPPFLAGS += -DHAVE_XMLPARSE=1
endif
endif
if HAVE_LIBOFX
libamounts_la_CPPFLAGS += -DHAVE_LIBOFX=1
endif
if HAVE_BOOST_PYTHON
endif
if DEBUG
libamounts_la_CPPFLAGS += -DDEBUG_MODE
endif
libledger_la_CPPFLAGS = $(libamounts_la_CPPFLAGS)
libledger_la_LDFLAGS = -release 3.0.0
libledger_la_SOURCES = \
src/journal.cc \
src/entry.cc \
src/xact.cc \
src/account.cc \
src/iterators.cc \
src/compare.cc \
\
src/textual.cc \
src/cache.cc \
src/emacs.cc \
src/qif.cc \
src/xml.cc \
src/csv.cc \
\
src/session.cc \
src/report.cc \
src/filters.cc \
src/output.cc \
src/help.cc \
\
src/derive.cc \
src/reconcile.cc \
src/quotes.cc
if HAVE_BOOST_PYTHON
Python_ledger_SRC = \
python/pyledger.cc \
python/pyinterp.cc \
python/py_amount.cc \
python/py_commodity.cc \
python/py_times.cc \
python/py_utils.cc
libledger_la_SOURCES += $(Python_ledger_SRC)
libledger_la_CPPFLAGS += -DUSE_BOOST_PYTHON=1 -I$(srcdir)/python
endif
if HAVE_EXPAT
libledger_la_SOURCES += src/gnucash.cc
else
if HAVE_XMLPARSE
libledger_la_SOURCES += src/gnucash.cc
endif
endif
if HAVE_LIBOFX
libledger_la_SOURCES += src/ofx.cc
endif
pkginclude_HEADERS = \
acconf.h \
src/system.hh \
src/fdstream.h \
src/utils.h \
src/flags.h \
src/hooks.h \
src/pushvar.h \
src/error.h \
src/times.h \
src/mask.h \
src/binary.h \
\
src/amount.h \
src/commodity.h \
src/balance.h \
src/balpair.h \
src/value.h \
\
src/token.h \
src/parser.h \
src/op.h \
src/expr.h \
src/scope.h \
src/predicate.h \
src/format.h \
src/option.h \
\
src/journal.h \
src/entry.h \
src/xact.h \
src/account.h \
src/iterators.h \
src/compare.h \
\
src/textual.h \
src/cache.h \
src/emacs.h \
src/qif.h \
src/xml.h \
src/csv.h \
src/gnucash.h \
src/ofx.h \
\
src/session.h \
src/report.h \
src/handler.h \
src/filters.h \
src/output.h \
src/help.h \
\
src/derive.h \
src/reconcile.h \
src/quotes.h \
\
src/ledger.h
CLEANFILES =
if USE_PCH
nodist_libledger_la_SOURCES = src/system.hh.gch
BUILT_SOURCES = src/system.hh.gch
CLEANFILES += src/system.hh.gch
$(srcdir)/src/system.hh.gch: $(srcdir)/src/system.hh $(top_builddir)/acconf.h
$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(libledger_la_CPPFLAGS) \
$(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \
-g -o $@ $(srcdir)/src/system.hh
endif
######################################################################
bin_PROGRAMS = ledger
ledger_CPPFLAGS = $(libledger_la_CPPFLAGS)
ledger_SOURCES = src/main.cc
ledger_LDADD = $(LIBOBJS) libamounts.la libledger.la
ledger_LDFLAGS = -static
info_TEXINFOS = doc/ledger.texi
dist_lisp_LISP = lisp/ledger.el lisp/timeclock.el
DISTCLEANFILES = ledger.elc timeclock.elc
######################################################################
if HAVE_BOOST_PYTHON
noinst_PROGRAMS = ledger.so
CLEANFILES += ledger.so
clean-local:
rm -fr build
ledger_so_SOURCES = $(Python_ledger_SRC)
ledger_so_DEPENDENCIES = $(lib_LTLIBRARIES)
PYLIBS = amounts ledger gmp \
boost_date_time$(BOOST_SUFFIX) \
boost_filesystem$(BOOST_SUFFIX) \
boost_regex$(BOOST_SUFFIX) \
boost_python$(BOOST_SUFFIX)
if HAVE_LIBOFX
PYLIBS += ofx
endif
ledger.so: $(ledger_so_SOURCES) $(ledger_so_DEPENDENCIES)
CFLAGS="$(CPPFLAGS) -I$(srcdir) $(libledger_la_CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)" \
LDFLAGS="$(LDFLAGS) -L$(top_builddir) -L$(top_builddir)/.libs" \
ARCHFLAGS="$(ARCHFLAGS)" PYLIBS="$(PYLIBS)" SRCDIR="$(srcdir)" \
python $(srcdir)/python/setup.py build --build-lib=$(top_builddir)
install-exec-hook:
CFLAGS="$(CPPFLAGS) -I$(srcdir) $(libledger_la_CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)" \
LDFLAGS="$(LDFLAGS) -L$(top_builddir) -L$(top_builddir)/.libs" \
ARCHFLAGS="$(ARCHFLAGS)" PYLIBS="$(PYLIBS)" SRCDIR="$(srcdir)" \
python $(srcdir)/python/setup.py install --prefix=$(prefix)
endif
######################################################################
TESTS = RegressionTests
XFAIL_TESTS = RegressionTests # jww (2008-08-07): for now
if HAVE_CPPUNIT
TESTS += UnitTests
endif
if HAVE_BOOST_PYTHON
TESTS += PyUnitTests
endif
check_PROGRAMS = $(TESTS)
UnitTests_SOURCES = \
test/UnitTests.cc \
test/UnitTests.h \
test/unit/t_utils.cc \
test/unit/t_utils.h \
test/unit/t_times.cc \
test/unit/t_times.h \
test/unit/t_commodity.cc \
test/unit/t_commodity.h \
test/unit/t_amount.cc \
test/unit/t_amount.h \
test/unit/t_balance.cc \
test/unit/t_balance.h \
test/unit/t_expr.cc \
test/unit/t_expr.h
UnitTests_CPPFLAGS = -I$(srcdir)/test $(libledger_la_CPPFLAGS)
UnitTests_LDFLAGS = $(LIBADD_DL)
UnitTests_LDADD = $(lib_LTLIBRARIES) -lcppunit
EXTRA_DIST = test/python
PyUnitTests_SOURCES = test/__init__.py test/PyUnitTests.py
ESC_srcdir=`echo "$(srcdir)" | sed 's/\//\\\\\//g'`
ESC_builddir=`echo "$(top_builddir)" | sed 's/\//\\\\\//g'`
ESC_distdir=`echo "$(distdir)" | sed 's/\//\\\\\//g'`
# jww (2007-05-10): This rule will not be triggered on systems that
# define an EXEEXT.
PyUnitTests: $(srcdir)/test/PyUnitTests.py
cat $(srcdir)/test/PyUnitTests.py \
| sed "s/%srcdir%/$(ESC_srcdir)/g" \
| sed "s/%builddir%/$(ESC_builddir)/g" > $@
chmod 755 $@
RegressionTests_SOURCES = test/regress.py
EXTRA_DIST += test/regress
RegressionTests: $(srcdir)/test/regress.py
echo "python $(srcdir)/test/regress.py $(top_builddir)/ledger$(EXEEXT) $(srcdir)/test/regress" > $@
chmod 755 $@
fullcheck: check
MallocGuardEdges=1 \
MallocScribble=1 \
MallocPreScribble=1 \
MallocCheckHeapStart=100 \
MallocCheckHeapEach=100 \
DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib \
$(srcdir)/valgrind.sh $(top_builddir)/UnitTests$(EXEEXT) --verify
######################################################################
EXTRA_DIST += LICENSE NEWS README contrib
EXTRA_DIST += doc/Doxyfile doc/ledger.pdf doc/refman.pdf
DISTCLEANFILES += doc/ledger.info doc/ledger.pdf \
Doxyfile.gen doc/Doxyfile.bak doc/refman.pdf
dist-hook:
find $(distdir) -name .DS_Store -delete
find $(distdir) -name .localized -delete
find $(distdir)/doc -name .dirstamp -delete
rm -fr $(distdir)/doc/latex \
$(distdir)/doc/Doxyfile.bak \
$(distdir)/doc/Doxyfile.gen
cp -pR $(srcdir)/doc/html $(distdir)/doc
distclean-local:
rm -fr doc/html doc/latex doc/refman.pdf
$(top_builddir)/Doxyfile.gen: $(srcdir)/doc/Doxyfile
cat $(srcdir)/doc/Doxyfile \
| sed "s/%srcdir%/$(ESC_srcdir)/g" \
| sed "s/%builddir%/$(ESC_builddir)/g" > $@
$(top_builddir)/doc/html/index.html: $(top_builddir)/Doxyfile.gen
doxygen $(top_builddir)/Doxyfile.gen
# The intention with the following rules is that all of the Doxygen
# documentation (both HTML and PDF) is built locally before distcheck is
# run, since it's quite possible that the user will not have a complete
# TeX + Doxygen + dot environment on their own system.
$(top_builddir)/doc/refman.pdf: $(top_builddir)/doc/html/index.html
(cd $(top_builddir)/doc/latex && make)
cp $(top_builddir)/doc/latex/refman.pdf $@
docs: pdf $(top_builddir)/doc/refman.pdf
fulltest:
rsync -av --delete $(srcdir)/ /tmp/ledger/
(cd /tmp/ledger; \
git clean -x -d -f; \
./myacprep --release --build -j3 distcheck)
# Makefile.am ends here