diff --git a/configure.in b/configure.in index 690e7bd0a5..39af8e1b27 100644 --- a/configure.in +++ b/configure.in @@ -681,6 +681,9 @@ AC_OUTPUT( src/scm/Makefile src/scm/gnumeric/Makefile src/scm/printing/Makefile + src/tax/Makefile + src/tax/us/Makefile + src/tax/us/test/Makefile src/test-core/Makefile dnl # non-makefiles diff --git a/src/Makefile.am b/src/Makefile.am index dc010af751..2cf33a201c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,6 +6,7 @@ SUBDIRS = \ engine \ backend \ calculation \ + tax \ app-utils \ register \ import-export \ diff --git a/src/README.modules b/src/README.modules index 400c3f9574..a34ec32085 100644 --- a/src/README.modules +++ b/src/README.modules @@ -38,3 +38,5 @@ report/stylesheets predefined style sheet templates app-utils utils for the gnucash app framework (component mgr, cmd line processing, gettext stuff, etc) + +tax/us US tax information diff --git a/src/app-utils/gnc-ui-util.c b/src/app-utils/gnc-ui-util.c index fc73514c81..a7c0fd5f17 100644 --- a/src/app-utils/gnc-ui-util.c +++ b/src/app-utils/gnc-ui-util.c @@ -266,12 +266,12 @@ gnc_ui_account_get_tax_info_string (Account *account) { GNCModule module; - module = gnc_module_load ("gnucash/report/locale-specific/us", 0); + module = gnc_module_load ("gnucash/tax/us", 0); g_return_val_if_fail (module, NULL); - get_form = gh_eval_str ("gnc:txf-get-form"); - get_desc = gh_eval_str ("gnc:txf-get-description"); + get_form = gh_eval_str ("(false-if-exception gnc:txf-get-form)"); + get_desc = gh_eval_str ("(false-if-exception gnc:txf-get-description)"); } g_return_val_if_fail (gh_procedure_p (get_form), NULL); diff --git a/src/report/locale-specific/us/Makefile.am b/src/report/locale-specific/us/Makefile.am index a120837c7c..f136e81464 100644 --- a/src/report/locale-specific/us/Makefile.am +++ b/src/report/locale-specific/us/Makefile.am @@ -1,13 +1,13 @@ -SUBDIRS=. test +SUBDIRS = . test -pkglib_LTLIBRARIES=libgncmod-locale-reports-us.la +pkglib_LTLIBRARIES = libgncmod-locale-reports-us.la -libgncmod_locale_reports_us_la_SOURCES=\ +libgncmod_locale_reports_us_la_SOURCES = \ gncmod-locale-reports-us.c -libgncmod_locale_reports_us_la_LDFLAGS=-module +libgncmod_locale_reports_us_la_LDFLAGS = -module -INCLUDES=-I${top_srcdir}/src/gnc-module ${GLIB_CFLAGS} +INCLUDES = -I${top_srcdir}/src/gnc-module ${GLIB_CFLAGS} .scm-links: rm -f gnucash report locale-specific us @@ -19,13 +19,10 @@ INCLUDES=-I${top_srcdir}/src/gnc-module ${GLIB_CFLAGS} noinst_DATA = .scm-links -gncscmmoddir=${GNC_SHAREDIR}/guile-modules/gnucash/report/locale-specific +gncscmmoddir = ${GNC_SHAREDIR}/guile-modules/gnucash/report/locale-specific gncscmmod_DATA = us.scm -gncscmothermoddir=${GNC_SHAREDIR}/guile-modules/gnucash/report/ -gncscmothermod_DATA=taxtxf.scm - -gncscmdir=${GNC_SHAREDIR}/scm -gncscm_DATA = txf-export.scm txf-export-help.scm +gncscmothermoddir = ${GNC_SHAREDIR}/guile-modules/gnucash/report/ +gncscmothermod_DATA = taxtxf.scm CLEANFILES += gnucash report locale-specific us diff --git a/src/report/locale-specific/us/gncmod-locale-reports-us.c b/src/report/locale-specific/us/gncmod-locale-reports-us.c index fc6d8b2f89..c945719baa 100644 --- a/src/report/locale-specific/us/gncmod-locale-reports-us.c +++ b/src/report/locale-specific/us/gncmod-locale-reports-us.c @@ -1,6 +1,6 @@ /********************************************************************* * gncmod-locale-reports-us.c - * module definition/initialization for the standard reports + * module definition/initialization for the US reports * * Copyright (c) 2001 Linux Developers Group, Inc. *********************************************************************/ @@ -32,6 +32,11 @@ gnc_module_description(void) { int gnc_module_init(int refcount) { + /* load us tax info */ + if(!gnc_module_load("gnucash/tax/us", 0)) { + return FALSE; + } + /* load the report system */ if(!gnc_module_load("gnucash/report/report-system", 0)) { return FALSE; diff --git a/src/report/locale-specific/us/taxtxf.scm b/src/report/locale-specific/us/taxtxf.scm index 86fc58c618..161e723335 100644 --- a/src/report/locale-specific/us/taxtxf.scm +++ b/src/report/locale-specific/us/taxtxf.scm @@ -34,24 +34,9 @@ (require 'printf) (use-modules (gnucash gnc-module)) +(gnc:module-load "gnucash/tax/us" 0) (gnc:module-load "gnucash/report/report-system" 0) -(export gnc:txf-get-payer-name-source) -(export gnc:txf-get-form) -(export gnc:txf-get-description) -(export gnc:txf-get-format) -(export gnc:txf-get-multiple) -(export gnc:txf-get-category-key) -(export gnc:txf-get-help) -(export gnc:txf-get-codes) -(export gnc:txf-get-code-info) -(export txf-help-categories) -(export txf-income-categories) -(export txf-expense-categories) - -(load-from-path "txf-export.scm") -(load-from-path "txf-export-help.scm") - (define (make-level-collector num-levels) (let ((level-collector (make-vector num-levels))) (do ((i 0 (+ i 1))) diff --git a/src/report/locale-specific/us/test/Makefile.am b/src/report/locale-specific/us/test/Makefile.am index 57b2b6a81b..a9138400a0 100644 --- a/src/report/locale-specific/us/test/Makefile.am +++ b/src/report/locale-specific/us/test/Makefile.am @@ -1,6 +1,6 @@ TESTS=test-load-module TESTS_ENVIRONMENT= \ - GNC_MODULE_PATH=${top_srcdir}/src/engine:${top_srcdir}/src/report/report-system:${top_srcdir}/src/app-utils:${top_srcdir}/src/calculation:.. \ + GNC_MODULE_PATH=${top_srcdir}/src/engine:${top_srcdir}/src/report/report-system:${top_srcdir}/src/app-utils:${top_srcdir}/src/calculation:${top_srcdir}/src/tax/us:.. \ GUILE_LOAD_PATH=${top_srcdir}/src/gnc-module:${top_srcdir}/lib:..:${G_WRAP_MODULE_DIR} \ LD_LIBRARY_PATH=${top_srcdir}/src/gnc-module:${top_srcdir}/src/gnc-module/.libs:${top_srcdir}/src/engine:${top_srcdir}/src/engine/.libs:${top_srcdir}/src/app-utils:${top_srcdir}/src/app-utils/.libs:${top_srcdir}/src/calculation:${top_srcdir}/src/calculation/.libs diff --git a/src/report/locale-specific/us/us.scm b/src/report/locale-specific/us/us.scm index c85ef96754..83f5afe4cc 100644 --- a/src/report/locale-specific/us/us.scm +++ b/src/report/locale-specific/us/us.scm @@ -1,16 +1,2 @@ (define-module (gnucash report locale-specific us)) (use-modules (gnucash report taxtxf)) - -(export gnc:txf-get-payer-name-source) -(export gnc:txf-get-form) -(export gnc:txf-get-description) -(export gnc:txf-get-format) -(export gnc:txf-get-multiple) -(export gnc:txf-get-category-key) -(export gnc:txf-get-help) -(export gnc:txf-get-codes) -(export gnc:txf-get-code-info) -(export txf-help-categories) -(export txf-income-categories) -(export txf-expense-categories) - diff --git a/src/tax/.cvsignore b/src/tax/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/src/tax/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/src/tax/Makefile.am b/src/tax/Makefile.am new file mode 100644 index 0000000000..da178ad3eb --- /dev/null +++ b/src/tax/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = us diff --git a/src/tax/us/.cvsignore b/src/tax/us/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/src/tax/us/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/src/tax/us/Makefile.am b/src/tax/us/Makefile.am new file mode 100644 index 0000000000..ad3ffabe9e --- /dev/null +++ b/src/tax/us/Makefile.am @@ -0,0 +1,26 @@ +SUBDIRS = . test + +pkglib_LTLIBRARIES = libgncmod-tax-us.la + +libgncmod_tax_us_la_SOURCES = \ + gncmod-tax-us.c + +libgncmod_tax_us_la_LDFLAGS = -module + +INCLUDES = -I${top_srcdir}/src/gnc-module ${GLIB_CFLAGS} + +.scm-links: + rm -f gnucash tax + ln -sf . gnucash + ln -sf . tax + touch .scm-links + +noinst_DATA = .scm-links + +gncscmmoddir = ${GNC_SHAREDIR}/guile-modules/gnucash/tax +gncscmmod_DATA = us.scm + +gncscmdir = ${GNC_SHAREDIR}/scm +gncscm_DATA = txf.scm txf-help.scm + +CLEANFILES += gnucash tax diff --git a/src/tax/us/gncmod-tax-us.c b/src/tax/us/gncmod-tax-us.c new file mode 100644 index 0000000000..895cabddb2 --- /dev/null +++ b/src/tax/us/gncmod-tax-us.c @@ -0,0 +1,50 @@ +/********************************************************************* + * gncmod-tax-us.c + * module definition/initialization for us tax info + * + * Copyright (c) 2001 Linux Developers Group, Inc. + *********************************************************************/ + +#include +#include +#include + +#include "gnc-module.h" +#include "gnc-module-api.h" + +/* version of the gnc module system interface we require */ +int gnc_module_system_interface = 0; + +/* module versioning uses libtool semantics. */ +int gnc_module_current = 0; +int gnc_module_revision = 0; +int gnc_module_age = 0; + +char * +gnc_module_path(void) { + return g_strdup("gnucash/tax/us"); +} + +char * +gnc_module_description(void) { + return g_strdup("US income tax information"); +} + +static void +lmod(char * mn) +{ + char * form = g_strdup_printf("(use-modules %s)\n", mn); + gh_eval_str(form); + g_free(form); +} + +int +gnc_module_init(int refcount) { + lmod("(gnucash tax us)"); + return TRUE; +} + +int +gnc_module_end(int refcount) { + return TRUE; +} diff --git a/src/tax/us/test/.cvsignore b/src/tax/us/test/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/src/tax/us/test/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/src/tax/us/test/Makefile.am b/src/tax/us/test/Makefile.am new file mode 100644 index 0000000000..aaf0a333b3 --- /dev/null +++ b/src/tax/us/test/Makefile.am @@ -0,0 +1,6 @@ +TESTS = test-load-module + +TESTS_ENVIRONMENT= \ + GNC_MODULE_PATH=.. \ + GUILE_LOAD_PATH=${top_srcdir}/src/gnc-module:${top_srcdir}/lib:..:${G_WRAP_MODULE_DIR} \ + LD_LIBRARY_PATH=${top_srcdir}/src/gnc-module:${top_srcdir}/src/gnc-module/.libs diff --git a/src/tax/us/test/test-load-module b/src/tax/us/test/test-load-module new file mode 100755 index 0000000000..d25f7036bc --- /dev/null +++ b/src/tax/us/test/test-load-module @@ -0,0 +1,15 @@ +#! /bin/sh +exec guile -s "$0" +!# + +(display " testing US tax info module load ... ") +(use-modules (gnucash gnc-module)) +(gnc:module-system-init) + +(if (gnc:module-load "gnucash/tax/us" 0) + (begin + (display "ok\n") + (exit 0)) + (begin + (display "failed\n") + (exit -1))) diff --git a/src/report/locale-specific/us/txf-export-help.scm b/src/tax/us/txf-help.scm similarity index 100% rename from src/report/locale-specific/us/txf-export-help.scm rename to src/tax/us/txf-help.scm diff --git a/src/report/locale-specific/us/txf-export.scm b/src/tax/us/txf.scm similarity index 100% rename from src/report/locale-specific/us/txf-export.scm rename to src/tax/us/txf.scm diff --git a/src/tax/us/us.scm b/src/tax/us/us.scm new file mode 100644 index 0000000000..8fc1053d52 --- /dev/null +++ b/src/tax/us/us.scm @@ -0,0 +1,17 @@ +(define-module (gnucash tax us)) + +(export gnc:txf-get-payer-name-source) +(export gnc:txf-get-form) +(export gnc:txf-get-description) +(export gnc:txf-get-format) +(export gnc:txf-get-multiple) +(export gnc:txf-get-category-key) +(export gnc:txf-get-help) +(export gnc:txf-get-codes) +(export gnc:txf-get-code-info) +(export txf-help-categories) +(export txf-income-categories) +(export txf-expense-categories) + +(load-from-path "txf.scm") +(load-from-path "txf-help.scm")