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>