Working with Cross Platforms from Linux
There is more to cross software development then just compiling the code. Working with package management systems or archive files, icon specifications, and other tidbits can be found below.
OSX
Package Management
OSX commonly uses 2 systems for
.pkg: This is a xar compressed file.
Xar: Used for extracting .pkg files
- Homepage: code.google.com/p/xar
- Download: xar.googlecode.com/files/xar-1.5.2.tar.gz
- Build:
- ./configure --prefix=/usr
- make
- make install
.dmg: a hfsplus image. Usually compressed & read only when used for package management
genisoimage(from cdrkit): Creates a readonly .dmg file from a directory
genisoimage -D -V "%lt;Volume Label>" -no-pad -r -apple -o <file.dmg> <Source Directory>
- -D: Do not use deep directory relocation, and instead just pack them in the way we see them
- -V: Volume Label
- -no-pad: Do not pad the end by 150 sectors (300kb). As it is not a cd image, not required
- -apple -r: Creates a .dmg image
libdmg-hfsplus: This utility can compress a .dmg archive. Since the original libdmg from planetbeing, it looks like hamstergene has fixed a few bugs, as well as fixing the crc32 calculations
- Download: libdmg-hfsplus.tar.gz
- Patch: libdmg-hfsplus-fixes-1.patch: Compilation Fix
- Build:
- patch -Np1 -i libdmg-hfsplus-fixes-1.patch
- cmake CMakeLists.txt -DCMAKE_INSTALL_PREFIX=/usr/bin
- make
- make install
To compress a .dmg file,
dmg dmg <file.dmg> <compressedfile.dmg>