summaryrefslogtreecommitdiff
path: root/AUTOTOOLS-TODO
diff options
context:
space:
mode:
authorKrzesimir Nowak <krnowak@openismus.com>2011-08-30 16:24:58 +0200
committerKrzesimir Nowak <krnowak@openismus.com>2011-08-30 16:38:34 +0200
commita7ad98fabc965b053cb9e92db431d5b535adee26 (patch)
tree56a912b2390a0dab17a8b1ae85b5911d64840b31 /AUTOTOOLS-TODO
parent36dd42a030f31bc281a8027bd947bbe226a0ea7a (diff)
Port build system to non-recursive Automake.
All but toplevel Makefile.am are replaced with their non-recursive counterparts. The generation of configure.in was removed (and thus configure-{pre,post}.in are also removed) in favor of configure.ac and m4 macros adding backend specific configure parts. Version number is generated like in old build system. There are still many things to improve, but for now there are no immediate regressions. AUTOTOOLS-TODO contains a list of possible improvements and fixes. AUTOTOOLS-TESTING contains what was tested with current build system (configure flags, make options).
Diffstat (limited to 'AUTOTOOLS-TODO')
-rw-r--r--AUTOTOOLS-TODO126
1 files changed, 126 insertions, 0 deletions
diff --git a/AUTOTOOLS-TODO b/AUTOTOOLS-TODO
new file mode 100644
index 00000000..23b77caa
--- /dev/null
+++ b/AUTOTOOLS-TODO
@@ -0,0 +1,126 @@
+REGRESSIONS:
+
+
+- None.
+
+
+IMPROVEMENTS:
+
+
+- Add a check for qt-mobility for QtContacts backend.
+
+
+- Probably client test should be built only when unit tests or integration tests
+ are enabled.
+
+
+- Look at the note at the bottom of configure.ac:
+
+ # Avoid hard-coding paths in backends. These names are chosen so
+ # that a backend can alternatively use its own top-level configure
+ # with PKG_CHECK_MODULES(SYNCEVOLUTION, "syncevolution") to set them.
+ # need absolute path, use pwd instead of relative $srcdir
+ SYNCEVOLUTION_CFLAGS=-I`cd $srcdir && pwd`/src
+ SYNCEVOLUTION_LIBS=`pwd`/src/syncevo/libsyncevolution.la
+ AC_SUBST(SYNCEVOLUTION_CFLAGS)
+ AC_SUBST(SYNCEVOLUTION_LIBS)
+
+ Backends does not have their own top-level configure scripts, so usage of
+ absolute path have to be checked. For now this is worked around
+ in generated backends.am. Also, for relative path not $(srcdir) should be used
+ but $(builddir).
+
+
+- Review CLEANFILES, DISTCLEANFILES, MAINTAINERCLEANFILES and MOSTLYCLEANFILES.
+ That is - check which files should be assigned to which of CLEAN variables.
+
+
+- Check why distcheck outputs:
+ ==================
+ All 0 tests passed
+ ==================
+
+ There should have been at least one test being run. The same behavior exists
+ in old build system.
+
+
+- Check why there are so many failed tests when running `make check' explicitly.
+ The same number of failures exists in old build system:
+
+ Run: 583 Failure total: 528 Failures: 206 Errors: 322
+
+
+- Tidy up configure.ac and some .am files.
+
+
+- Maybe write scripts generating configs_xml.am, templates.am and profiles.am.
+
+
+QUESTIONS:
+
+
+- None.
+
+
+PERSISTENT:
+
+
+- Hunt for common variables clobbering.
+
+
+- Silence more verbose output if found.
+
+
+NITPICKS:
+
+
+- Check if SyncEvolutionXML.c should always be recreated, patches always checked
+ and test-client always relinked.
+
+
+- Check if /etc/sync and /lib/sync really have to be created, even if they are
+ going to be empty after install (this is probably some buteo stuff).
+
+
+- Maybe do not create /share/man/man1 directory if we do not put there anything.
+
+
+- If backends are static libraries then do not create /lib/syncevolution,
+ because nothing is put here.
+
+
+- Change $(foo) to @foo@ for all variables substituted by configure script. This
+ might be useful when looking for actual value of variable appearing out of
+ nowhere in .am file. Maybe make also all configure variables UPPER_CASE
+ and all local Automake variables lower_case.
+
+
+- Lower autoreconf's warnings level later. Namely - don't warn about some
+ portability issues. The warnings about obsolete stuff should rather remain.
+ For now only some glib macros are using obsolete features.
+
+
+- Should stamp files be marked as intermediate or rather as secondary files?
+
+
+- Check why 'copying selected object files to avoid basename conflicts...' is
+ displayed between linking src/dbus/server/libsyncevodbusserver.la
+ and compiling src/gdbus/src_gdbus_libgdbussyncevo_la-debug.lo. This is
+ probably harmless.
+
+
+TRACKING:
+
+
+- Handle nobase prefixes. Link to track:
+ http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9289
+
+
+- Explanation why make -jX used to fail:
+ It failed because usually Automake generates dependencies of a library/program
+ by looking at its _LIBADD/_LDADD variable. But this generation doesn't work
+ correctly when _LIBADD/_LDADD variable has AC_SUBSTed variable - automake then
+ just discards them and resulting _DEPENDENCIES variable does not contain them.
+ As a workaround _DEPENDENCIES variable have to be written explicitly. Link to
+ track:
+ http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9320