*BSD News Article 95724


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!160.45.4.4!fu-berlin.de!irz401!orion.sax.de!uriah.heep!news
From: j@uriah.heep.sax.de (J Wunsch)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: FreeBSD development question
Date: 19 May 1997 09:40:36 GMT
Organization: Private BSD site, Dresden
Lines: 73
Message-ID: <5lp76k$42v@uriah.heep.sax.de>
References: <337F43DC.371@xxsnet.net>
Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch)
NNTP-Posting-Host: localhost.heep.sax.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Newsreader: knews 0.9.6
X-Phone: +49-351-2012 669
X-PGP-Fingerprint: DC 47 E6 E4 FF A6 E9 8F  93 21 E0 7D F9 12 D6 4E
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.freebsd.misc:41243

Sonya and Jeffrey Metcalf <metcalf@XXsnet.net> 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?

The ports Makefiles?  Well, they are normally just a small collection
of variables only, or what are you referring to?

X11 employs one actually functioning Makefile generation machine,
called `imake'.  You drop the description of your project into an
Imakefile, and imake merges this with the knowledge of the underyling
system into a large blurb Makefile.  This is the only really working
Makefile creation system i've seen.

BSD hides most of the intelligence in include files, so in order to
create and install a program called `foo', with just one source file
`foo.c', and with an implied man page of `foo.1', all you need to say
is:

PROG=foo

.include <bsd.prog.mk>

For more complicated stuff, learning the basics of how make actually
works is certainly not a waste of time.  I often use it for
documentation work as well, with stuff like:

.SUFFIXES: .fig .eps .tex .dvi

.fig.eps:
	fig2dev -Lps ${.IMPSRC} ${.TARGET}

.tex.dvi:
	latex ${.IMPSRC}

all: mydoc.dvi

mydoc.dvi: mydoc.tex myfigure.eps

This way, if i modify a drawing in xfig, make will automatically
notice it, convert it into encapsulated postscript, and rebuild the
DVI file due to the dependancy.  Even being faced with the possibility
of Word-like text processors in Unix now, i'm still way more
comfortable with the above.  (Yes, i tried those wisiwyg tools, and i
found that these clicky-micky games aren't anything for me anymore.
It is too hard to write text, and suddenly click through a bunch of
menues where you can write just \section {Foo bar internals} without
taking the hands away from the keyboard.)

> 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?

Probably not.  Some people (like me :) will point you at Emacs, which
is certainly everything else than ``closely approximate to Delphi'',
but OTOH, i see it just the other way round: Delphi is certainly
everything else than closely approximate to Emacs. :-)

I'm sure others have other solutions.  There once used to be a clone
of the Borland text UI, called xwpe.  I don't know what happened to
it.  I once gave it a try since i was familar with the Borland UI back
in my DOS days, but i quickly noticed that i didn't like this kind of
UI anymore then, after already being familar with Unix.

-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)