Mac OSX installer for dmd

Jacob Carlborg doob at me.com
Mon Aug 2 11:52:58 PDT 2010


On 2010-08-02 16:41, Michel Fortin wrote:
> On 2010-08-02 09:18:37 -0400, Andrei Alexandrescu
> <SeeWebsiteForEmail at erdani.org> said:
>
>> On 08/02/2010 06:01 AM, Jacob Carlborg wrote:
>>> Have you guys completely forgot
>>> http://dsource.org/projects/dmd-installer/browser/trunk/osx ? It's been
>>> there for over a year.
>>
>> Hi Jacob,
>>
>> Apologies for the oversight. I take it it's okay if Walter uses your
>> code to build the distribution automatically? If so, what are the
>> similarities and the differences with Michel's approach?
>
> I think I can answer that.
>
> * Jacob's installer includes DMD directly inside the installation
> package, which I believe is more practical for the user, but less for
> the maintainer as the installer needs to be rebuild for each new
> release. My installer downloads the latest version during the install. I
> do this so I can host the installer on my website with no licensing
> issue and update it only when releasing a new version of D for Xcode.
>
> * Jacob's installer installs in /usr/share/dmd and creates symlinks in
> /usr/bin and /usr/share/man. D for Xocde installs DMD 1 in
> /Library/Compilers/dmd and DMD 2 in /Library/Compilers/dmd2 (user
> visible folders) and makes symlinks in /usr/local/{bin,lib,man}.
>
> * Jacob's installer requires a modified dmd.conf file. Not with my
> installer. With mine, once the symlinks are in place you can just swap
> the dmd or dmd2 folder in /Library/Compilers with a newer one from
> Digital Mars, but you'll need to set the executable bits manually
> (because Walter's archives comes without the executable bit set).
>
> * With Jacob's installer, DMD 1 and DMD 2 will overwrite each other (or
> so I believe). My installer is meant to have both dmd1 and dmd2 usable
> at the same time. Essentially the symlinks /usr/local/bin/* pointing to
> /Library/Compilers/{dmd,dmd2}/osx/bin/* are arranged to that you can
> call 'dmd1' and 'dmd2' from the command line to get either one or the
> other, and 'dmd' will call either dmd2 or dmd1, which you can change
> with the 'sudo setdmd 1' or 'sudo setdmd 2' command. This mimics
> somewhat how Apple bundles multiple versions of GCC in the Xcode package
> and allow changing the default version.

I guess I should fix that if anyone wants to use the installer.

> As a side note, my D plugin for Xcode expects DMD to be available at
> /usr/local/bin/{dmd,dmd1,dmd2} and the runtime libraries should be in
> /usr/local/lib. It won't work if the files can't be found there,
> although I might change that if an official distribution of DMD installs
> itself elsewhere.

That was a lot better answer than mine.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list