Copyright © 1997-2014,2015 by Thomas E. Dickey
In 1997 (shortly after Lynx 2.6 was announced), I became involved with Lynx development. Although Lynx ran on many platforms, its Unix build configuration needed improvement. This project arose out of tracking issues on the lynx-dev mailing list.
At the start, Lynx used a makefile with a separate rule for every combination of platform and library (curses, ncurses, slang). It was unmaintainable. Here is a small slice listing some of the targets:
@echo "Please run make with one of the following arguments"
@echo "aix4 -- for RS/6000 running AIX 4.n and some 3.2"
@echo "aix32 -- for RS/6000 running AIX 3.2"
@echo "aix31 -- for RS/6000 running AIX 3.1 with curses bug"
@echo "apollo -- apollo systems (untested)"
@echo "bsdi -- BSD Interactive"
@echo "bsdi-ncurses -- BSD/OS(v2.0 or later) using ncurses(v1.9.4 or later) package."
@echo "clix -- for Intergraph CLIX"
@echo "convex -- for Convex C-series"
@echo "convex-ncurses -- for Convex C-series with ncurses package"
and an example of one of the 58 targets:
cd WWW/Library/convex; $(MAKE) LYFLAGS="$(SITE_LYDEFS)"
cd src; $(MAKE) all CC="cc" MCFLAGS="-O \
-DNCURSES -DFANCY_CURSES \
-DNO_PUTENV -DNO_CBREAK -DNO_KEYPAD -DUSE_DIRENT -DUNIX \
-DSTDC_HEADERS -I../$(WWWINC) $(SITE_DEFS)" \
LIBS="-L/usr/local/lib -lncurses -ltermcap \
$(WAISLIB) $(SOCKSLIB) $(SITE_LIBS)" \
I worked with Jim Spath on this. As of Lynx 2.8, it was mostly complete.
This was my plan. It took more than one step, so I applied intermediate versions into the developmental sources, both to get feedback, as well as to simplify synchronization.
config.h, included in all files.
makefile.inwith an auto-configure script.
makefileto a single target (i.e.,
lynx). (At this point, the top-level
Makefilecan be deleted, as well as some of the scaffolding for config.h).
configurescript to support common user options (such as whether DirEd is built).
If you have built Lynx on an obscure platform, or have other contributions, we are interested in hearing from you. Comments can be directed to the Lynx Developers List at firstname.lastname@example.org.