gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Minimalist GNUstep possible?


From: Jonathan Wolf
Subject: Re: Minimalist GNUstep possible?
Date: Fri, 18 Jun 2010 03:16:15 -0600

Very informative and helpful replies - the help is extremely
appreciated (and saved to a text file so I can reference later). I
think you answered all my major questions. =)

I went back and did some more toying around and got exactly what I was
needing to get (at least on a nix box). I have yet to go try this on a
MinGW/Windows system, but I have high hopes that it should work pretty
much the same (hopefully!).

We do want to target all three primary OS'es (major nix flavors, mac,
and windows), so having a toolset be cross platform like this is a
major boost (plus ObjC is awesome). Has anybody seen any luck with
using GNUstep as a .dll over on this sort of setup?

One thing in particular that we're going to deal with, almost
assuredly, is that the user may not have a few of the libs installed
(ldd listed a decent number of linked libraries, including some rogue
ones like libffi (fast function interface if I remember from the
GNUstep documentation)). Is there any way, aside from scripting it out
in an installation script, to use a redistributable package (perhaps
similar to the .NET redistributables), or do people really need a full
installation of GNUstep for it to work? I'm not the best on dynamic
linkage, but is having a copy of the .so/.dll in the same folder as
the executable "good enough" (hopefully not breaking LGPL rules)?

As a side question that I am sure to be interested in moving into the
future, is GNUstep planning on supporting mobile architectures, say
like Android? I would really love to keep using a compiled language
(like ObjC) on such a platform and be able to take our tools with us
onto that end, if we ever go there. Has anybody heard of any luck with
any developers going this route? I did notice that there was some work
being done on incorporating ObjC into Android, but I'm sure somewhere
along that path GNUstep is going to be one of the major players.


Thanks again for all the help - it is _very_ much appreciated. =)

Jonathan


On Fri, Jun 18, 2010 at 2:56 AM, Nicola Pero
<address@hidden> wrote:
>
> On 18 Jun 2010, at 02:55, Jonathan Wolf wrote:
>
>> Thanks for the reply David,
>>
>> I apologize for my lack of correct terminology - I did mean just
>> Foundation (as in, NSObject, NSDate, etc.) and .app bundles.
>>
>> The idea that this is sparked off from is basically how one would take
>> ObjC, in a minimalist form, and port it over to another environment -
>> equally the same issue if you were to take it from iPhone to desktop
>> (say Windows/MinGW) or, probably another avenue to be explored next
>> year, iPhone to Android (if estimates of the Android market overtaking
>> iPhone stay true).
>>
>> Having done years of C++, I've developed quite a hatred for all things
>> C++ in nature, and having gone from a strong C++ background to an ObjC
>> background, I have been absolutely amazed that it hasn't gotten more
>> wide reception. Either rate, I think one of the issues was that ObjC
>> was so intertwined to Apple, and GNUstep aims to break that - and this
>> is a very good thing imho.
>>
>> So I am trying to leverage the Foundation runtime best I can, but in a
>> minimalist form as possible - so aiming at a one file .so/.dll is the
>> goal really.
>
> If you use just gnustep-make and gnustep-base, you'll get exactly that. :-)
>
> gnustep-make supports libraries (plain old shared libraries) and tools
> (plain old executables).
> (use library.make or tool.make to compile these).
>
> gnustep-base is exactly a shared library with some supporting tools and some
> resource files (timezone files, etc).
>
>  Check
>
>  http://www.gnustep.it/nicola/Tutorials/WritingMakefiles/index.html
>
> (and related gnustep-make tutorials) for a quick startup introduction to how
> to build and use tools and libraries.
>
> You may be confused by the fact that GNUstep uses by default a GNUstep
> "filesystem layout", meaning
> has got its own directories for libraries, tools and resources - similar to
> how things are organized for
> example on Apple.
>
> You can disable that very easily by configuring gnustep-make with
>
>  ./configure --with-layout=fhs
>
> then, not only you can compile and link standard libraries and tools, but
> they are also installed into the standard
> Unix /usr/bin etc. directories.
>
> If you want to write your own makefiles or building system, you should use
> gnustep-config to get the compile/link
> flags.
>
> I would still recommend using gnustep-make/gnustep-base as they are mostly
> because:
>
>  * Linux distributions can have (and often do have) pre-built binary
> packages for these, which means that all you need is to install
> these two packages and your software is ready to go :-)
>
>  * by using the standard core components that all of GNUstep is built on,
> you automatically benefit from all the bug fixes, new features
> and enhancements that get in there
>
>  * your code will compile and run on all platforms supported by GNUstep
> (which are a lot) with almost no changes
>
>  * gnustep-make has very advanced parallel building support (in case your
> project ever grows to the point where compilation times
> become a problem)
>
> As a last comment, I'd like to mention that gnustep-make + gnustep-base are
> probably the most mature part of GNUstep
> and are really very production ready.  There are companies that run large
> live Unix server systems and operations using
> software entirely based on them, and are extremely happy with the result.
> ;-)
>
> Thanks
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]