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. ;-)