Difference between revisions of "How to build AOO on MacOSX 10.8"

From Apache OpenOffice Wiki
Jump to: navigation, search
Line 33: Line 33:
 
    
 
    
 
== To solve build break #1 ==
 
== To solve build break #1 ==
<big>Module</big> : pyuno
+
<big>Module</big> : accessibility
  
 
<big>The original error message</big>
 
<big>The original error message</big>
  /Users/hchao/Apache/build/aoo.20120802/code/main/pyuno/source/module/pyuno_runtime.cxx:68: error: ‘PyVarObject_HEAD_INIT’ was not declared in this scope
+
/Users/hchao/Apache/build/r1386978/main/solenv/bin/checkdll.sh -L../unxmacxi.pro/lib -L/Users/hchao/Apache/build/r1386978/main/solver/350/unxmacxi.pro/lib  ../unxmacxi.pro/lib/libacc.dylib
 +
Checking DLL ../unxmacxi.pro/lib/libacc.dylib ...: ERROR: dlopen(../unxmacxi.pro/lib/libacc.dylib, 2): Symbol not found: _objc_exception_extract
 +
Referenced from: /Users/hchao/Apache/build/r1386978/main/solver/350/unxmacxi.pro/lib/libvcl.dylib
 +
Expected in: /Users/hchao/Apache/build/r1386978/main/solver/350/unxmacxi.pro/lib/libvcl.dylib
  
<big>Root cause</big> : There is no "PyVarObject_HEAD_INIT" for Python 2.7 on MacOSX 10.8. The related revision is 1367858 "pyuno: Replace PyObject_HEAD_INIT with PyVarObject_HEAD_INIT and add some initial Python3 safeguards."
+
dmake: Error code 1, while making '../unxmacxi.pro/lib/libacc.dylib'
 +
dmake: '../unxmacxi.pro/lib/libacc.dylib' removed.
 +
Running processes: 0
 +
ERROR: error 65280 occurred while making /Users/hchao/Apache/build/r1386978/main/accessibility/util
  
<big>Solution</big> : To revert the revision from 1367858 to 1366479 for module pyuno
+
<big>Root cause</big> : There is no symbol for "_obj_exception_extract"
  cd pyuno
+
  rm -rf unxmaci.pro
+
  svn up -r 1366479
+
  build
+
  deliver
+
  
== To solve build break #2 ==
+
<big>Solution</big> : TBD
<big>Module</big> : avmedia
+
 
+
<big>The original error message</big>
+
  /Users/hchao/Apache/build/aoo.20120802/code/main/solenv/bin/checkdll.sh -L../unxmacxi.pro/lib -L/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib  ../unxmacxi.pro/lib/libavmedia.dylib
+
  Checking DLL ../unxmacxi.pro/lib/libavmedia.dylib ...: ERROR: dlopen(../unxmacxi.pro/lib/libavmedia.dylib, 2): Symbol not found: ___CFConstantStringClassReference
+
  Referenced from: /Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsfx.dylib
+
  Expected in: /Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsfx.dylib
+
 
+
<big>Root cause</big> : can not link to "___CFConstStringClassReference"
+
 
+
<big>Try Steps</big> : To append "-framework CoreFoundation" to "SHL1STDLIBS" in file "avmedia/util/makefile.mk". But it does not effect.
+
  /Users/hchao/Apache/build/aoo.20120802/code/main/solenv/bin/checkdll.sh -L../unxmacxi.pro/lib -L/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib  ../unxmacxi.pro/lib/libavmedia.dylib
+
  Checking DLL ../unxmacxi.pro/lib/libavmedia.dylib ...: ERROR: dlopen(../unxmacxi.pro/lib/libavmedia.dylib, 2): Symbol not found: ___CFConstantStringClassReference
+
  Referenced from: /Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsfx.dylib
+
  Expected in: /Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsfx.dylib
+
 
+
<big>Walk Around</big> : To skip checkdll in module avmedia
+
  cd avmedia/util
+
  /usr/bin/g++-4.0 -Wl,-multiply_defined,suppress -lobjc -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -install_name @__________________________________________________OOO/libavmedia.dylib -dynamiclib -single_module -L../unxmacxi.pro/lib -L/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib -L/usr/lib -o ../unxmacxi.pro/lib/libavmedia.dylib -lutl -ltl -luno_cppu -luno_cppuhelpergcc3 -luno_sal -lvcl -lcomphelpgcc3 -lsvt -lsvl -lsfx -lvos3gcc3 -framework CoreFoundation -lpthread -lstdc++ -lm  -filelist ../unxmacxi.pro/misc/libavmedia.list -Wl,-dylib_file,@__________________________________________________OOO/libutl.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libutl.dylib -Wl,-dylib_file,@__________________________________________________OOO/libtl.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libtl.dylib -Wl,-dylib_file,@__________________________________________________URELIB/libuno_cppu.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_cppu.dylib -Wl,-dylib_file,@__________________________________________________URELIB/libuno_cppuhelpergcc3.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_cppuhelpergcc3.dylib -Wl,-dylib_file,@__________________________________________________URELIB/libuno_sal.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_sal.dylib -Wl,-dylib_file,@__________________________________________________OOO/libvcl.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libvcl.dylib -Wl,-dylib_file,@__________________________________________________OOO/libcomphelpgcc3.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libcomphelpgcc3.dylib -Wl,-dylib_file,@__________________________________________________OOO/libsvt.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsvt.dylib -Wl,-dylib_file,@__________________________________________________OOO/libsvl.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsvl.dylib -Wl,-dylib_file,@__________________________________________________OOO/libsfx.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsfx.dylib -Wl,-dylib_file,@__________________________________________________OOO/libvos3gcc3.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libvos3gcc3.dylib -Wl,-dylib_file,@loader_path/../ure-link/lib/libuno_salhelpergcc3.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_salhelpergcc3.dylib.3 -Wl,-dylib_file,@loader_path/libcomphelpgcc3.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libcomphelpgcc3.dylib -Wl,-dylib_file,@loader_path/libucbhelper4gcc3.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libucbhelper4gcc3.dylib -Wl,-dylib_file,@loader_path/../ure-link/lib/libuno_cppuhelpergcc3.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_cppuhelpergcc3.dylib.3 -Wl,-dylib_file,@loader_path/../ure-link/lib/libuno_cppu.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_cppu.dylib.3 -Wl,-dylib_file,@loader_path/libi18nisolang1gcc3.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libi18nisolang1gcc3.dylib -Wl,-dylib_file,@loader_path/libtl.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libtl.dylib -Wl,-dylib_file,@loader_path/libvos3gcc3.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libvos3gcc3.dylib -Wl,-dylib_file,@loader_path/../ure-link/lib/libuno_sal.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_sal.dylib.3 -Wl,-dylib_file,@loader_path/libbasegfx.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libbasegfx.dylib -Wl,-dylib_file,@loader_path/libuno_sal.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_sal.dylib.3 -Wl,-dylib_file,@loader_path/libuno_salhelpergcc3.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_salhelpergcc3.dylib.3 -Wl,-dylib_file,@loader_path/libuno_cppu.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_cppu.dylib.3 -Wl,-dylib_file,@loader_path/libutl.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libutl.dylib -Wl,-dylib_file,@loader_path/libsot.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsot.dylib -Wl,-dylib_file,@loader_path/libicuuc.dylib.40.1:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libicuuc.dylib.40.1 -Wl,-dylib_file,@loader_path/libicule.dylib.40.1:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libicule.dylib.40.1 -Wl,-dylib_file,@loader_path/libi18npaper.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libi18npaper.dylib -Wl,-dylib_file,@loader_path/libi18nutilgcc3.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libi18nutilgcc3.dylib -Wl,-dylib_file,@loader_path/../ure-link/lib/libjvmaccessgcc3.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libjvmaccessgcc3.dylib.3 -Wl,-dylib_file,@loader_path/libAppleRemote.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libAppleRemote.dylib -Wl,-dylib_file,@loader_path/../ure-link/lib/libjvmfwk.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libjvmfwk.dylib.3 -Wl,-dylib_file,@loader_path/libsvl.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsvl.dylib -Wl,-dylib_file,@loader_path/libtk.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libtk.dylib -Wl,-dylib_file,@loader_path/libvcl.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libvcl.dylib -Wl,-dylib_file,@loader_path/libfwe.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libfwe.dylib -Wl,-dylib_file,@loader_path/libsax.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsax.dylib -Wl,-dylib_file,@loader_path/libsb.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsb.dylib -Wl,-dylib_file,@loader_path/libsvt.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsvt.dylib -Wl,-dylib_file,@__________________________________________________URELIB/libuno_salhelpergcc3.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_salhelpergcc3.dylib.3 -Wl,-dylib_file,@__________________________________________________OOO/libucbhelper4gcc3.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libucbhelper4gcc3.dylib -Wl,-dylib_file,@__________________________________________________OOO/libi18nisolang1gcc3.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libi18nisolang1gcc3.dylib -Wl,-dylib_file,@__________________________________________________OOO/libbasegfx.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libbasegfx.dylib -Wl,-dylib_file,@__________________________________________________OOO/libsot.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsot.dylib -Wl,-dylib_file,@__________________________________________________OOO/libicuuc.dylib.40.1:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libicuuc.dylib.40.1 -Wl,-dylib_file,@loader_path/libicudata.dylib.40.1:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libicudata.dylib.40.1 -Wl,-dylib_file,@__________________________________________________OOO/libicule.dylib.40.1:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libicule.dylib.40.1 -Wl,-dylib_file,@__________________________________________________OOO/libi18npaper.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libi18npaper.dylib -Wl,-dylib_file,@__________________________________________________OOO/libi18nutilgcc3.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libi18nutilgcc3.dylib -Wl,-dylib_file,@__________________________________________________URELIB/libjvmaccessgcc3.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libjvmaccessgcc3.dylib.3 -Wl,-dylib_file,@__________________________________________________OOO/libAppleRemote.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libAppleRemote.dylib -Wl,-dylib_file,@__________________________________________________URELIB/libjvmfwk.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libjvmfwk.dylib.3 -Wl,-dylib_file,@loader_path/libuno_cppuhelpergcc3.dylib.3:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libuno_cppuhelpergcc3.dylib.3 -Wl,-dylib_file,@__________________________________________________OOO/libtk.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libtk.dylib -Wl,-dylib_file,@__________________________________________________OOO/libfwe.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libfwe.dylib -Wl,-dylib_file,@loader_path/libfwi.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libfwi.dylib -Wl,-dylib_file,@__________________________________________________OOO/libsax.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsax.dylib -Wl,-dylib_file,@__________________________________________________OOO/libsb.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsb.dylib -Wl,-dylib_file,@loader_path/libxcr.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libxcr.dylib -Wl,-dylib_file,@__________________________________________________OOO/libicudata.dylib.40.1:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libicudata.dylib.40.1 -Wl,-dylib_file,@__________________________________________________OOO/libfwi.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libfwi.dylib -Wl,-dylib_file,@__________________________________________________OOO/libxcr.dylib:/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libxcr.dylib
+
  cd ..
+
  build
+
  deliver
+
 
+
<big>Solution</big> : There is a similar issue on early MacOSX 10.6 [https://discussions.apple.com/message/15502776#15502776 [3]]. So it may be a system defect in 10.8. Please update this part if you get the solution
+
 
+
== To solve build break #3 ==
+
<big>Module</big> : slideshow
+
 
+
<big>The original error message</big>
+
  /Users/hchao/Apache/build/aoo.20120802/code/main/solenv/bin/checkdll.sh -L../unxmacxi.pro/lib -L/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib  ../unxmacxi.pro/lib/slideshow.uno.dylib
+
Checking DLL ../unxmacxi.pro/lib/slideshow.uno.dylib ...: ERROR: dlopen(../unxmacxi.pro/lib/slideshow.uno.dylib, 2): Symbol not found: ___CFConstantStringClassReference
+
  Referenced from: /Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsfx.dylib
+
  Expected in: /Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib/libsfx.dylib
+
 
+
<big>Root cause</big> : can not link to "___CFConstStringClassReference". The same as the one in build break #2
+
 
+
<big>Walk Around</big> : To skip checkdll in module slideshow
+
 
+
== To solve build break #4 ==
+
<big>Module</big> : connectivity
+
 
+
<big>The original error message</big>
+
  /Users/hchao/Apache/build/aoo.20120802/code/main/solenv/bin/checkdll.sh -L../../../unxmacxi.pro/lib -L/Users/hchao/Apache/build/aoo.20120802/code/main/solver/350/unxmacxi.pro/lib  ../../../unxmacxi.pro/lib/libmacabdrv1.dylib
+
Checking DLL ../../../unxmacxi.pro/lib/libmacabdrv1.dylib ...: ERROR: dlopen(../../../unxmacxi.pro/lib/libmacabdrv1.dylib, 2): Symbol not found: _kCFAbsoluteTimeIntervalSince1970
+
  Referenced from: ../../../unxmacxi.pro/lib/libmacabdrv1.dylib
+
  Expected in: ../../../unxmacxi.pro/lib/libmacabdrv1.dylib
+
 
+
<big>Root cause</big> : can not link to "_kCFAbsoluteTimeIntervalSince1970". Like the one in build break #2
+
 
+
<big>Walk Around</big> : To skip checkdll in module connectivity
+
  
 
== Reference ==
 
== Reference ==

Revision as of 10:51, 19 September 2012

I'm trying to make AOO buildable on the latest MacOSX 10.8 - Mountain Lion. As what we did on MacOSX 10.7, we have to install Xcode 3.2 with SDK 10.4u. There are still some build breaks for AOO, which need to solve one by one.

To install Xcode 3.2 on MacOSX 10.8

Please refer to [1]. You need to change "10.7" to "10.9". The machine will reboot and the system will meet "kernel panics" after install Xcode 3.2. You need to enter the "Safe Mode" and delete some files.

Press "shift" during startup to enter the "Safe Mode". Go to the dir "/System/Library/Extentions/". Delete the following files, which belong to Xcode 3.2 on MacOSX 10.6

    (1) AppleProfileFamily.kext
    (2) CHUDKernLib.kext
    (3) CHUDProf.kext
    (4) CHUDUtils.kext

Reboot the machine normally. Please refer to [2]

To install JVM

Go to dir "/Applications/Utilities/", launch "Java Preferences.app" to start to download JVM

To install command support package with Xcode 4.4

There is no commands like "make", "svn" in "/usr/bin" on MacOSX 10.8 with Xcode 3.2. You need to download Xcode 4.4, launch it, click on memu "Xcode / Preferences..." to popup a dialog, select "Downloads / Components", click to install "Command Line Tools"

To build AOO's source code

Open a terminal, run cmds as below

    svn co https://svn.apache.org/repos/asf/incubator/ooo/trunk/ code
    cd code/main
    autoconf
    ./configure --with-dmake-url="http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2" --with-epm-url="http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz" --disable-build-mozilla --enable-category-b --enable-minimizer --enable-presenter-console --enable-wiki-publisher
    ./bootstrap
    source MacOSXX86Env.Set.sh
    cd instsetoo_native
    build --all -P4
  

To solve build break #1

Module : accessibility

The original error message /Users/hchao/Apache/build/r1386978/main/solenv/bin/checkdll.sh -L../unxmacxi.pro/lib -L/Users/hchao/Apache/build/r1386978/main/solver/350/unxmacxi.pro/lib ../unxmacxi.pro/lib/libacc.dylib Checking DLL ../unxmacxi.pro/lib/libacc.dylib ...: ERROR: dlopen(../unxmacxi.pro/lib/libacc.dylib, 2): Symbol not found: _objc_exception_extract Referenced from: /Users/hchao/Apache/build/r1386978/main/solver/350/unxmacxi.pro/lib/libvcl.dylib Expected in: /Users/hchao/Apache/build/r1386978/main/solver/350/unxmacxi.pro/lib/libvcl.dylib

dmake: Error code 1, while making '../unxmacxi.pro/lib/libacc.dylib' dmake: '../unxmacxi.pro/lib/libacc.dylib' removed. Running processes: 0 ERROR: error 65280 occurred while making /Users/hchao/Apache/build/r1386978/main/accessibility/util

Root cause : There is no symbol for "_obj_exception_extract"

Solution : TBD

Reference

[1] http://anatomicwax.tumblr.com/post/7906770311/installing-xcode-3-2-6-on-lion

[2] https://discussions.apple.com/thread/4145448?start=0&tstart=0

[3] https://discussions.apple.com/message/15502776#15502776

Personal tools