small recoll/kio_recoll build changes: avoid unnecessary recompilations and make them play nicer together

This commit is contained in:
Jean-Francois Dockes 2011-06-22 11:16:09 +02:00
parent ba5e0c41b4
commit 9bb4461013
8 changed files with 68 additions and 42 deletions

View File

@ -11,7 +11,7 @@ mandir = @mandir@
QMAKE = @QMAKE@ QMAKE = @QMAKE@
QTGUI = @QTGUI@ QTGUI = @QTGUI@
all: mk/sysconf common/rclversion.h all: mk/sysconf
${MAKE} -C lib ${MAKE} -C lib
${MAKE} -C index recollindex ${MAKE} -C index recollindex
@NOQTMAKE@(cd $(QTGUI); ${QMAKE} recoll.pro) @NOQTMAKE@(cd $(QTGUI); ${QMAKE} recoll.pro)
@ -21,11 +21,7 @@ all: mk/sysconf common/rclversion.h
mk/sysconf: mk/sysconf:
@echo "You need to run configure first" ; exit 1 @echo "You need to run configure first" ; exit 1
versfile=common/rclversion.h static: mk/sysconf
${versfile} : VERSION
echo 'static const char *rclversionstr = "'`cat VERSION`'";'>> ${versfile}
static: mk/sysconf common/rclversion.h
${MAKE} -C lib ${MAKE} -C lib
rm -f index/recollindex rm -f index/recollindex
${MAKE} -C index BSTATIC=-Wl,-Bstatic BDYNAMIC=-Wl,-Bdynamic \ ${MAKE} -C index BSTATIC=-Wl,-Bstatic BDYNAMIC=-Wl,-Bdynamic \
@ -46,7 +42,6 @@ clean:
${MAKE} -C utils clean ${MAKE} -C utils clean
@NOQTMAKE@@-${MAKE} -C $(QTGUI) clean @NOQTMAKE@@-${MAKE} -C $(QTGUI) clean
rm -f qtgui/Makefile qtgui/confgui/Makefile qtgui/recoll rm -f qtgui/Makefile qtgui/confgui/Makefile qtgui/recoll
rm -f common/rclversion.h
rm -f filters/rclexecm.pyc rm -f filters/rclexecm.pyc
rm -rf qtgui/.moc qtgui/.ui qtgui/confgui/.moc qtgui/confgui/.ui rm -rf qtgui/.moc qtgui/.ui qtgui/confgui/.moc qtgui/confgui/.ui
rm -rf qtgui/.obj qtgui/.moc qtgui/.ui rm -rf qtgui/.obj qtgui/.moc qtgui/.ui
@ -61,6 +56,7 @@ distclean: clean
config.log config.status \ config.log config.status \
recollinstall \ recollinstall \
lib/*.dep common/autoconfig.h lib/*.dep common/autoconfig.h
rm -f common/rclversion.h
rm -f index/alldeps lib/alldeps query/alldeps bincimapmime/alldeps rm -f index/alldeps lib/alldeps query/alldeps bincimapmime/alldeps
rm -rf autom4te.cache rm -rf autom4te.cache

View File

@ -0,0 +1 @@
static const char *rclversionstr = "@RCLVERSION@";

49
src/configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for Recoll 1.6. # Generated by GNU Autoconf 2.68 for Recoll 1.16.0.
# #
# #
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -557,8 +557,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='Recoll' PACKAGE_NAME='Recoll'
PACKAGE_TARNAME='recoll' PACKAGE_TARNAME='recoll'
PACKAGE_VERSION='1.6' PACKAGE_VERSION='1.16.0'
PACKAGE_STRING='Recoll 1.6' PACKAGE_STRING='Recoll 1.16.0'
PACKAGE_BUGREPORT='' PACKAGE_BUGREPORT=''
PACKAGE_URL='' PACKAGE_URL=''
@ -601,6 +601,7 @@ ac_includes_default="\
ac_subst_vars='LTLIBOBJS ac_subst_vars='LTLIBOBJS
LIBOBJS LIBOBJS
RCLVERSION
NOPIC NOPIC
NOCMDLINE NOCMDLINE
NOQTMAKE NOQTMAKE
@ -702,14 +703,9 @@ CPPFLAGS
CCC CCC
CC CC
CFLAGS CFLAGS
LDFLAGS
LIBS
CPPFLAGS
CPP CPP
CPPFLAGS
XMKMF XMKMF
CXXCPP CXXCPP'
CPPFLAGS'
# Initialize some variables set by options. # Initialize some variables set by options.
@ -1252,7 +1248,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures Recoll 1.6 to adapt to many kinds of systems. \`configure' configures Recoll 1.16.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1317,7 +1313,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of Recoll 1.6:";; short | recursive ) echo "Configuration of Recoll 1.16.0:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1440,7 +1436,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
Recoll configure 1.6 Recoll configure 1.16.0
generated by GNU Autoconf 2.68 generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc. Copyright (C) 2010 Free Software Foundation, Inc.
@ -1993,7 +1989,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by Recoll $as_me 1.6, which was It was created by Recoll $as_me 1.16.0, which was
generated by GNU Autoconf 2.68. Invocation command line was generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@ $ $0 $@
@ -4413,8 +4409,8 @@ if test A"$LIBICONV" = A ; then
as_fn_error $? "Cannot find iconv_open anywhere. Please install iconv" "$LINENO" 5 as_fn_error $? "Cannot find iconv_open anywhere. Please install iconv" "$LINENO" 5
exit 1 exit 1
fi fi
echo LIBICONV $LIBICONV #echo LIBICONV $LIBICONV
echo INCICONV $INCICONV #echo INCICONV $INCICONV
CPPFLAGS="$CPPFLAGS $INCICONV" CPPFLAGS="$CPPFLAGS $INCICONV"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of inbuf parameter to iconv" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for type of inbuf parameter to iconv" >&5
@ -5545,6 +5541,7 @@ test "X$m_prefix" = "XNONE" && m_prefix=/usr/local
m_datadir=${m_prefix}/share m_datadir=${m_prefix}/share
QTRECOLL_DATADIR=${m_datadir}/recoll QTRECOLL_DATADIR=${m_datadir}/recoll
RCLVERSION='1.16.0'
@ -5564,7 +5561,11 @@ QTRECOLL_DATADIR=${m_datadir}/recoll
ac_config_files="$ac_config_files mk/localdefs"
# All object files depend on localdefs which has the cc flags. Avoid
# changing it unless necessary
ac_config_files="$ac_config_files mk/localdefs.new:mk/localdefs.in"
ac_config_files="$ac_config_files recollinstall" ac_config_files="$ac_config_files recollinstall"
@ -5572,6 +5573,8 @@ ac_config_files="$ac_config_files Makefile"
ac_config_files="$ac_config_files sampleconf/recoll.conf" ac_config_files="$ac_config_files sampleconf/recoll.conf"
ac_config_files="$ac_config_files common/rclversion.h"
for d in bincimapmime index lib query for d in bincimapmime index lib query
do do
@ -6099,7 +6102,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by Recoll $as_me 1.6, which was This file was extended by Recoll $as_me 1.16.0, which was
generated by GNU Autoconf 2.68. Invocation command line was generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -6161,7 +6164,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
Recoll config.status 1.6 Recoll config.status 1.16.0
configured by $0, generated by GNU Autoconf 2.68, configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"
@ -6284,10 +6287,11 @@ do
case $ac_config_target in case $ac_config_target in
"common/autoconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS common/autoconfig.h" ;; "common/autoconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS common/autoconfig.h" ;;
"$QTGUI/recoll.pro") CONFIG_FILES="$CONFIG_FILES $QTGUI/recoll.pro" ;; "$QTGUI/recoll.pro") CONFIG_FILES="$CONFIG_FILES $QTGUI/recoll.pro" ;;
"mk/localdefs") CONFIG_FILES="$CONFIG_FILES mk/localdefs" ;; "mk/localdefs.new") CONFIG_FILES="$CONFIG_FILES mk/localdefs.new:mk/localdefs.in" ;;
"recollinstall") CONFIG_FILES="$CONFIG_FILES recollinstall" ;; "recollinstall") CONFIG_FILES="$CONFIG_FILES recollinstall" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"sampleconf/recoll.conf") CONFIG_FILES="$CONFIG_FILES sampleconf/recoll.conf" ;; "sampleconf/recoll.conf") CONFIG_FILES="$CONFIG_FILES sampleconf/recoll.conf" ;;
"common/rclversion.h") CONFIG_FILES="$CONFIG_FILES common/rclversion.h" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac esac
@ -6869,3 +6873,10 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi fi
if cmp -s mk/localdefs mk/localdefs.new ; then
rm -f mk/localdefs.new
else
mv -f mk/localdefs.new mk/localdefs
fi

View File

@ -1,4 +1,4 @@
AC_INIT(Recoll, 1.6) AC_INIT([Recoll], m4_esyscmd_s(cat VERSION))
AC_CONFIG_HEADERS([common/autoconfig.h]) AC_CONFIG_HEADERS([common/autoconfig.h])
AC_PREREQ(2.53) AC_PREREQ(2.53)
AC_CONFIG_SRCDIR(index/recollindex.cpp) AC_CONFIG_SRCDIR(index/recollindex.cpp)
@ -426,6 +426,8 @@ test "X$m_prefix" = "XNONE" && m_prefix=/usr/local
m_datadir=${m_prefix}/share m_datadir=${m_prefix}/share
QTRECOLL_DATADIR=${m_datadir}/recoll QTRECOLL_DATADIR=${m_datadir}/recoll
RCLVERSION='m4_esyscmd_s(cat VERSION)'
AC_SUBST(X_CFLAGS) AC_SUBST(X_CFLAGS)
AC_SUBST(X_PRE_LIBS) AC_SUBST(X_PRE_LIBS)
AC_SUBST(X_LIBS) AC_SUBST(X_LIBS)
@ -444,11 +446,15 @@ AC_SUBST(HAVE_MKDTEMP)
AC_SUBST(NOQTMAKE) AC_SUBST(NOQTMAKE)
AC_SUBST(NOCMDLINE) AC_SUBST(NOCMDLINE)
AC_SUBST(NOPIC) AC_SUBST(NOPIC)
AC_SUBST(RCLVERSION)
AC_CONFIG_FILES(mk/localdefs) # All object files depend on localdefs which has the cc flags. Avoid
# changing it unless necessary
AC_CONFIG_FILES(mk/localdefs.new:mk/localdefs.in)
AC_CONFIG_FILES(recollinstall) AC_CONFIG_FILES(recollinstall)
AC_CONFIG_FILES(Makefile) AC_CONFIG_FILES(Makefile)
AC_CONFIG_FILES(sampleconf/recoll.conf) AC_CONFIG_FILES(sampleconf/recoll.conf)
AC_CONFIG_FILES(common/rclversion.h)
for d in bincimapmime index lib query for d in bincimapmime index lib query
do do
@ -459,3 +465,10 @@ done
(cd lib;test -f Makefile && chmod +w Makefile;sh mkMake) (cd lib;test -f Makefile && chmod +w Makefile;sh mkMake)
AC_OUTPUT AC_OUTPUT
if cmp -s mk/localdefs mk/localdefs.new ; then
rm -f mk/localdefs.new
else
mv -f mk/localdefs.new mk/localdefs
fi

View File

@ -32,9 +32,7 @@ you should READ THE HELP FILE.
Building and installing: Building and installing:
======================= =======================
The directory mode is only available with KDE 4.1 and later. This Only tested with KDE 4.1 and later.
began under KDE3 and might still be made to work, but I only built
with KDE4 and cmake recently.
The main Recoll installation shares its prefix with the KIO slave, The main Recoll installation shares its prefix with the KIO slave,
which needs to use the KDE one. This means that, if KDE lives in /usr, which needs to use the KDE one. This means that, if KDE lives in /usr,
@ -42,13 +40,19 @@ Recoll must be configured with --prefix=/usr, not /usr/local. Else
you'll have run-time problems, the slave will not be able to find the you'll have run-time problems, the slave will not be able to find the
Recoll configuration. Recoll configuration.
!!*Notice: You cannot share a build directory between recoll and kio_recoll
because they use different configure options for the main lib, but build it
in the same place. The main lib "configure" is run at "cmake" time for
kio_recoll, the build is done at "make" time.
Recipe: Recipe:
- Make sure the KDE4 core devel packages and cmake are installed. - Make sure the KDE4 core devel packages and cmake are installed.
- Extract the Recoll source. - Extract the Recoll source.
- IF Recoll is not installed yet: configure recoll with - IF Recoll is not installed yet: configure recoll with
--prefix=/usr --enable-pic (or wherever KDE lives), build and install --prefix=/usr (or wherever KDE lives), build and install
Recoll. Recoll.
- In the Recoll source, go to kde/kioslave/recoll, then build and - In the Recoll source, go to kde/kioslave/recoll, then build and

View File

@ -14,18 +14,13 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}")
set(rcltop ${CMAKE_CURRENT_SOURCE_DIR}/../../../) set(rcltop ${CMAKE_CURRENT_SOURCE_DIR}/../../../)
# Execute minimum recoll configuration to create autoconfig.h and version.h # Execute recoll configuration to create autoconfig.h and version.h and
# generate a PIC lib
execute_process(COMMAND ${rcltop}/configure --disable-qtgui --disable-x11mon --enable-pic --prefix=${CMAKE_INSTALL_PREFIX} --mandir=${CMAKE_INSTALL_PREFIX}/share/man execute_process(COMMAND ${rcltop}/configure --disable-qtgui --disable-x11mon --enable-pic --prefix=${CMAKE_INSTALL_PREFIX} --mandir=${CMAKE_INSTALL_PREFIX}/share/man
WORKING_DIRECTORY ${rcltop} WORKING_DIRECTORY ${rcltop}
) )
execute_process(COMMAND make common/rclversion.h
WORKING_DIRECTORY ${rcltop}
)
execute_process(COMMAND make
WORKING_DIRECTORY ${rcltop}/lib
)
link_directories(${rcltop}/lib) link_directories(${rcltop}/lib ${CMAKE_INSTALL_PREFIX}/lib)
include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES}
${rcltop}/aspell ${rcltop}/aspell
@ -53,6 +48,12 @@ ENDIF(PTHREAD_IN_LIBPTHREAD)
kde4_add_plugin(kio_recoll ${kio_recoll_SRCS}) kde4_add_plugin(kio_recoll ${kio_recoll_SRCS})
add_custom_target(rcllib
COMMAND make
WORKING_DIRECTORY ${rcltop}/lib
)
add_dependencies(kio_recoll rcllib)
target_link_libraries(kio_recoll rcl xapian z ${EXTRA_LIBS} ${KDE4_KIO_LIBS}) target_link_libraries(kio_recoll rcl xapian z ${EXTRA_LIBS} ${KDE4_KIO_LIBS})
install(TARGETS kio_recoll DESTINATION ${PLUGIN_INSTALL_DIR}) install(TARGETS kio_recoll DESTINATION ${PLUGIN_INSTALL_DIR})

View File

@ -13,7 +13,7 @@ librcl.a : $(DEPS) $(OBJS) unac.o
ar ru librcl.a $(OBJS) unac.o ar ru librcl.a $(OBJS) unac.o
$(RANLIB) librcl.a $(RANLIB) librcl.a
unac.o : $(depth)/unac/unac.c $(depth)/unac/unac.h $ unac.o : $(depth)/unac/unac.c $(depth)/unac/unac.h $(depth)/mk/localdefs
$(CC) $(ALL_CXXFLAGS) -c $(depth)/unac/unac.c $(CC) $(ALL_CXXFLAGS) -c $(depth)/unac/unac.c
rclaspell.o : ../aspell/rclaspell.cpp $(depth)/mk/localdefs rclaspell.o : ../aspell/rclaspell.cpp $(depth)/mk/localdefs
$(CXX) $(ALL_CXXFLAGS) -c ../aspell/rclaspell.cpp $(CXX) $(ALL_CXXFLAGS) -c ../aspell/rclaspell.cpp

View File

@ -116,7 +116,7 @@ librcl.a : \$(DEPS) \$(OBJS) unac.o
ar ru librcl.a \$(OBJS) unac.o ar ru librcl.a \$(OBJS) unac.o
\$(RANLIB) librcl.a \$(RANLIB) librcl.a
unac.o : \$(depth)/unac/unac.c \$(depth)/unac/unac.h $ unac.o : \$(depth)/unac/unac.c \$(depth)/unac/unac.h $defs
\$(CC) \$(ALL_CXXFLAGS) -c \$(depth)/unac/unac.c \$(CC) \$(ALL_CXXFLAGS) -c \$(depth)/unac/unac.c
EOF EOF