lynx-dev
[Top][All Lists]
Advanced

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

DJGPP build (was: Re: lynx-dev Documentation patch)


From: Leonid Pauzner
Subject: DJGPP build (was: Re: lynx-dev Documentation patch)
Date: Wed, 21 Jan 2004 23:18:08 +0300 (MSK)

I read the suggested patch and have several comments on it.

19-Jan-2004 22:03 Doug Kaufman wrote:
> I looked at some of the documentation as it applied to DOS and made
> several updates, primarily to the INSTALLATION file. I also updated
> src/makefile.dos to use pdcurses 2.6.

> I haven't had a chance to check the DOS makefiles to see if they
> actually work. I've been using configure to create makefiles for
> the DOS port for about two years. Has anyone actually compiled
> successfully using any of the DOS makefiles? If not, I'll see if I can
> find the time to test compiling with them.
>                          Doug

> --- INSTALLATION.ori  2004-01-07 18:03:08.000000000 -0800
> +++ INSTALLATION      2004-01-19 21:20:24.000000000 -0800
> @@ -841,66 +841,154 @@

>      In addition to the files in the Lynx distribution, you will need a curses
>      package and a TCP package.  You can use PDCurses (available at
> -    "http://www.lightlink.com/hessling/";) and the DJGPP port of WATTCP.  The
> +    "http://pdcurses.sourceforge.net/";) and the DJGPP port of WATTCP.  The
>      updated version of WATTCP is known as WATT-32, and is available at
>      "http://www.bgnett.no/~giva/";.  You can also use slang (available at
> -    "ftp://space.mit.edu/pub/davis/slang";) as your screen library.  You must
> -    compile these before you go any further.  If you wish to use PDCurses
> 2.4,
> +    "http://www.s-lang.org/";) as your screen library.  You must
> +    compile these before you go any further.  If you wish to use PDCurses
> 2.6,
>      you need to first apply the following patch:

Several chunks of PDCurses patches seems unneccessary for DJGPP environment:


> -    --- dos/pdckbd.c.ori     Sun Dec 26 23:15:04 1999
> -    +++ dos/pdckbd.c Fri Mar  3 00:20:14 2000
> -    @@ -336,7 +336,7 @@
> -             ||  (scan == 0x4e && ascii == 0x2b)  /* Plus */
> -             ||  (scan == 0xe0 && ascii == 0x2f)) /* Slash */
> -                     return ((int) ((ascii & 0x0f) | 0xf0) << 8);
> -    -        if (ascii == 0x00 || ascii == 0xe0)
> -    +        if (ascii == 0x00 || (ascii == 0xe0 && scan != 0x00))
> -                     return ((int) (scan << 8));
> -             return ((int) (ascii));
> -     }
> -    @@ -496,7 +496,7 @@
> -                     _watch_breaks();
> -     #else
> -     # ifdef GO32
> -    -        (void*)signal(SIGINT,(setting ? SIG_DFL : SIG_IGN));
> -    +/*      (void*)signal(SIGINT,(setting ? SIG_DFL : SIG_IGN)); */
> -     /*      __djgpp_set_ctrl_c(setting);*/
> -             setcbrk(setting);
> -     # else
> +--- dos/gccdos.mak.ori       2002-01-11 20:11:18.000000000 -0800
> ++++ dos/gccdos.mak   2003-12-13 21:29:28.000000000 -0800
> +@@ -40,11 +40,11 @@
> +     CFLAGS  = -c -g -Wall -DPDCDEBUG
> +     LDFLAGS = -g
> + else
> +-    CFLAGS  = -c -O -Wall
> ++    CFLAGS  = -c -O2 -Wall
> +     LDFLAGS =
> + endif
> +
> +-CPPFLAGS    = -I$(PDCURSES_HOME) -I$(CCINCDIR) -D_NAIVE_DOS_REGS
> ++CPPFLAGS    = -I$(PDCURSES_HOME) -I$(CCINCDIR) -D_NAIVE_DOS_REGS
> -DHAVE_STRING_H
^^^^
IMHO, any djgpp/gcc installation always have  string.h

> +
> + CCFLAGS             = $(CFLAGS) $(CPPFLAGS)
> +
> +@@ -64,10 +64,10 @@
> + all:        $(PDCLIBS) $(DEMOS)
> +
> + clean:
> +-    -del *.o
> +-    -del curses.lib
> +-    -del panel.lib
> +-    -del *.exe
> ++    -rm -f *.o
> ++    -rm -f pdcurses.a
> ++    -rm -f panel.a
> ++    -rm -f *.exe
        ^^^^^^
can we live with vanilla 'del'?
Some djgpp installation may be without fileutils (rm).

> +
> + demos:      $(DEMOS)
> +
> +@@ -287,33 +287,27 @@
> + #------------------------------------------------------------------------
> +
> + firework.exe:       firework.o $(LIBCURSES)
> +-    $(LINK) $(LDFLAGS) -o firework fis/pdckbd.c.ori     Sun Dec 26 23:15:04 
> 1999
> -    +++ dos/pdckbd.c Fri Mar  3 00:20:14 2000
> -    @@ -336,7 +336,7 @@
> -             ||  (scan == 0x4e && ascii == 0x2b)  /* Plus */
> -             ||  (scan == 0xe0 && ascii == 0x2f)) /* Slash */
> -                     return ((int) ((ascii & 0x0f) | 0xf0) << 8);
> -    -        if (ascii == 0x00 || ascii == 0xe0)
> -    +        if (ascii == 0x00 || (ascii == 0xe0 && scan != 0x00))
> -                     return ((int) (scan << 8));
> -             return ((int) (ascii));
> -     }
> -    @@ -496,7 +496,7 @@
> -                     _watch_breaks();
> -     #else
> -     # ifdef GO32
> -    -        (void*)signal(SIGINT,(setting ? SIG_DFL : SIG_IGN));
> -    +/*      (void*)signal(SIGINT,(setting ? SIG_DFL : SIG_IGN)); */
> -     /*      __djgpp_set_ctrl_c(setting);*/
> -             setcbrk(setting);
> -     # else
> +--- dos/gccdos.mak.ori       2002-01-11 20:11:18.000000000 -0800
> ++++ dos/gccdos.mak   2003-12-13 21:29:28.000000000 -0800
> +@@ -40,11 +40,11 @@
> +     CFLAGS  = -c -g -Wall -DPDCDEBUG
> +     LDFLAGS = -g
> + else
> +-    CFLAGS  = -c -O -Wall
> ++    CFLAGS  = -c -O2 -Wall
> +     LDFLAGS =
> + endif
> +
> +-CPPFLAGS    = -I$(PDCURSES_HOME) -I$(CCINCDIR) -D_NAIVE_DOS_REGS
> ++CPPFLAGS    = -I$(PDCURSES_HOME) -I$(CCINCDIR) -D_NAIVE_DOS_REGS
> -DHAVE_STRING_H
^^^^
IMHO, any djgpp/gcc installation always have  string.h

> +
> + CCFLAGS             = $(CFLAGS) $(CPPFLAGS)
> +
> +@@ -64,10 +64,10 @@
> + all:        $(PDCLIBS) $(DEMOS)
> +
> + clean:
> +-    -del *.o
> +-    -del curses.lib
> +-    -del panel.lib
> +-    -del *.exe
> ++    -rm -f *.o
> ++    -rm -f pdcurses.a
> ++    -rm -f panel.a
> ++    -rm -f *.exe
        ^^^^^^
can we live with vanilla 'del'?
Some djgpp installation may be without fileutils (rm).

> +
> + demos:      $(DEMOS)
> +
> +@@ -287,33 +287,27 @@
> + #------------------------------------------------------------------------
> +
> + firework.exe:       firework.o $(LIBCURSES)
> +-    $(LINK) $(LDFLAGS) -o firework fisetcbrk(setting);
> + # else
> +--- pdcurses/kernel.c.ori    2002-11-27 03:24:32.000000000 -0800
> ++++ pdcurses/kernel.c        2003-12-13 21:22:38.000000000 -0800
> +@@ -27,6 +27,10 @@
> + #include <memory.h>
> + #endif
> +
> ++#ifdef HAVE_STRING_H
> ++#include <string.h>
> ++#endif
  ^^^^^^^^^^^^^^^^^^^ above
> ++
> + #ifdef UNIX
> + #include <defs.h>
> + #include <term.h>
> +--- pdcurses/pdcutil.c.ori   2001-01-10 00:27:22.000000000 -0800
> ++++ pdcurses/pdcutil.c       2003-12-13 21:24:58.000000000 -0800
> +@@ -49,7 +49,7 @@
> + #  include <limits.h>
> + #endif
> +
> +-#ifdef STDC_HEADERS
> ++#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
> + #  include <string.h>
> + #endif
  ^^^^^^^^^^^^^^^^^^ above
> +
> +--- pdcurses/pdcwin.c.ori    2002-05-25 17:13:32.000000000 -0800
> ++++ pdcurses/pdcwin.c        2003-12-13 21:26:02.000000000 -0800
> +@@ -27,6 +27,10 @@
> + # include <memory.h>
> + #endif
> +
> ++#ifdef HAVE_STRING_H
> ++#include <string.h>
> ++#endif
  ^^^^^^^^^^^^^^^^^^^^^ above
> ++
> + #ifndef HAVE_MEMMOVE
> + # define memmove PDC_memmove
> + #endif

>      If you wish to compile with SSL enabled, you need to get and
> -    compile openssl. The DJGPP port has been successfully compiled with
> -    openssl-0.9.6b. After obtaining the source file, unpack it with
> -    DJTARX, then apply the patch for DOS before compiling. This will
> -    create a file "install.djgpp" which gives further details. The patch
> -    can be obtained from the openssl-dev archives at:
> -
> "http://www.mail-archive.com/address@hidden/msg09104/096b.pch.gz";
> -
> -    In order for lynx to be able to break out of a stuck nameserver
> -    lookup or connection attempt, you should compile with -DIGNORE_CTRL_C
> -    and apply the following patch to WATT-32.
> -
> -    --- watt32-2.1dev.rel.5/src/pc_cbrk.c.ori        Mon Jun 19 16:08:06 2000
> -    +++ watt32-2.1dev.rel.5/src/pc_cbrk.c    Sun Nov 18 11:18:50 2001
> -    @@ -74,6 +74,11 @@
> -          longjmp (sig_jmp, 1);
> -     }
> -
> -    +void sig_handler_watt (int sig)
> -    +{
> -    +   sig_handler (sig);
> -    +}
> -    +
> -     /*
> -      * want_brk = 0: no ^Break checking
> -      * want_brk = 1: normal ^Break checks
> +    compile OpenSSL. The DJGPP port has been successfully compiled with
> +    the 0.9.7 stable series of OpenSSL. DJGPP can compile OpenSSL from
> +    the standard source distribution (http://www.openssl.org/). See the file
> "INSTALL.DJGPP" in
> +    the OpenSSL distribution.
> +

>      If you have trouble applying the patches, try using the "patch" program,
> -    ("ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/pat253b.zip";).
> +    ("http://www.delorie.com/pub/djgpp/current/v2gnu/pat253b.zip";).
>      To read the Unix man style documentation, use, for example, "less"
> -    ("ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/lss358b.zip";).
> -    Compile or place your compiled PDCurses library in /djgpp/pdcur24, and
> +    ("http://www.delorie.com/pub/djgpp/current/v2gnu/lss374b.zip";).
> +    Compile or place your compiled PDCurses library in /djgpp/pdcur26, and

Why not to put PDCurses lib & include files in DJGPP/lib & DJGPP/include
like we do with SLANG?
Also, I do not understand what do you mean by the absolute path
/djgpp/pdcur26 on a DOS platform, shouldn't it be prefixed by a drive
letter? Or you mean a relative path - relative to what?

>      compile or place your compiled WATT-32 library in /djgpp/watt32.  If
>      using the SLANG library, put libslang.a in your DJGPP/lib directory and
> put
>      slang.h and slcurses.h in your DJGPP/include directory, or in the
> @@ -946,14 +1034,15 @@
>      "slip8250  0x60 6 3 0x2F8" so that it uses COM2 and IRQ 3, in order to
>      avoid an IRQ conflict with a mouse or some other device.  Another packet
>      driver is slipper.exe, which is available from many sites, including
> -    "ftp://jazz.trumpet.com.au/slipper";.  To remove it from memory use
> +    "ftp://ftp.trumpet.com.au/slipper";.  To remove it from memory use
>      termin.com (usage "termin 0x60"), available in the CRYNWR package.  To
>      connect over a dialup PPP connection you need dosppp or klos' pppshare.
>      (Find at:
> -    "http://mvmpc9.ciw.uni-karlsruhe.de/c:/user/toni/dosppp/dosppp06.zip";,
> -    "http://personal.redestb.es/tonilop/dosppp/dosppp06.zip";, or
> +
> "http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/net/dosppp/dosppp06.zip";
> +    "http://www.ncf.carleton.ca/ncf/pda/computer/dos/net/dosppp06.zip";
> +
> "http://mvmpc200.ciw.uni-karlsruhe.de/~mvmpc9/user/TONI/dosppp/dosppp06.zip";
>      "ftp://ftp.oldskool.org/pub/tvdog/internet/dosppp06.zip";;
> -    "http://www.klos.com/get.pppshare.html";)
> +    "ftp://ftp.klos.com/pub/demo/pppshare.exe";)

>      File access looks like this:

> @@ -999,8 +1088,8 @@
>      instead of the SLANG keyhandler unless you define "NO_DJ_KEYHANDLER".

>      #!/bin/sh
> -    CFLAGS="-O2 -DIGNORE_CTRL_C -I/djgpp/pdcur24 -I/djgpp/watt32/inc" \
> -    LIBS="-L/djgpp/pdcur24/lib -L/djgpp/watt32/lib -liconv" \
> +    CFLAGS="-O2 -I/djgpp/pdcur26 -I/djgpp/watt32/inc" \
> +    LIBS="-L/djgpp/pdcur26/lib -L/djgpp/watt32/lib -liconv" \
               ^^^^^^^^^^           ^^^^^^^^^^ absolute path on DOS?

>      ./configure --prefix=d:/djgpp/lynx-rel/lynx-cnf \
>      --with-screen=curses \
>      --disable-full-paths \
> @@ -1008,22 +1097,23 @@
>      --enable-change-exec \
>      --enable-cgi-links \
>      --enable-charset-choice \
> -    --enable-default-colors \
> +    --enable-color-style \
       ^^^^^^^^^^^^^^^^^^^^
A silly change! Require a comment at least.

>      --enable-exec-links \
>      --enable-externs \
>      --enable-file-upload \
> +    --enable-nested-tables \
>      --enable-nls \
>      --enable-prettysrc \
>      --enable-read-eta \
>      --enable-source-cache \

enable-source-cache and enable-prettysrc now assumed by default

> -    --enable-nested-tables \
>      --libdir=d:/djgpp/lynx-rel/lynx-cnf \
> +    --with-bzlib \
>      --with-zlib \
>      --with-ssl

>  -- 1997/9/29 - D. Kaufman <address@hidden>
>  -- 1997/10/3 - B. Schiavo <address@hidden>
> --- Last update - 2001/12/19
> +-- Last update - 2004/01/19


>  VI. General installation instructions
> @@ -1083,10 +1173,15 @@
>      TEMP or TMP  Bookmarks are kept here with no HOME.  Temp files here.
>      USER         Set to your login name (optional)
>      LYNX_CFG     Set to the full path and filename for lynx.cfg
> +    LYNX_LSS     Set to the full path and filename for lynx.lss
>      LYNX_SAVE_SPACE  The (modifiable) location for downloaded file storage.
> +    SSL_CERT_FILE Set to the full path and filename for your file of trusted
> +                  certificates

>      386 version only:
>      WATTCP.CFG   Set to the full path for the WATTCP.CFG directory
> +    RL_CLCOPY_CMD Command to copy a URL to a "clipboard" file
> +    RL_PASTE_CMD  Command to go to a URL in your "clipboard" file

>      Define these in your batch file for running Lynx.  For example, if your
>      application line is "D:\win32\lynx.bat", lynx.bat for Win32 may look
> like:



> --- src/makefile.dos.ori      2004-01-07 18:03:08.000000000 -0800
> +++ src/makefile.dos  2004-01-19 21:23:56.000000000 -0800
> @@ -53,13 +53,13 @@
>   $(SSLINC) \
>   -I./chrtrans \
>   -I../WWW/Library/Implementation \
> - -I/djgpp/pdcur24 \
> + -I/djgpp/pdcur26 \
>   -I/djgpp/watt32/inc \
>   -I/djgpp/watt32/inc/sys
     ^^^^^^^^^^^^^^^^^^^^^^ this include directory is not required for the
build, applies for all dos makefiles scattered around lynx sources.
Absolute path without a drive letted, again.

>  WWWLIB = \
>   ../WWW/Library/djgpp/libwww.a \
> - /djgpp/pdcur24/lib/pdcurses.a
> + /djgpp/pdcur26/lib/pdcurses.a

>  LIBS= -L/djgpp/watt32/lib -lwatt -lz -lwmemu


> --
> Doug Kaufman
> Internet: address@hidden


> ; To UNSUBSCRIBE: Send "unsubscribe lynx-dev" to address@hidden



; To UNSUBSCRIBE: Send "unsubscribe lynx-dev" to address@hidden

reply via email to

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