Am 08.04.2010 um 22:20 schrieb Pavel Sanda:

> Stephan Witt wrote:
>> This patch is tested on Mac OS X 10.6.3 and OpenSuSE 11.2.
>> 
>> It's unfinished now, as it doesn't include the aspell build script.
>> This one I want to integrate somehow in 
>> "development/LyX-Mac-binary-release.sh".
>> But the changes to LyX code base are complete.
> 
> here it compiles too, put it in.

I did it.
The build script mentioned above I finished too.
But I cannot put it in currently because of mysterious link problem in 
tex2lyx...

Let me explain it now.


We build universal binaries for Mac - i.e. running ./configure and make twice.
One build for ppc and one for i386 - finally merged together into one big thing.
Since yesterday I cannot link tex2lyx in the 2nd build phase anymore.
It seems like some missing dependency. The output is like that:

....
Making all in tex2lyx
make  all-am
  CXX    boost.o
  CXX    Context.o
  CXX    math.o
  CXX    Parser.o
  CXX    preamble.o
  CXX    table.o
  CXX    tex2lyx.o
  CXX    text.o
  CXXLD  tex2lyx
ld: warning: QList<QString>::free(QListData::Data*)       has different 
visibility (hidden) in /opt/qt4/lib/libQtCore.a(qstring.o) and (default) in 
../../src/support/liblyxsupport.a(FileName.o)
ld: warning: QList<QString>::detach_helper()       has different visibility 
(hidden) in /opt/qt4/lib/libQtCore.a(qstring.o) and (default) in 
../../src/support/liblyxsupport.a(FileName.o)
ld: warning: QList<QString>::append(QString const&)has different visibility 
(hidden) in /opt/qt4/lib/libQtCore.a(qstring.o) and (default) in 
../../src/support/liblyxsupport.a(FileName.o)
ld: warning: QList<QFileInfo>::free(QListData::Data*)       has different 
visibility (hidden) in /opt/qt4/lib/libQtCore.a(qdir.o) and (default) in 
../../src/support/liblyxsupport.a(FileName.o)
Undefined symbols:
  "lyx::DocIterator::forwardInset()", referenced from:
      lyx::Encodings::initUnicodeMath(lyx::Buffer const&, bool)in Encoding.o
  "lyx::Buffer::isChild(lyx::Buffer*) const", referenced from:
      lyx::Encodings::initUnicodeMath(lyx::Buffer const&, bool)in Encoding.o
  "lyx::operator==(lyx::CursorSlice const&, lyx::CursorSlice const&)", 
referenced from:
      bool std::operator==<lyx::CursorSlice, std::allocator<lyx::CursorSlice> 
>(std::vector<lyx::CursorSlice, std::allocator<lyx::CursorSlice> > const&, 
std::vector<lyx::CursorSlice, std::allocator<lyx::CursorSlice> > const&)in 
Encoding.o
  "lyx::DocIterator::nextInset() const", referenced from:
      lyx::Encodings::initUnicodeMath(lyx::Buffer const&, bool)in Encoding.o
  "lyx::LaTeXFeatures::require(std::basic_string<char, std::char_traits<char>, 
std::allocator<char> > const&)", referenced from:
      lyx::Encodings::validate(wchar_t, lyx::LaTeXFeatures&, bool)in Encoding.o
      lyx::Encodings::validate(wchar_t, lyx::LaTeXFeatures&, bool)in Encoding.o
      lyx::Encodings::validate(wchar_t, lyx::LaTeXFeatures&, bool)in Encoding.o
      lyx::Encodings::validate(wchar_t, lyx::LaTeXFeatures&, bool)in Encoding.o
  "lyx::Buffer::inset() const", referenced from:
      lyx::Encodings::initUnicodeMath(lyx::Buffer const&, bool)in Encoding.o
  "lyx::LaTeXFeatures::isAvailable(std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      lyx::LyXModule::isAvailable() constin ModuleList.o
  "lyx::BufferList::begin()", referenced from:
      lyx::Encodings::initUnicodeMath(lyx::Buffer const&, bool)in Encoding.o
  "lyx::inset_iterator_begin(lyx::Inset&)", referenced from:
      lyx::Encodings::initUnicodeMath(lyx::Buffer const&, bool)in Encoding.o
  "lyx::theBufferList()", referenced from:
      lyx::Encodings::initUnicodeMath(lyx::Buffer const&, bool)in Encoding.o
      lyx::Encodings::initUnicodeMath(lyx::Buffer const&, bool)in Encoding.o
  "lyx::BufferList::end()", referenced from:
      lyx::Encodings::initUnicodeMath(lyx::Buffer const&, bool)in Encoding.o
  "lyx::inset_iterator_end(lyx::Inset&)", referenced from:
      lyx::Encodings::initUnicodeMath(lyx::Buffer const&, bool)in Encoding.o
  "lyx::LaTeXFeatures::addPreambleSnippet(std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      lyx::Encodings::validate(wchar_t, lyx::LaTeXFeatures&, bool)in Encoding.o
      lyx::Encodings::validate(wchar_t, lyx::LaTeXFeatures&, bool)in Encoding.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[5]: *** [tex2lyx] Error 1
make[4]: *** [all] Error 2
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

The 1st build did succeed for tex2lyx. Here the output is (different!):

....
Making all in tex2lyx
make  all-am
  CXX    ../Color.o
  CXX    ../Counters.o
  CXX    ../Encoding.o
  CXX    ../FloatList.o
  CXX    ../Floating.o
  CXX    ../FontInfo.o
  CXX    ../Layout.o
  CXX    ../LayoutModuleList.o
  CXX    ../lengthcommon.o
  CXX    ../Lexer.o
  CXX    ../ModuleList.o
  CXX    ../Spacing.o
  CXX    ../TextClass.o
  CXX    boost.o
  CXX    Context.o
  CXX    math.o
  CXX    Parser.o
  CXX    preamble.o
  CXX    table.o
  CXX    tex2lyx.o
  CXX    text.o
  CXXLD  tex2lyx
ld: warning: QList<QString>::free(QListData::Data*)       has different 
visibility (hidden) in /opt/qt4/lib/libQtCore.a(qstring.o) and (default) in 
../../src/support/liblyxsupport.a(FileName.o)
ld: warning: QList<QString>::detach_helper()       has different visibility 
(hidden) in /opt/qt4/lib/libQtCore.a(qstring.o) and (default) in 
../../src/support/liblyxsupport.a(FileName.o)
ld: warning: QList<QString>::append(QString const&)has different visibility 
(hidden) in /opt/qt4/lib/libQtCore.a(qstring.o) and (default) in 
../../src/support/liblyxsupport.a(FileName.o)
ld: warning: QList<QFileInfo>::free(QListData::Data*)       has different 
visibility (hidden) in /opt/qt4/lib/libQtCore.a(qdir.o) and (default) in 
../../src/support/liblyxsupport.a(FileName.o)
Making all in sourcedoc
....


I already swapped the build platforms. It doesn't matter - it's always the 2nd 
run failing.
I do a "make clean" before make. (Doing so after make is not nice. I have a 
ready to change 
and compile again i386 build if I clean before.)

The relevant script code here is:

...
for arch in ${ARCH_LIST} ; do

   CPPFLAGS="${SDKROOT:+-isysroot ${SDKROOT}} -arch ${arch}"; export CPPFLAGS
   LDFLAGS="${CPPFLAGS}"; export LDFLAGS

   HOSTSYSTEM=`eval "echo \\$HostSystem$arch"`

   echo LDFLAGS="${LDFLAGS}"
   echo CPPFLAGS="${CPPFLAGS}"
   "${LyxSourceDir}/configure"\
      --prefix="${LyxAppPrefix}" --with-version-suffix="-${LyXVersion}"\
      ${QtInstallDir:+"--with-qt4-dir=${QtInstallDir}"} \
      ${ConfigureOptions}\
      ${GetText} --host="${HOSTSYSTEM}" --build="${BuildSystem}" 
--enable-build-type=rel

   make clean
   make && make install${strip}

   for file in ${FILE_LIST} ; do
      if [ -f "${LyxAppPrefix}"/Contents/MacOS/${file} ]; then
         mv "${LyxAppPrefix}"/Contents/MacOS/${file}\
            "${LyxAppPrefix}"/Contents/MacOS/${file}-${arch}
      else
         echo Cannot build and install LyX for ${arch}.
         exit 1
      fi
   done
done
....

Currently I'm lost. Does anybody have an idea? Is it something with the latest 
automake changes?
(The alpha1 tarball is working with my build script!)

Stephan

PS. The linker warnings have to be addressed too, but I think they are not 
related.
PPS. There is a new action on install of the lyx binary, something is fishy in 
dependencies:
...
Making install in .
  AR     liblyxcore.a
  CXXLD  lyx
*** Lots of linker warnings...
  /usr/bin/install -c lyx 
'/Users/stephan/cvs/lyx/LyX-2.0.0svn.app/Contents/MacOS'
...

Reply via email to