Prototype buildsystem "Drake"

Jacob Carlborg doob at me.com
Thu Jul 14 12:41:04 PDT 2011


On 2011-07-14 00:29, Nick Sabalausky wrote:
> "Jacob Carlborg"<doob at me.com>  wrote in message
> news:ivkpdp$8dj$1 at digitalmars.com...
>>>
>>> FWIW, my Drake system takes that as a high priority, too. For example, if
>>> you have project "foo", then you can get the cross-platform binary
>>> filename,
>>> object filename, shared lib filename, static lib filename, etc like this:
>>>
>>> "foo".exe  // "foo.exe" or "foo"
>>> "foo".obj  // "foo.obj" or "foo.o"
>>> "foo".lib  // "foo.lib" or "foo.a"
>>> "foo".slib  // "foo.dll" or "foo.so"
>>> "foo".bat  // "foo.bat" or "foo"
>>> "foo".sh   // "foo.bat" or "foo.sh"
>>
>> Don't forget "foo.dylib" on Mac OS X.
>>
>
> Thanks, I didn't know about that. Does OSX use .dylib instead of .so, or is
> it another thing that it has in addition to .so?

Yes it uses .dylib instead of .so. It also has frameworks and other 
bundles which probably is a little overkill for the tool to support. A 
framework is just a folder name <name>.framework that contains a 
specific file and directory layout. It contains a dylib, header files, 
resources like images and sounds and possibly other dynamic libraries. 
Basically a package with everything the library needs to run.

BTW, DMD can build dynamic libraries on Mac OS X using the "-dylib" switch.

> Are there any other OSX-specific (or BSD-specific, for that matter)
> extensions to be aware of? Until now, I thought it just used all the same
> extensions as Linux.

It depends on what the build tool should be able to do and know about. 
For example, GUI applications on Mac OS X is expected to be in an 
application bundle (<name>.app), similar to a framework but containing 
an executable instead of a dynamic library.

> Oh also, to Posix-people: Could "slib" be easily confused as being to "lib"
> what "sbin" is to "bin"?

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list