*BSD News Article 95730


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!news.cs.su.oz.au!metro!metro!munnari.OZ.AU!uunet!in1.uu.net!206.154.70.8!news.webspan.net!newsfeeds.sol.net!news-xfer.netaxs.com!chippy.visi.com!news-out.visi.com!ais.net!news-peer.sprintlink.net!news.sprintlink.net!Sprint!howland.erols.net!surfnet.nl!feed2.belnet.be!news.belnet.be!feed1.news.innet.be!INbe.net!stns.news.pipex.net!warm.news.pipex.net!pipex!tank.news.pipex.net!pipex!news.utell.co.uk!usenet
From: brian@shift.utell.net (Brian Somers)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: FreeBSD development question
Date: 19 May 1997 14:42:51 GMT
Organization: Awfulhak Ltd.
Lines: 62
Message-ID: <5lpotb$kol@ui-gate.utell.co.uk>
References: <337F43DC.371@XXsnet.net> <3380420C.794BDF32@FreeBSD.org>
Reply-To: brian@awfulhak.org, brian@utell.co.uk
NNTP-Posting-Host: shift.utell.net
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-Newsreader: knews 0.9.8
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.freebsd.misc:41219

In article <3380420C.794BDF32@freebsd.org>,
	"Jordan K. Hubbard" <jkh@FreeBSD.org> writes:
> Sonya and Jeffrey Metcalf wrote:
>> I would like to get into some more serious software development on
>> FreeBSD, but I need to learn some of the basics.  For now, I was
>> wondering how some of the complex makefiles I see in the FreeBSD
>> ports are generated.  Does the developer actually do this by hand?
> 
> Yep!
> 
> Consider that the Makefile is actually the least of what makes up a
> port.  You also need to configure the files in the patches/ and pkg/
> directories, for one thing, and those are *highly* specific to the port
> in question.  Same goes for any special files/ that the port needs. 
> Automating the information there is theoretically possible, sure, just
> not as trivial as you might think.
> 
> The actual Makefile editing portion of the task is largely trivial and
> the least of what goes into a port. :-)
> 
> Also bear in mind that a lot of folks don't see the make syntax as quite
> so arcane, having worked with it over many, many large software
> projects, so it's not all that difficult to deal with.

Which of course is true for anything.  Given enough practice, I'm
sure people could even find perl natural (*stir* *stir*).

>> Also, does anyone know of any integrated development environments
>> for UNIX (FreeBSD) that would closely approximate some of the
>> capabilities of the Borland C++ Builder or the Borland Delphi
>> development environments?  Hopefully these questions are good ones.
> 
> There are some tools for building X applications, like specTCL or
> Xforms, but nothing even remotely approaching something like Borland's
> IDE.  Seems evolution just didn't head in that direction over in
> UNIX-ville.

I don't know if it's of any interest, but I have a semi-automated
build tool called mk (yes, I know the name conflicts).  It simplifies
the makefile editing for an environment where you have large numbers
of inter-dependencies over large numbers of different directories -
a reasonably large C++ environment.  It doesn't cope well with
build rules that vary widely on a module by module level.

Basically, you don't say "#include" in your .c* or .h files, but
create a .mk file that says "interface_needs ...." or
"code_needs ....".  The "mk" program then parses this stuff,
creates a ".inc" file with all the #includes in it (in the right
order, no duplicates, recursion etc is dealt with) and
runs your compiler with the "-include file.inc" switch.  At link
time, it knows what to link based on your dependencies (and in
what order - important for C++), and multi-user multi-cpu
multi-machine builds are a doddle.

It builds in FreeBSD, Linux, DOS, OS/2 and a few other unices.

If you're interested, there's a copy on http://www.awfulhak.org.

-- 
Brian <brian@awfulhak.org> <brian@freebsd.org>
      <http://www.awfulhak.org>
Don't _EVER_ lose your sense of humour !