2001/02/09    LCLIB, JSF, and Physsim on MacOSX

仕事のソフトの移植は続く。本当は Dynamic Loading の際の COMMON BLOCK の初期化の問題など書いておかねばならないことがあるのだが、時間がないので作業記録のみ。
 
 

[0] Problem with rmkdepend

Found that rmkdepend needed MacOSX patch: otherwise, it complains that platform unsupported:-(
New patch including this modification is root_v3.00.02-macosx-0.3.patch which should be used instead of   root_v3.00.02-macosx-0.2.patch.

[1] LCLIB

- config/lclib.tmpl ---> MacOSX configs
- gen/Makefile, util/Makefile
   ---> SHELL = /bin/bash (sh = zsh doesn't work)
- util/lcful/src/prblk1.F
   ---> presta and prrsta added to force ld to
        link these commons, otherwise they became
        undefined upon linking of JSF
- util/tbschk/termlib.c ---> #include <ncurses/curses.h> instead of
        #include <curses.h>

[2] JSF

- conf/makejsf.tmpl :  MacOSX configs
 SOEXT  ---> so even for MacOSX (for bundle)
 DllSuf  ---> $(SOEXT)
 DylibSuf ---> so, sl, or dylib   (for shared libs)
 DYLDFLAGS ---> for shared libs
    = -dylib -r -nostartfiles (for MacOSX)
 SOFLAGS  ---> for dynamically loadable modules (for bundle)
    = -bundle -undefined suppress (for MacOSX)
- conf/makespec : remove \n
- src/Imakefile
 DllSuf  ---> DylibSuf
 SOFLAGS ---> DYLDFLAGS
- src/JSFGenerator.cxx
 Always create fParticles in ctor
- src/JSFHelicalTrack.h
 Remove static keyword from local vector objects defined in
 inline member functions: otherwise, the compiler abends
 with "Can't emit relocs" errors:-(
- src/JSFHelicalTrack.cxx
 Added "static" to local globals
- src/JSFReadGenerator.{h,cxx}, JSFSIMDST.{h,cxx}
 vector-new is incompatible with big local arrays:-(
 ---> Had to separate array definitions and and vector-new by
      preparing private interface methods: otherwise I internal
      compiler error, saying something is out of range.
 This must be a compiler bug!
- src/JSFFULLGenerator.h
 fSpring --> //! or LinkDef.h as a temporary remedy
  ROOT V3 like Streamer does not work.
- src/jsfmain.cxx
 Invoke explicitly
  G__cpp_setupG__Pythia() and pydata_()
 in order to force linker to bind them into JSF: otherwise
 some important pythia common blocks are left uninitialized.
- src/JSFFULLGenerator.h
- example/guiexam1/JSFEventDisplay.cxx
 In order to avoid random seg-faults, use
  fCanvas->Clear("d"); instead of fCanvas->Clear();

[3] PHYSSIM

- Makefile   ---> SHELL = /bin/bash (sh = zsh doesn't work)
- config/kflib.tmpl : MacOSX configs
 Moved definition of ANALLIB and HELASV204 from individual Imakefiles:
  SOFLAGS : added install_name
  ROOTLIBS += -lEGPythia -lEG
  InstallSharedLibrary rule
- Anlib/src/ANLPairCombiner.h
 Added const key words to Compare to override virtual:
  Int_t Compare(const TObject *) const
- Anlib/examples/jsf/ww/4jet/WW4JAnalysis.cxx
 Found a bug:
  sol->Delete() should be removed, since its contents being
  W candidates will be deleted in dtor of ANLPairCombiner.
 Use SetOwner() for tracks and solutions.
 Cut stats mulfunctioned if no events left:
  "END" missing in the cut table titles.
- Individual generators in higgs, susy, top, twoph, and wz subdirectories :
 Imakefile ---> Remove ANALLIB definitions
   Added HELASV204 definitions
 UserAnalysis.C if any : (ww, tt, and xcxc) :
  ---> Use SetOwner() for solutions and tracks and
        remove tracks.Delete(), etc.
  ---> Use new for ANLPairCombiner objects in local for loop
       scope: otherwise, dtor is called even when the loop
       is skipped:-(
   ---> This is probably a scope problem with CINT.


今までにコンパイルしたもののソースおよびパッチは macosx/src に、またバイナリーの tar ball は macosx/tgz または macosx/darwin.tgz にそれぞれ置いてある。いつものように使う場合は自己責任で。
 


Back to Keisuke Fujii's MkLinux/LinuxPPC Life