############################################################################# # mined text editor makefile - BSD systems ############################################################################# # Where and how to install # installation root, usually empty root = $(INSTALLROOT) # configuration of installation directories: # * [l]rundir refers to the "Mined runtime support library" - # it contains the online help file, auxiliary scripts (some of which # might actually be installed in .../bin, too), configuration samples etc. # * [l]docdir is optional and refers to the mined web documentation # (a copy of the mined home page). # directories for target "make install" prefix = $(root)/usr bindir = $(prefix)/bin mandir = $(prefix)/share/man rundir = $(prefix)/share/mined # FreeBSD: #docdir = $(lprefix)/share/doc/mined # NetBSD (few packages), OpenBSD: #docdir = $(lprefix)/share/doc/html/mined # directories for target "make localinstall" lprefix = $(root)/usr/local lbindir = $(lprefix)/bin lmandir = $(lprefix)/man lrundir = $(lprefix)/share/mined # FreeBSD, OpenBSD: #ldocdir = $(lprefix)/share/doc/mined #INSTALL = install --mode=+r,u+w INSTALL = install -m 644 INSTALLBIN = install #INSTALL = /bin/cp -p #INSTALLBIN = /bin/cp -p ############################################################################# # system environment adaption # select library directory LIBDIR = /usr/lib${LIB} # prefer linking with self-installed ncurses library ncursesdevel = $(shell echo ${LDFLAGS} | sed -e "s,-L\([^ ]*\),ls \1/libncurses.a; ,g" -e "s,-[^ ]*,,g" ) # find library with termcap API # prefer static linking (with ".a") rather than dynamic linking (with ".so") # this may yield a more portable program in a heterogeneous network liblist = \ $(ncursesdevel) \ ls /lib/libtermcap.a $(LIBDIR)/libtermcap.a; \ ls /lib/libncurses.a $(LIBDIR)/libncurses.a; \ ls /lib/libtermcap.so* $(LIBDIR)/libtermcap.so*; \ ls /lib/libncursesw.so* $(LIBDIR)/libncursesw.so*; \ ls /lib/libncurses.so* $(LIBDIR)/libncurses.so*; \ # select first library found from list, replace with -l... if static firstlib = sed -e "s,\($(LIBDIR).*\)/lib\([^/]*\)\.a,-L\1 -l\2," -e "1 p" -e d termcap = $(shell ( $(liblist) ) 2> /dev/null | $(firstlib) ) # libtest: target at bottom (must not be first target) ############################################################################# # compilation target options # terminal handling mode 1: termio SCREEN = -DTERMIO # link termcap functions: #SLIB = -ltermcap # usual termcap library #SLIB = -L/usr/lib/termcap -ltermcap # if deprecated (Linux) #SLIB = -lcurses # may work on System V Unix too (Solaris) SLIB = $(termcap) # terminal handling mode 2: sgtty (old, BSD) #SCREEN = -DSGTTY #SLIB = -ltermcap # the following was reported to compile better on some BSD system: #SLIB = -L/usr/local/lib -lncurses # includes termcap library # terminal handling mode 3: curses # Choose curses only if other options don't work # (see COMPILE.DOC for discussion). # Use target "make minced" to use UTF-8 enabled ncurses (>= 5.4), # or see separate makefile.curses for options with legacy curses. # select operating system flavour (define sysV if on System V flavour) #SYSTEM = -Dunix -DsysV #SYSTEM = -Dunix -DsysV -DFDSET SYSTEM = -Dunix # select operating system environment DEFS = -Dunix # collection of system parameters for compilation SYSFLAGS = $(SCREEN) $(SYSTEM) $(DEFS) ############################################################################# # link options # link dynamically LDOPTS= # -d n links statically GLDOPTS= # -static links statically ############################################################################# # compiler selection and compiler-specific options # (source warnings, optimisation and debug) CC=gcc include mkinclud.$(CC) ############################################################################# # make actions SCREENOBJ=io.o keyboard.o MOUSELIB= KEYMAPSDEP=keymaps/_keymaps.h include mkinclud.mak ############################################################################# # test targets libtest: ( $(liblist) ) | cat echo $(termcap) dyntest: echo CHARMAPS: $(CHARMAPS) echo KEYMAPS: $(KEYMAPS) ############################################################################# # end