[comp.windows.x] Want advice on porting to Sys V

gfinney@xroads.UUCP (Guy A. Finney) (04/22/89)

Ok, I can hear you all chuckling at my plight.  I'm not holding out hope
of anyone making my task easy, but do hope that enough people have done
this (porting the client development environment, not servers, to Sys V)
that I can get a hint or two.

Do I have to become a BSD whiz to emulate the various functions (e.g.
select(), setitimer()) to get anywhere, or can I cheat somehow?  (I've
sometimes thought it's better to know how to cheat well than to be good).
How is it that X is heralded as portable when it's got so much BSD stuff
baked into it?  I guess I could do the world a favor and go at this in a
big way, donating the result to the keepers, but business deadlines don't
permit me a liesurly pace.

Any pointers?
-- 
\  /  C r o s s r o a d s  C o m m u n i c a t i o n s
 /\   (602) 941-2005 300|1200 Baud 24 hrs/day
/  \  hplabs!hp-sdd!crash!xroads!gfinney

kemnitz@mitisft.Convergent.COM (Gregory Kemnitz) (04/25/89)

In article <661@xroads.UUCP>, gfinney@xroads.UUCP (Guy A. Finney) writes:
> 
> Ok, I can hear you all chuckling at my plight.  I'm not holding out hope
> of anyone making my task easy, but do hope that enough people have done
> this (porting the client development environment, not servers, to Sys V)
> that I can get a hint or two.
> 
> Do I have to become a BSD whiz to emulate the various functions (e.g.
> select(), setitimer()) to get anywhere, or can I cheat somehow?  (I've
> sometimes thought it's better to know how to cheat well than to be good).
> How is it that X is heralded as portable when it's got so much BSD stuff
> baked into it?  I guess I could do the world a favor and go at this in a
> big way, donating the result to the keepers, but business deadlines don't
> permit me a liesurly pace.
> 
> Any pointers?

1.  If you have a system that has an implementation of Berkeley sockets,
    system V is relatively easy.  Most system V ports DO have some
    implementation of sockets.

    If you don't have sockets, you will have to implement them with STREAMS
    and poll().  This is a significantly bigger project.

2.  Make sure that imake and makedepend have SYSV defined.  I changed lines
    with MIPS and SYSTEM_SYSV to just SYSV and everything worked.

    Some preprocessors cause imake to create bogus makefiles.  If you run
    imake and get rules line errors, try setting the REDUCED_TO_ASCII_SPACE
    switch in building imake.

    Some other things.  You will need to make sure the build of the Berkeley
    stuff does not assume you have symbolic links.  (In Guess.macros, there
    is a hardcoded ln -s in building the Berkeley compatibility library.)

    In building your .macros file for your machine, make certain -DSYSV is
    everywhere.

3.  You will need to write the BSD rename() function, and put it into
    Berklib.c.  It is just four lines of code.