Max OS X
最后更新于:2022-04-01 02:23:29
# Mac OS X
### Setup development environment
1. Install xcode
1.
Install macports
Modify file `/opt/local/share/macports/Tcl/port1.0/portconfigure.tcl`, change the line
~~~
default configure.ldflags {-L${prefix}/lib}
~~~
to
~~~
default configure.ldflags {"-L${prefix}/lib -Xlinker -headerpad_max_install_names"}
~~~
1.
Install following libraries and tools using `port`
~~~
autoconf,intltool,automake, pkgconfig,libtool,glib2,ossp-uuid,libevent,vala,openssl, git-core
~~~
1.
Install python
~~~
port install python27
port select python python27
export PATH=/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH
~~~
Then download and install pip from [http://pypi.python.org/pypi/pip](http://pypi.python.org/pypi/pip)
1.
Set pkg config environment
~~~
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig
~~~
### Compiling libsearpc
Download [libsearpc](https://github.com/haiwen/libsearpc), then:
~~~
./autogen.sh
LDFLAGS="-Xlinker -headerpad_max_install_names" ./configure
make
sudo make install
~~~
### Compiling ccnet
Download [ccnet](https://github.com/haiwen/ccnet), then:
~~~
./autogen.sh
CFLAGS="-Wall" LDFLAGS="-L/opt/local/lib -Xlinker -headerpad_max_install_names" ./configure
make
sudo make install
~~~
### Compiling seafile
1. Download [seafile](https://github.com/haiwen/seafile)
1.
Install python libs and tools
~~~
sudo pip-2.7 install py2app web.py mako simplejson
~~~
1.
Compile
~~~
./autogen.sh
LDFLAGS="-L/opt/local/lib -Xlinker -headerpad_max_install_names -framework CoreServices" ./configure
make
sudo make install
~~~
### Packaging
1.
seafileweb. First setup python path:
~~~
export PYTHONPATH=.:/usr/local/lib/python2.7/site-packages
~~~
This path is where pyccnet and pysearpc installed.
~~~
./setupmac.sh web
~~~
This will generate `seafileweb.app`, and copy it to `gui/mac/seafile`
1.
ccnet, seaf-daemon:
~~~
./setupmac.sh dylib
~~~
This will copy ccnet, seaf-daemon and other libraries to gui/mac/seafile, and use `install_name_tool` to modify the library paths in ccnet, seaf-daemon.
1.
Compile seafile.app:
~~~
./setupmac.sh 10.6 or ./setupmac.sh 10.7
~~~
After compiling, it will copy seafile.app to `${top_dir}/../seafile-${VERSION}`. You can also compiling seafile.app in xcode.
1.
Go to seafile-${VERSION} and see if it can run correctly.
1.
Construct dmg using dropdmg. Use `dmg-backgroud.jpg` as dmg background, add link of `/Application` to seafile-${VERSION}, then packaging seafile-${VERSION} to seafile-${VERSION}.dmg.
### Problem you may encounter
1. If `install_name_tool` reports "malformed object" "unknown load command", It may be the version of xcode command line tools incompatible with `install_name_tool`.
1. If xcode can't find glib, Corrects xcode's "build settings/search paths/header search".