Most things are building, but not the Python code

This commit is contained in:
John Wiegley 2008-05-12 05:10:08 -04:00
parent 6f345c6578
commit 2ead28363a
4 changed files with 51 additions and 77 deletions

View file

@ -20,6 +20,15 @@ libamounts_la_SOURCES = \
value.cc \
times.cc \
utils.cc
if HAVE_EXPAT
libamounts_la_CPPFLAGS += -DHAVE_EXPAT=1
endif
if HAVE_XMLPARSE
libamounts_la_CPPFLAGS += -DHAVE_XMLPARSE=1
endif
if HAVE_LIBOFX
libamounts_la_CPPFLAGS += -DHAVE_LIBOFX=1
endif
if HAVE_BOOST_PYTHON
libamounts_la_CPPFLAGS += -DUSE_BOOST_PYTHON=1
endif
@ -27,7 +36,7 @@ if DEBUG
libamounts_la_CPPFLAGS += -DDEBUG_MODE
endif
libledger_la_CPPFLAGS =
libledger_la_CPPFLAGS = $(libamounts_la_CPPFLAGS)
libledger_la_SOURCES = \
binary.cc \
config.cc \
@ -49,20 +58,15 @@ libledger_la_SOURCES = \
xml.cc
# quotes.cc this is currently not being included
if HAVE_EXPAT
libledger_la_CPPFLAGS += -DHAVE_EXPAT=1
libledger_la_SOURCES += gnucash.cc
endif
if HAVE_XMLPARSE
libledger_la_CPPFLAGS += -DHAVE_XMLPARSE=1
libledger_la_SOURCES += gnucash.cc
endif
if HAVE_LIBOFX
libledger_la_CPPFLAGS += -DHAVE_LIBOFX=1
libledger_la_SOURCES += ofx.cc
endif
if DEBUG
libledger_la_CPPFLAGS += -DDEBUG_MODE
endif
libledger_la_LDFLAGS = -release 2.6.0.90
pkginclude_HEADERS = \
@ -104,36 +108,25 @@ nodist_libledger_la_SOURCES = system.hh.gch
BUILT_SOURCES += system.hh.gch
CLEANFILES += system.hh.gch system.hh
$(top_builddir)/system.hh.gch: $(srcdir)/src/utility/system.hh acconf.h
echo "#include \"src/utility/system.hh\"" > $(top_builddir)/system.hh
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(libledger_la_CPPFLAGS) \
-o $@ $(srcdir)/src/utility/system.hh
$(top_builddir)/system.hh.gch: $(srcdir)/system.hh $(top_builddir)/acconf.h
echo "#include \"$(srcdir)/system.hh\"" > $(top_builddir)/system.hh
$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(libledger_la_CPPFLAGS) \
$(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \
-g -o $@ $(srcdir)/system.hh
endif
######################################################################
bin_PROGRAMS = ledger
ledger_CPPFLAGS =
ledger_CPPFLAGS = $(libledger_la_CPPFLAGS)
ledger_SOURCES = main.cc
ledger_LDADD = $(LIBOBJS) libamounts.la libledger.la
if HAVE_EXPAT
ledger_CPPFLAGS += -DHAVE_EXPAT=1
endif
if HAVE_XMLPARSE
ledger_CPPFLAGS += -DHAVE_XMLPARSE=1
endif
if HAVE_LIBOFX
ledger_CPPFLAGS += -DHAVE_LIBOFX=1
endif
if DEBUG
ledger_CPPFLAGS += -DDEBUG_MODE
endif
ledger_LDFLAGS = -static # for the sake of command-line speed
info_TEXINFOS = ledger.texi
######################################################################
dist_lisp_LISP = ledger.el timeclock.el
DISTCLEANFILES = ledger.elc timeclock.elc
@ -152,13 +145,13 @@ clean-local:
PYLIBS = amounts gmp
amounts.so: amounts.cc libamounts.la
CFLAGS="$(CPPFLAGS) -I$(srcdir) $(libamounts_la_CPPFLAGS)" \
CFLAGS="$(CPPFLAGS) $(DEFAULT_INCLUDES) $(libamounts_la_CPPFLAGS)" \
LDFLAGS="$(LDFLAGS) -L. -L.libs" \
PYLIBS="$(PYLIBS)" SRCDIR="$(srcdir)" \
python $(srcdir)/setup.py build --build-lib=.
install-exec-hook:
CFLAGS="$(CPPFLAGS) -I$(srcdir) $(libamounts_la_CPPFLAGS)" \
CFLAGS="$(CPPFLAGS) $(DEFAULT_INCLUDES) $(libamounts_la_CPPFLAGS)" \
LDFLAGS="$(LDFLAGS) -L. -L.libs" \
PYLIBS="$(PYLIBS)" SRCDIR="$(srcdir)" \
python $(srcdir)/setup.py install --prefix=$(prefix)

13
acprep
View file

@ -57,7 +57,7 @@ LDFLAGS="$LIBDIRS"
LOCAL=false
# Warning flags
CXXFLAGS="$CXXFLAGS -Wall -ansi"
CXXFLAGS="$CXXFLAGS -Wall -ansi -Winvalid-pch"
#CXXFLAGS="$CXXFLAGS -Wextra"
#CXXFLAGS="$CXXFLAGS -Weffc++"
#CXXFLAGS="$CXXFLAGS -Wcast-align"
@ -78,7 +78,10 @@ CXXFLAGS="$CXXFLAGS -Wall -ansi"
while [ -n "$1" ]; do
case "$1" in
--devel)
SWITCHES="$SWITCHES --disable-shared --enable-pch"
#SWITCHES="$SWITCHES --disable-shared --enable-pch"
SWITCHES="$SWITCHES --disable-shared"
CPPFLAGS="$CPPFLAGS -DBOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING=1"
CPPFLAGS="$CPPFLAGS -DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE=1"
;;
--debug)
@ -127,13 +130,15 @@ if [ "$LOCAL" = "false" -a -d "$HOME/Products" ]; then
if [ -x version ]; then
version="-$(./version)"
fi
projdir="$HOME/Products/$(basename $HERE)$version"
projdir="$HOME/Products/$(basename $HERE)"
rm -fr ${projdir}*
projdir="$projdir$version"
if [ ! -d "$projdir" ]; then
mkdir -p "$projdir"
fi
cd "$projdir" || (echo "Cannot change to $projdir"; exit 1)
fi
"$HERE/configure" --srcdir="$HERE" \
"$HERE/configure" --srcdir="$HERE" CXX="$CXX" \
CPPFLAGS="$CPPFLAGS" CXXFLAGS="$CXXFLAGS $local_cxxflags" \
LDFLAGS="$LDFLAGS" LIBS="$LIBS" $SWITCHES "$@"

View file

@ -15,6 +15,5 @@ setup(name = "Ledger",
url = "http://www.newartisans.com/software/ledger.html",
ext_modules = [
Extension("ledger",
[os.path.join(os.environ['SRCDIR'],
"src", "python", "pyledger.cc")],
[os.path.join(os.environ['SRCDIR'], "pyledger.cc")],
define_macros = defines, libraries = libs)])

View file

@ -281,6 +281,8 @@ bool parse_transactions(std::istream& in,
const string& kind,
unsigned long beg_pos)
{
TRACE_START(entry_xacts, 1, "Time spent parsing transactions:");
static char line[MAX_LINE + 1];
bool added = false;
@ -302,29 +304,20 @@ bool parse_transactions(std::istream& in,
}
}
TRACE_STOP(entry_xacts, 1);
return added;
}
#if 0
namespace {
TIMER_DEF(parsing_total, "total parsing time");
TIMER_DEF(entry_xacts, "parsing transactions");
TIMER_DEF(entry_details, "parsing entry details");
TIMER_DEF(entry_date, "parsing entry date");
}
#endif
entry_t * parse_entry(std::istream& in, char * line, account_t * master,
textual_parser_t& parser, unsigned long& pos)
{
TRACE_START(entry_text, 1, "Time spent preparing entry text:");
std::auto_ptr<entry_t> curr(new entry_t);
// Parse the date
#if 0
TIMER_START(entry_date);
#endif
char * next = next_element(line);
if (char * p = std::strchr(line, '=')) {
@ -333,16 +326,8 @@ entry_t * parse_entry(std::istream& in, char * line, account_t * master,
}
curr->_date = parse_datetime(line);
#if 0
TIMER_STOP(entry_date);
#endif
// Parse the optional cleared flag: *
#if 0
TIMER_START(entry_details);
#endif
transaction_t::state_t state = transaction_t::UNCLEARED;
if (next) {
switch (*next) {
@ -371,15 +356,11 @@ entry_t * parse_entry(std::istream& in, char * line, account_t * master,
curr->payee = next ? next : "<Unspecified payee>";
#if 0
TIMER_STOP(entry_details);
#endif
TRACE_STOP(entry_text, 1);
// Parse all of the transactions associated with this entry
#if 0
TIMER_START(entry_xacts);
#endif
TRACE_START(entry_details, 1, "Time spent parsing entry details:");
unsigned long end_pos;
unsigned long beg_line = linenum;
@ -418,9 +399,7 @@ entry_t * parse_entry(std::istream& in, char * line, account_t * master,
break;
}
#if 0
TIMER_STOP(entry_xacts);
#endif
TRACE_STOP(entry_details, 1);
return curr.release();
}
@ -544,15 +523,13 @@ unsigned int textual_parser_t::parse(std::istream& in,
account_t * master,
const path * original_file)
{
TRACE_START(parsing_total, 1, "Total time spent parsing text:");
static bool added_auto_entry_hook = false;
static char line[MAX_LINE + 1];
unsigned int count = 0;
unsigned int errors = 0;
#if 0
TIMER_START(parsing_total);
#endif
std::list<account_t *> account_stack;
auto_entry_finalizer_t auto_entry_finalizer(journal);
@ -827,6 +804,7 @@ unsigned int textual_parser_t::parse(std::istream& in,
default: {
unsigned long pos = beg_pos;
TRACE_START(entries, 1, "Time spent handling entries:");
if (entry_t * entry =
parse_entry(in, line, account_stack.front(), *this, pos)) {
if (journal->add_entry(entry)) {
@ -844,6 +822,7 @@ unsigned int textual_parser_t::parse(std::istream& in,
throw new parse_error("Failed to parse entry");
}
end_pos = pos;
TRACE_STOP(entries, 1);
break;
}
}
@ -882,9 +861,7 @@ unsigned int textual_parser_t::parse(std::istream& in,
if (errors > 0)
throw (int)errors;
#if 0
TIMER_STOP(parsing_total);
#endif
TRACE_STOP(parsing_total, 1);
return count;
}