]> git.lyx.org Git - features.git/commitdiff
allow to compile several frontends at once (and produce several binaries)
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Sat, 2 Aug 2003 20:01:52 +0000 (20:01 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Sat, 2 Aug 2003 20:01:52 +0000 (20:01 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7485 a592a061-630c-0410-9148-cb99ea01b6c8

15 files changed:
ChangeLog
config/ChangeLog
config/lyxinclude.m4
config/xforms.m4
configure.ac
src/ChangeLog
src/Makefile.am
src/frontends/ChangeLog
src/frontends/Makefile.am
src/frontends/qt2/ChangeLog
src/frontends/qt2/Makefile.am
src/frontends/qt2/moc/Makefile.am
src/frontends/qt2/ui/Makefile.am
src/frontends/xforms/ChangeLog
src/frontends/xforms/Makefile.am

index f647cdd1c64e95b7a7f0613f5c7d00334ea32080..dd9b5dacd0dc69e429a26e3160768c2c738393dc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-08-02  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
+
+       * configure.ac: only configure the frontends that have been
+       specified; build in FRONTENDS_PROGS the list of programs that
+       should be built
+
 2003-07-31  John Levon  <levon@movementarian.org>
 
        * NEWS:
index b0a9fcf37cc3e4a23793ac0bc80b007b4fb75b27..8c3a250841a13187fc299050e97c4029154875fe 100644 (file)
@@ -1,3 +1,14 @@
+2003-08-02  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
+
+       * xforms.m4 (XFORMS_DO_IT_ALL): new macro, which calls all the
+       xforms stuff and AC_SUBSTs XFORMS_LIBS with all libraries needed
+       by the xforms frontend
+
+       * lyxinclude.m4 (LYX_USE_FRONTENDS): renamed from
+       LYX_USE_FRONTEND. Can now accept a list of frontends; the
+       variables defines there are now FRONTENDS, FRONTENDS_SUBDIRS and
+       FRONTENDS_PROGS. 
+
 2003-07-29  Lars Gullik Bjønnes  <larsbj@gullik.net>
 
        * lyxinclude.m4: use AC_HELP_STRING
index 45fcc0f489d2088b26dce2ddf9a7335a48d1fa9d..21671420f71fc4c586a8fe05fd4e403e57be403c 100644 (file)
@@ -585,20 +585,18 @@ rm -f conftest*])
 ])
 ### end of LYX_PATH_HEADER
 
-### Check which frontend we want to use. The default is XForms
+### Check which frontends we want to use. The default is XForms only
 ###
-AC_DEFUN(LYX_USE_FRONTEND,
-[AC_MSG_CHECKING([what frontend should be used as main GUI])
+AC_DEFUN(LYX_USE_FRONTENDS,
+[AC_MSG_CHECKING([what frontend should be used for the GUI])
 AC_ARG_WITH(frontend,
   [  --with-frontend=THIS    Use THIS frontend as main GUI:
                            Possible values: xforms, qt],
-  [lyx_use_frontend="$withval"], [lyx_use_frontend="xforms"])
-AC_MSG_RESULT($lyx_use_frontend)
-AC_SUBST(FRONTEND)
-AC_SUBST(FRONTEND_GUILIB)
-AC_SUBST(FRONTEND_LDFLAGS)
-AC_SUBST(FRONTEND_INCLUDES)
-AC_SUBST(FRONTEND_LIBS)
+  [FRONTENDS="$withval"], [FRONTENDS="xforms"])
+AC_MSG_RESULT($FRONTENDS)
+AC_SUBST(FRONTENDS)
+AC_SUBST(FRONTENDS_SUBDIRS)
+AC_SUBST(FRONTENDS_PROGS)
 ])
 
 
index 820b1f4359300d616396e23e9e2afad5bd5ebd70..41e9bb79a64075dfa4230adc019cd86e3b6a567a 100644 (file)
@@ -5,7 +5,6 @@ AC_DEFUN(LYX_PATH_XPM,[
 ### Check for Xpm library
 AC_CHECK_LIB(Xpm, XpmCreateBufferFromImage, XPM_LIB="-lXpm",
        [LYX_LIB_ERROR(libXpm,Xpm)])
-AC_SUBST(XPM_LIB)
 ### Check for Xpm headers
 lyx_cv_xpm_h_location="<xpm.h>"
 AC_CHECK_HEADER(X11/xpm.h,[
@@ -13,8 +12,6 @@ AC_CHECK_HEADER(X11/xpm.h,[
   lyx_cv_xpm_h_location="<X11/xpm.h>"],[
 AC_CHECK_HEADER(xpm.h,[],[
 LYX_LIB_ERROR(xpm.h,Xpm)])])
-#AC_DEFINE_UNQUOTED(XPM_H_LOCATION,$lyx_cv_xpm_h_location,
-#  [define this to the location of xpm.h to be used with #include, e.g. <xpm.h>])
 AC_SUBST(XPM_H_LOCATION,$lyx_cv_xpm_h_location)
 ### Test for the header version
 if test $ac_cv_header_xpm_h = yes; then
@@ -61,7 +58,6 @@ AC_REQUIRE([LYX_PATH_XPM])
 AC_CHECK_LIB(forms, fl_initialize, XFORMS_LIB="-lforms",
   [AC_CHECK_LIB(xforms, fl_initialize, XFORMS_LIB="-lxforms",
     [LYX_LIB_ERROR(libforms or libxforms,xforms)], $XPM_LIB)], $XPM_LIB)
-AC_SUBST(XFORMS_LIB)
 
 ### Check for xforms headers
 lyx_cv_forms_h_location="<forms.h>"
@@ -108,7 +104,7 @@ fi
 
 
 dnl Check the details of the xforms image loader
-AC_DEFUN(LYX_CHECK_XFORMS_IMAGE_LOADER,
+AC_DEFUN([LYX_CHECK_XFORMS_IMAGE_LOADER],
 [AC_REQUIRE([LYX_PATH_XFORMS])
 save_LIBS=$LIBS
 LIBS="$XFORMS_LIB $XPM_LIB $LIBS"
@@ -134,8 +130,6 @@ AC_SEARCH_LIBS(flimage_dup, flimage,
      XFORMS_IMAGE_LIB="-lflimage $XFORMS_IMAGE_LIB"
   fi])
 
-AC_SUBST(XFORMS_IMAGE_LIB)
-
 if test $lyx_use_jpeg_image_loader = yes ; then
   lyx_flags="$lyx_flags xforms-image-loader"
   AC_DEFINE(USE_JPEG_IMAGE_LOADER, 1,
@@ -144,3 +138,10 @@ fi
 
 AC_LANG_RESTORE
 LIBS=$save_LIBS])
+
+dnl Do all check required to use xforms
+AC_DEFUN([XFORMS_DO_IT_ALL],
+[LYX_PATH_XPM
+LYX_PATH_XFORMS
+LYX_CHECK_XFORMS_IMAGE_LOADER
+AC_SUBST(XFORMS_LIBS, ["$XFORMS_IMAGE_LIB $XFORMS_LIB $XPM_LIB"])])
index 865ee9413e34174c5b4c21b981c185b06c9435cf..edb223f2551ad204464703816b21e96d2412f131 100644 (file)
@@ -56,7 +56,7 @@ AC_ISC_POSIX
 AC_AIX
 
 ### check which frontend we want to use
-LYX_USE_FRONTEND
+LYX_USE_FRONTENDS
 
 ### Check for a C++ compiler
 LYX_PROG_CXX
@@ -161,50 +161,47 @@ esac
 
 ### check which frontend we want to use
 
-# XForms tests
-LYX_PATH_XPM
-LYX_PATH_XFORMS
-LYX_CHECK_XFORMS_IMAGE_LOADER
-# QT tests
-QT_DO_IT_ALL
-
-#LYX_USE_FRONTEND
 dnl The code below is not in a macro, because this would cause big
-dnl problems with the AC_REQUIRE contained in KDE_DO_IT_ALL.
-case "$lyx_use_frontend" in
-  xforms)
-       FRONTEND="xforms"
-        RPM_FRONTEND="xforms"
-        RPM_FRONTEND_DEPS='libforms >= 1.0'
-       FRONTEND_GUILIB="frontends/xforms/libxforms.la"
-       FRONTEND_INFO="    libXpm version:               ${XPM_VERSION}\n\
-    libforms version:             ${XFORMS_VERSION}\n"
-       ;;
-dnl   gnome)
-dnl     LYX_PATH_XPM
-dnl     LYX_PATH_XFORMS
-dnl     LYX_CHECK_XFORMS_IMAGE_LOADER
-dnl     PKG_CHECK_MODULES(GNOME_FRONTEND, gtkmm-2.0 libglademm-2.0)
-dnl     AC_SUBST(GNOME_FRONTEND_CFLAGS)
-dnl     AC_SUBST(GNOME_FRONTEND_LIBS)
-
-dnl     FRONTEND="xforms gnome"
-dnl     FRONTEND_GUILIB="gnome/*.lo"
-dnl     FRONTEND_LDFLAGS="${GNOME_FRONTEND_LIBS}"
-dnl     FRONTEND_INCLUDES="${GNOME_FRONTEND_CFLAGS}"
-dnl     FRONTEND_LIBS="@XPM_LIB@ @XFORMS_LIB@ ${GNOME_FRONTEND_LIBS}"
-dnl    ;;
-  qt)
-    RPM_FRONTEND="qt"
-    RPM_FRONTEND_DEPS='qt >= 2.2.1'
-    FRONTEND="qt2"
-    FRONTEND_GUILIB="frontends/qt2/libqt2.la"
-    FRONTEND_INCLUDES="\$(QT_INCLUDES)"
-    FRONTEND_INFO="    Qt version:                   ${QT_VERSION}\n"
-    ;;
-  *)
-    LYX_ERROR(Unknown frontend $lyx_use_frontend);;
-esac
+dnl problems with the AC_REQUIRE contained in QT_DO_IT_ALL.
+for frontend in $FRONTENDS ; do
+  case "$frontend" in
+    xforms)
+         XFORMS_DO_IT_ALL
+         FRONTENDS_PROGS="$FRONTENDS_PROGS lyx-xforms"
+         FRONTENDS_SUBDIRS="$FRONTENDS_SUBDIRS xforms"
+         RPM_FRONTEND="xforms"
+         RPM_FRONTEND_DEPS='libforms >= 1.0'
+         FRONTEND_INFO="${FRONTEND_INFO}\
+  XForms Frontend:\n\
+      libXpm version:               ${XPM_VERSION}\n\
+      libforms version:             ${XFORMS_VERSION}\n"
+         ;;
+  dnl   gnome)
+  dnl     XFORMS_DO_IT_ALL
+  dnl     PKG_CHECK_MODULES(GNOME_FRONTEND, gtkmm-2.0 libglademm-2.0)
+  dnl     AC_SUBST(GNOME_FRONTEND_CFLAGS)
+  dnl     AC_SUBST(GNOME_FRONTEND_LIBS)
+
+  dnl     FRONTEND="xforms gnome"
+  dnl     FRONTEND_GUILIB="gnome/*.lo"
+  dnl     FRONTEND_LDFLAGS="${GNOME_FRONTEND_LIBS}"
+  dnl     FRONTEND_INCLUDES="${GNOME_FRONTEND_CFLAGS}"
+  dnl     FRONTEND_LIBS="@XPM_LIB@ @XFORMS_LIB@ ${GNOME_FRONTEND_LIBS}"
+  dnl  ;;
+    qt)
+         QT_DO_IT_ALL
+         FRONTENDS_PROGS="$FRONTENDS_PROGS lyx-qt"
+         FRONTENDS_SUBDIRS="$FRONTENDS_SUBDIRS qt2"
+         RPM_FRONTEND="qt"
+         RPM_FRONTEND_DEPS='qt >= 2.2.1'
+         FRONTEND_INFO="${FRONTEND_INFO}\
+  Qt Frontend:\n\
+      Qt version:                   ${QT_VERSION}\n"
+      ;;
+    *)
+         LYX_ERROR(Unknown frontend $lyx_use_frontend);;
+  esac
+done
 
 ### Setup GNU gettext
 dnl GNU gettext is written in C
@@ -287,7 +284,6 @@ VERSION_INFO="Configuration\n\
   C++ Compiler:                   ${CXX} ${CXX_VERSION}\n\
   C++ Compiler flags:             ${CXXFLAGS}\n\
   Linker flags:                   ${LDFLAGS}\n\
-  Frontend:                       ${lyx_use_frontend}\n\
 ${FRONTEND_INFO}\
   LyX binary dir:                 ${real_bindir}\n\
   LyX files dir:                  ${real_datadir}\n"
index c6818a1b2014ec8eec4870ac53b4cd089d345e14..96e17572507d9eefe26d930296f0b554461b846b 100644 (file)
@@ -1,3 +1,9 @@
+2003-08-02  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
+
+       * Makefile.am: move things around so that both lyx-qt and
+       lyx-xforms can be built (according to --with-frontend). Then lyx
+       is a symbolic link to lyx-[firstfrontend]
+
 2003-08-02  Lars Gullik Bjønnes  <larsbj@lyx.org>
 
        * Always use std::endl with lyxerr
index 81b9e7f1b73baed245a843550d59606bd2641f3f..c788329f6b1d443d32b7d062933aa4ee522eb091 100644 (file)
@@ -14,12 +14,10 @@ EXTRA_DIST = config.h.in stamp-h.in cheaders version.C.in \
        tracer.C \
        tracer.h
 
-bin_PROGRAMS = lyx
+LYX_PRE_LIBS = mathed/libmathed.la insets/libinsets.la \
+       frontends/libfrontends.la 
 
-LYX_CONV_LIBS = mathed/libmathed.la insets/libinsets.la \
-       frontends/libfrontends.la \
-       $(FRONTEND_GUILIB) \
-       frontends/controllers/libcontrollers.la \
+LYX_POST_LIBS = frontends/controllers/libcontrollers.la \
        graphics/libgraphics.la \
        support/libsupport.la
 
@@ -30,10 +28,23 @@ else
 BOOST_LIBS = -lboost_regex -lboost_signals
 endif
 
-lyx_LDADD = $(LYX_CONV_LIBS) $(BOOST_LIBS) $(INTLLIBS) \
-       $(AIKSAURUS_LIBS) @LIBS@
+OTHERLIBS = $(BOOST_LIBS) $(INTLLIBS) $(AIKSAURUS_LIBS) @LIBS@
 
-lyx_DEPENDENCIES = $(LYX_CONV_LIBS) $(BOOST_LIBS) $(INTLLIBS)
+bin_PROGRAMS = lyx 
+noinst_PROGRAMS = $(FRONTENDS_PROGS)
+EXTRA_PROGRAMS = lyx-xforms lyx-qt
+
+lyx_xforms_LDADD = $(lyx_OBJECTS) $(LYX_PRE_LIBS) \
+       frontends/xforms/libxforms.la $(LYX_POST_LIBS) $(OTHERLIBS) 
+lyx_xforms_SOURCES = main.C
+
+lyx_qt_LDADD = $(lyx_OBJECTS) $(LYX_PRE_LIBS) \
+       frontends/qt2/libqt2.la $(LYX_POST_LIBS) $(OTHERLIBS)
+lyx_qt_SOURCES = main.C
+
+lyx$(EXEEXT): $(FRONTENDS_PROGS)
+       rm -f $@
+       $(LN_S) $< $@
 
 #lyx_LDFLAGS=-Wl,-O1
 
@@ -198,7 +209,6 @@ lyx_SOURCES = \
        lyxtextclasslist.h \
        lyxvc.C \
        lyxvc.h \
-       main.C \
        messages.C \
        messages.h \
        metricsinfo.C \
index b2212f105956bddf0ea0aa86d9d363e479f145a8..a62ca4de405deb82b40f4c3062e57e9a0cc3a291 100644 (file)
@@ -1,5 +1,7 @@
 2003-08-02  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
 
+       * Makefile.am (SUBDIRS): use FRONTENDS_SUBDIRS
+
        * Toolbar.C (clearLayoutList): new methods, which resets
        last_textclass_. The derived methods should call that.
 
index 803e0f7d0fb02b29085a811d946ca2dbd5e35747..213ed48c092ed17ca36e36dca0c448b555d5179a 100644 (file)
@@ -1,6 +1,6 @@
 include $(top_srcdir)/config/common.am
 
-SUBDIRS = controllers $(FRONTEND)
+SUBDIRS = controllers $(FRONTENDS_SUBDIRS)
 
 DIST_SUBDIRS = controllers xforms qt2 gnome
 
index 9ada5b5efd58ad8adc73457753d2eedcce3f0c74..fa09ff72e4afed77ce3ad43ef6e2b0c870a186ea 100644 (file)
@@ -1,5 +1,9 @@
 2003-08-02  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
 
+       * ui/Makefile.am (INCLUDES): 
+       * moc/Makefile.am (INCLUDES): 
+       * Makefile.am (INCLUDES): use QT_INCLUDES
+
        * QLToolbar.C (clearLayoutList): call Toolbar::clearLayoutList
 
 2003-07-30  Juergen Spitzmueller  <j.spitzmueller@gmx.de>
index df4aee221be1c8cc010881c1ec38cff1921d0c91..40772237db1925e0c93dfadd755dd84c24e0d247 100644 (file)
@@ -7,7 +7,7 @@ EXTRA_DIST = Makefile.dialogs
 
 INCLUDES = -I$(top_srcdir)/src/ -I$(top_srcdir)/src/frontends/ \
        -I$(top_srcdir)/images \
-       $(FRONTEND_INCLUDES) $(BOOST_INCLUDES) \
+       $(QT_INCLUDES) $(BOOST_INCLUDES) \
        -I$(top_srcdir)/src/frontends/controllers
 
 noinst_LTLIBRARIES = libqt2.la
index e9ef344dbc4972bb9f9eaea5862b604ee3d0ff97..2a7fe7b7136444ab8265b3fb9fa9ec2ecb66a47d 100644 (file)
@@ -7,7 +7,7 @@ INCLUDES = -I$(top_srcdir)/src/ \
        -I$(top_srcdir)/src/frontends/ \
        -I$(top_srcdir)/src/frontends/controllers \
        -I$(top_builddir)/src/frontends/qt2 \
-       $(FRONTEND_INCLUDES) \
+       $(QT_INCLUDES) \
        $(BOOST_INCLUDES)
 
 AM_CXXFLAGS = -DQT_CLEAN_NAMESPACE -DQT_GENUINE_STR -DQT_NO_TRANSLATION
index 9a4f6c2e3752e9fb2ce090a782f745bbca4d57c1..e92b91d0861688bda3eb00c3b06c18f3b02be9e2 100644 (file)
@@ -9,7 +9,7 @@ EXTRA_DIST = $(UIFILES)
 
 INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/src/frontends \
        -I$(top_srcdir)/src/frontends/qt2 \
-       $(FRONTEND_INCLUDES) $(BOOST_INCLUDES) \
+       $(QT_INCLUDES) $(BOOST_INCLUDES) \
        -I$(top_srcdir)/src/frontends/controllers
 
 AM_CXXFLAGS = -DQT_CLEAN_NAMESPACE -DQT_GENUINE_STR -DQT_NO_TRANSLATION
index 7414aa5ef53ac6316201b73125789629aafaa1ad..3f371494bf1ac6bb0f16663fdcd72327b2a9ccff 100644 (file)
@@ -1,5 +1,7 @@
 2003-08-02  Jean-Marc Lasgouttes  <lasgouttes@freesurf.fr>
 
+       * Makefile.am (libxforms_la_LIBADD): use XFORMS_LIBS
+
        * XFormsToolbar.C (clearLayoutList): call Toolbar::clearLayoutList
 
 2003-08-02  Lars Gullik Bjønnes  <larsbj@lyx.org>
index 6b826efce8210134ff71c9de31f1aba60af48e47..f3baee76e495f5f5ec2185f6624208881da24153 100644 (file)
@@ -11,7 +11,7 @@ INCLUDES = -I$(top_srcdir)/images -I$(top_srcdir)/src \
 
 noinst_LTLIBRARIES = libxforms.la
 
-libxforms_la_LIBADD = @XFORMS_IMAGE_LIB@ @XFORMS_LIB@ @XPM_LIB@ forms/*.lo
+libxforms_la_LIBADD = @XFORMS_LIBS@ forms/*.lo
 
 # Alphabetical order please.  It makes it easier to figure out what's missing.
 libxforms_la_SOURCES = \