lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

LYNX-DEV BSD makefile support


From: Michael Sokolov
Subject: LYNX-DEV BSD makefile support
Date: Wed, 14 May 1997 14:21:16 -0400 (EDT)

   Dear Colleagues,
   
   I wonder, was Lynx written on the East Coast? Although I currently live
in Cleveland, OH, I am a BSD devotee. I have discovered that the makefile
support for BSD in Lynx is completely bogus, and I'm contributing the
fixes.
   Let's start with BSDI. All other targets cd to WWW/Library/<platform>
and run make there. Then the tiny makefile in that directory sets some
variables and includes WWW/Library/Implementation/CommonMakefile. The BSDI
target is unique in that it runs make directly on
WWW/Library/Implementation/BSDI_Makefile. Wondering what's wrong with BSDI,
I tried compiling another target to see why the normal scheme doesn't work
under BSDI. Guess what, it turned out that the tiny makefiles in
WWW/Library/<platform> directories include the common makefile using the
System V/POSIX/GNU semantics, rather than the BSD semantics. Apparently the
East Coast guys who wrote the makefiles thought that their makefile include
semantics were the only ones, and when they saw that the BSD make doesn't
support them, they thought that it doesn't support any makefile includes.
Obviously, it DOES support makefile includes, since the 4.4BSD system
makefiles themselves rely on includes heavily. Simply the semantics are
different.
   That's not all. For some reason beyond me, the BSDI target compiles Lynx
sources with -DSVR4. This can be attributed only to plain sloppiness in
copying and modifying another target, since SVR4 and BSD are as opposite as
black and white.
   There is more to it. When thinking about FreeBSD, NetBSD, and BSDI, it's
important to remember that there also exists pure 4.4BSD from UC Berkeley.
Everything I have said about BSDI, including the makefile includes (pun not
intended), equally applies to the pure 4.4BSD and all BSD systems that are
really close to it. FreeBSD and NetBSD are not included, though, since they
contain too many GNU impurities. What this means is that it makes more
sense to make a 4.4BSD target and say that it works for BSDI, rather than
make a special target for BSDI.
   I'm done with words, now the code. Here is the new (correct) target for
4.4BSD:
   
4.4BSD:
        @echo "You must first compile the WWW library in WWW/Library"
        cd WWW/Library/4.4BSD; $(MAKE) LYFLAGS="$(SITE_LYDEFS)"
        cd src; $(MAKE) all CC="cc" MCFLAGS="-O -DUNIX -DNO_CUSERID \
                -DNO_KEYPAD -I../$(WWWINC) $(SITE_DEFS)" \
                LIBS="-lcurses -ltermcap \
                $(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \
                WWWLIB="../WWW/Library/4.4BSD/libwww.a"
   
   I think the best place to put this is right before the current FreeBSD
targets. Yes, I only have 4.4BSD, no 4.4BSD-ncurses or 4.4BSD-slang, since
I don't know anything about ncurses or slang. For this reason, the old
(broken) BSDI targets would have to be kept for a while.
   Also the comments in the all: target should be adjusted. Find the
following fragment in the main Makefile:
   
        @echo "bsdi       -- BSD Interactive"
        @echo "bsdi-ncurses -- BSD/OS(v2.0 or later) using ncurses(v1.9.4 or 
later) package."
        @echo "bsdi-slang -- BSD/OS(v2.0 or later) using the slang package."
   
   and replace it with:
   
        @echo "4.4BSD     -- pure 4.4BSD or really close (BSDI)"
        @echo "bsdi       -- Broken, use 4.4BSD instead"
        @echo "bsdi-ncurses -- Broken, but no alternative for now (contrib 
welcome)"
        @echo "bsdi-slang -- Broken, but no alternative for now (contrib 
welcome)"
   
   Also a new subdirectory should be created under WWW/Library. Call it
4.4BSD and put a Makefile in there. I have enclosed the correct Makefile at
the end of this message. I have uuencoded it to make sure it doesn't get
altered by the E-mail system. To extract it, save this message into a file
and run uudecode on that file. You will get a file named Makefile.
   Please add my fixes to the current developmental version, since BSD
users will benefit from them greatly.
   
   Sincerely,
   Michael Sokolov
   Phone: 216-646-1864
   ARPA Internet SMTP mail: address@hidden
   
   Enclosure: uuencoded Makefile:

begin 644 Makefile
M(address@hidden<@=6YD97(@-"XT0E-$#0HC#0H-"B,@1F]R(%<S(&1I<W1R
M:6)U=&EO;BP@;6%C:&EN92!T>7!E(&9O<B!S=6)D:7)E8W1O<FEE<PT*5U=7
M7TU!0T@@/2`T+C1"4T0-"@T*(R!4:&address@hidden)4R!R97!O<VET;W)Y)W,@;F%M
M92!F;W(@=&AE(&UA8VAI;address@hidden@87)E(&]N#0I!4TE37TU!0T@@/2!H87)D
M=V%R92\T+C1"4T0-"@T*#0I#1DQ!1U,@address@hidden)51PT*3$9,04=3(#T-
M"@T*(R!$:7)E8W1O<address@hidden(&EN<W1A;&QE9"!B:6YA<GDZ#0I"24Y$25(@
M/2`O=7-R+VQO8V%L+V)I;@T*#0HC(%=H97)E(&ES('1H92!7,R!O8FIE8W0@
M;&EB<F%R>2!T;R!B92!I;address@hidden&YO="!N;W)M86QL>2!D;VYE*3\-
M"DQ)0D1)4B`]("0H5U=7*2],:6)R87)Y+TEM<&QE;65N=&%T:6]N+R0H5U=7
address@hidden"B-?7U]?7U]?7U]?7U]?7U]?7R!/2R!I9B!N;W)address@hidden,@
M9&ES=')I8G5T:6]N#0HC(%=H97)E(&ES('1H92!75U<@<V]U<F-E(')O;W0_
M#0I75U<@/address@hidden("!7:&5R92!S:&]U;&address@hidden&5M<&]R87)Y("AO
M8FIE8W0I(&9I;&5S(&=O/PT*5U1-4"`]("XN+RXN#0H-"BYI;F-L=61E("(D
M*%=75RDO3&EB<F%R>2]);7!L96UE;G1A=&EO;B]#;VUM;VY-86ME9FEL92(-
!"E=7
`
end
;
; To UNSUBSCRIBE:  Send a mail message to address@hidden
;                  with "unsubscribe lynx-dev" (without the
;                  quotation marks) on a line by itself.
;

reply via email to

[Prev in Thread] Current Thread [Next in Thread]