compiling FreeBSD date on Linux
fkeymo at gmail.com
Wed May 20 17:46:01 UTC 2009
Hmm... the date program looks pretty simple but I don't understand the
# @(#)Makefile 8.1 (Berkeley) 5/31/93
# $FreeBSD: src/bin/date/Makefile,v 126.96.36.199 2009/04/15 03:14:26 kensmith
SRCS= date.c netdate.c vary.c
Would it be possible to compile this without a makefile?
On Tue, May 19, 2009 at 9:38 PM, Chuck Robey <chuckr at telenix.org> wrote:
> Polytropon wrote:
> > On Tue, 19 May 2009 18:19:21 -0300, francis keyes <fkeymo at gmail.com>
> >> I would like to compile the FreeBSD date command for use on Linux
> >> the FreeBSD version has some features that are not present in Linux.
> >> I downloaded all the files from
> >> http://www.freebsd.org/cgi/cvsweb.cgi/src/bin/date/ and tried to
> compile it
> >> but I get an error from the Makefile:
> >> Makefile:9: *** missing separator. Stop.
> > First of all, it seems that it's not that easy. FreeBSD's make
> > is, if I am correct, a different one than the Linux make. It
> > uses - if you look into date's Makefile, an include file,
> > named bsd.prog.mk which is located outside of the date/ directory,
> > this is /usr/share/mk/bsd.prog.mk or /usr/src/share/mk/bsd.prog.mk
> > or /usr/src/tools/build/mk/bsd.prog.mk. You could try to write
> > an own Makefile on Linux, or try to work without one...
> >> I suspect this is the first of many errors I will run into during this
> >> process. Can anyone help me out with this or tell me if there is an
> >> way to get this version of the date command running in Linux?
> > I'm not sure, but it's possible that FreeBSD can be used to
> > compile date so it will run on Linux (cross-compier). Because
> > I never tried this, I can't tell you how to achieve this.
> > Furthermore, I'm not sure in how far date hooks into the FreeBSD
> > kernel in order to work. It's completely possible that it would
> > be easier to implement FreeBSD's date functionality in Linux's
> > date command itself ("from scratch").
> The code isn't all that hard to port, unless you're at a very basic level
> C. The compatibility level between the BSD Make (bmake) and the GNU Make
> (gmake) isn't all that great. One killer problem is that gmake hasn't got
> concept of a single central include directory, for automatically building
> up a
> per machine make environment. Gmake can do the including (using a protocol
> which is unfortunately different than that of bmake) BUT you can't just
> rely on
> gmake looking into the bmake central directory (/usr/share/mk) for make
> files. All of those are named like "bsd.port.mk", in that they all begin
> "bsd." and end in ".mk", and there isn't any portability between bmake and
> on those include files. I have personally (in the past) written up a set
> gmake compatible include files, so it CAN be done, but you getter have your
> hat on, it's not all that simple to do.
> The various timing commands in either the bsd libc or the Linux glibc look
> alike, so the porting isn't all that hard, once you conquer the makefiles.
More information about the freebsd-questions