Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 May 2009 14:45:59 -0300
From:      francis keyes <fkeymo@gmail.com>
To:        Chuck Robey <chuckr@telenix.org>
Cc:        Polytropon <freebsd@edvax.de>, freebsd-questions@freebsd.org
Subject:   Re: compiling FreeBSD date on Linux
Message-ID:  <d64607cc0905201045i36084a34g2a6c0d4e9d5f750d@mail.gmail.com>
In-Reply-To: <4A135119.8010007@telenix.org>
References:  <d64607cc0905191419p621f7e65tf5515d1d3696bfa0@mail.gmail.com> <20090520000137.3d46fcb2.freebsd@edvax.de> <4A135119.8010007@telenix.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hmm... the date program looks pretty simple but I don't understand the
Makfile:

#    @(#)Makefile    8.1 (Berkeley) 5/31/93
# $FreeBSD: src/bin/date/Makefile,v 1.11.30.1 2009/04/15 03:14:26 kensmith
Exp $

PROG=    date
SRCS=    date.c netdate.c vary.c
DPADD=    ${LIBUTIL}
LDADD=    -lutil

.include <bsd.prog.mk>


Would it be possible to compile this without a makefile?


On Tue, May 19, 2009 at 9:38 PM, Chuck Robey <chuckr@telenix.org> wrote:

> Polytropon wrote:
> > On Tue, 19 May 2009 18:19:21 -0300, francis keyes <fkeymo@gmail.com>
> wrote:
> >> I would like to compile the FreeBSD date command for use on Linux
> because
> >> 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
> easier
> >> 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
> with
> 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
> any
> 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
> include
> files.  All of those are named like "bsd.port.mk", in that they all begin
> with
> "bsd." and end in ".mk", and there isn't any portability between bmake and
> gmake
> on those include files.  I have personally (in the past) written up a set
> of
> gmake compatible include files, so it CAN be done, but you getter have your
> hard
> hat on, it's not all that simple to do.
>
> The various timing commands in either the bsd libc or the Linux glibc look
> much
> alike, so the porting isn't all that hard, once you conquer the makefiles.
>
> >
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d64607cc0905201045i36084a34g2a6c0d4e9d5f750d>