问题
I am trying to instal libiconv with MacPorts. I need to build it to run in OS X 10.5 while my Mac is running 10.6. So I added this like to macports.conf:
macosx_deployment_target 10.5
That supposedly force MacPorts to build the port with 10.5 SDK. However, the installed libraries still contain LC_DYLD_INFO load command which is available only in 10.6.
I reinstalled the port with -v option and find that it downloads and installs a pre-built package without compiling. The package obviously was built on a 10.6 machines.
The question is: how can I force MacPorts to built the port on my machine with my settings? Thanks.
Edit: I am building x86/x64 universal binaries with this command:
sudo port -v install libiconv +universal
回答1:
As of MacPorts 2.1.0, there is a new setting called buildfromsource in the configuration file /opt/local/etc/macports/macports.conf that controls the use a pre-built archives:
# When to build ports from source. Default is 'ifneeded', which downloads an
# archive if available or builds from source otherwise. 'always' has the same
# effect as -s on the command line, and 'never' is likewise the same as -b.
#buildfromsource ifneeded
回答2:
Duh! I've looked up and down for the better part of the day. And right after I posted the question, I find it out myself.
Add -s to port command and it will pull and compile the source locally:
sudo port -s -v install libiconv +universal
来源:https://stackoverflow.com/questions/10319314/prevent-macports-from-installing-pre-built-package