[ptx] Hugin 0.6 on OS X Crashing

Ippei UKAI ippei_ukai at mac.com
Thu Aug 3 23:24:00 BST 2006


On 2006-08-02, at 01:13, JD Smith wrote:
>
> Thanks, Ippei.  So a Makefile which creates the .app directory  
> heirarchy, and copies components in from the mac/ source directory  
> should be simple to code, yes?  There is no other patching, etc.  
> which your XCode project does (other than gather all the needed  
> libraries, and compile things statically).

Well, there might be a few compiler arguments (especially -D options  
if ever set), but the basic process is simply compile->bundle.
As I have written, some patches are applied to the resource files  
when the "localised" script thingy (the name is no longer correct as  
it does more than localising the resources) which is called in the  
last step of Xcode build process.

> Could you suggest any thing else the Makefile would have to do?   
> For example, Emacs' configure.in does:
>
> ### Use Mac OS X Carbon API to implement GUI. if test "$ 
> {HAVE_CARBON}" = "yes"; then   AC_DEFINE(HAVE_CARBON, 1, [Define to  
> 1 if you are using the Carbon API on Mac OS X.])   ## Specify the  
> install directory   carbon_appdir=   if test "${carbon_appdir_x}" ! 
> = ""; then     case ${carbon_appdir_x} in       y | ye | yes)   
> carbon_appdir=/Applications ;;       * ) carbon_appdir=$ 
> {carbon_appdir_x} ;;     esac   fi   # We also have mouse menus.    
> HAVE_MENUS=yes   tmp_CFLAGS="$CFLAGS"   CFLAGS="$CFLAGS -framework  
> Carbon"   AC_CHECK_FUNC(CancelMenuTracking, have_cmt=yes,  
> have_cmt=no)   if test "$have_cmt" = yes; then     AC_DEFINE 
> (HAVE_CANCELMENUTRACKING, 1,               [Define to 1 if  
> CancelMenuTracking is available (Mac OSX).])   fi    
> CFLAGS="$tmp_CFLAGS" fiThey also have "mac/Emacs.app" already  
> checked into CVS with the PkgInfo, Info.plist, etc. files already  
> setup.  Then make simply copies the created executable to mac/ 
> Emacs.app/Contents/MacOS/, if it realizes it must make a mac  
> version.  The src/Makefile is auto-generated by configure (via m4  
> pre-processing) with the correct things in it, such as:
> ${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
>         mkdir -p ${emacsapp}Contents/MacOS/;
>         cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs$ 
> {EXEEXT} Emacs${
> EXEEXT}
> ${emacsapp}Contents/Resources/Emacs.rsrc: ../mac/src/Emacs.r
>         /Developer/Tools/Rez -useDF -o ${emacsapp}Contents/ 
> Resources/Emacs.rsrc
> /System/Library/Frameworks/Carbon.framework/Headers/Carbon.r $<
> ${libsrc}emacstool${EXEEXT}: ${libsrc}emacstool.c
>         cd ${libsrc}; ${MAKE} ${MFLAGS} emacstool${EXEEXT}

.r files are not needed with wxWidgets 2.6. Many frameworks are to be  
linked, but none of them are for hugin's main code. wx requires quite  
a few and pano12 requires Carbon at least. I have no idea of  
"carbon_appdir=/Applications" part, but it's best not to hard code  
any paths like that ever in the build process.

> etc.  So I think it's really just a matter of:
>
> 1. creating and checking into CVS mac/Hugin.app with all the  
> correct structure and handful of pre-existing files from your  
> HuginOSX.app bundle.
> 2. arranging for Pablo's configure/Makefile heirarchy to copy the  
> binary into the correct location.

Please not to commit the directory structures in the CVS. It's better  
be created in the build process for many reasons. The stupidest  
reason is that Emacs.app has /CVS folders inside the app package and  
looks stupid. The .plist file is in the CVS, and Package file is only  
a matter of dumping 8 characters into a file.

> 3. (optional) Borrow their make-package script to make a compressed  
> installer package .dmg file.

Well, .dmg is just a disk image format. Probably a good idea to make  
a lisence enabled dmg file for HuginOSX.app and a separate package  
(proper Installer package or just .tgz file) to distribute command  
line tools.



> We could even copy enblend and autopano-sift into Contents/MacOS  
> (assuming license issues with the later don't interfere), and pre- 
> configure Hugin to look for them there.

This is what I have intended to do and technically it's already  
possible. Eventually it's not done for license and/or other moral  
reasons. (Don't ask me...) I'm attaching AppleScript applications  
that let users to do this by their selves. My enblend lives in /MacOS  
and autopano-sift lives in /Resources/autopano-sift. With those files  
inside the bundle, simple DnD installation is possible.

Ippei

--
  ->> 鵜飼 一平  (UKAI Ippei) ->>>>>>>>>>>>>>>>>>>>>>>>
   MSN & AIM: ippei_ukai at mac.com  (Skype: ippei_ukai)
   Homepage:  http://homepage.mac.com/ippei_ukai/




More information about the ptx mailing list