356 lines
14 KiB
Makefile
356 lines
14 KiB
Makefile
#
|
|
# Makefile template for screen
|
|
#
|
|
# See machine dependent config.h for more configuration options.
|
|
#
|
|
|
|
srcdir = @srcdir@
|
|
VPATH = @srcdir@
|
|
|
|
DESTDIR =
|
|
|
|
# Where to install screen.
|
|
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
datarootdir = @datarootdir@
|
|
datadir = @datadir@
|
|
|
|
# don't forget to change mandir and infodir in doc/Makefile.
|
|
bindir = $(exec_prefix)/bin
|
|
|
|
VERSION = @VERSION@
|
|
SCREEN = screen-$(VERSION)
|
|
|
|
GIT_REV =
|
|
DEFS = @DEFS@ -DGIT_REV=\"$(GIT_REV)\"
|
|
|
|
ETCSCREENRC = @ETCSCREENRC@
|
|
ifeq (${ETCSCREENRC}, )
|
|
ETCSCREENRC=$(prefix)/etc/screenrc
|
|
endif
|
|
SCREENENCODINGS = $(datadir)/screen/utf8encodings
|
|
|
|
CC = @CC@
|
|
CFLAGS = @CFLAGS@
|
|
CPPFLAGS = @CPPFLAGS@ -DETCSCREENRC='"$(ETCSCREENRC)"' \
|
|
-DSCREENENCODINGS='"$(SCREENENCODINGS)"'
|
|
LDFLAGS = @LDFLAGS@
|
|
LIBS = @LIBS@
|
|
|
|
CPP=@CPP@
|
|
CPP_DEPEND=$(CC) -MM
|
|
|
|
INSTALL = @INSTALL@
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
|
|
AWK = @AWK@
|
|
|
|
### Chose some debug configuration options:
|
|
# -DDEBUG
|
|
# Turn on really heavy debug output. This is written to
|
|
# /tmp/debug/{SCREEN,screen}.<pid>. Look at these files and quote
|
|
# questionable sections when sending bug-reports to the author.
|
|
# -DDUMPSHADOW
|
|
# With shadow-pw screen would never dump core. Use this option if
|
|
# you still want to have a core. Use only for debugging.
|
|
OPTIONS=
|
|
#OPTIONS= -DDEBUG
|
|
|
|
SHELL=/bin/sh
|
|
|
|
CFILES= screen.c ansi.c fileio.c mark.c misc.c resize.c socket.c \
|
|
search.c tty.c term.c window.c utmp.c loadav.c putenv.c help.c \
|
|
termcap.c input.c attacher.c pty.c process.c display.c comm.c \
|
|
kmapdef.c acls.c braille.c braille_tsi.c logfile.c layer.c \
|
|
sched.c teln.c nethack.c encoding.c canvas.c layout.c viewport.c \
|
|
list_display.c list_generic.c list_window.c
|
|
OFILES= screen.o ansi.o fileio.o mark.o misc.o resize.o socket.o \
|
|
search.o tty.o term.o window.o utmp.o loadav.o putenv.o help.o \
|
|
termcap.o input.o attacher.o pty.o process.o display.o comm.o \
|
|
kmapdef.o acls.o braille.o braille_tsi.o logfile.o layer.o \
|
|
list_generic.o list_display.o list_window.o \
|
|
sched.o teln.o nethack.o encoding.o canvas.o layout.o viewport.o
|
|
|
|
all: screen
|
|
|
|
screen: $(OFILES)
|
|
$(CC) $(LDFLAGS) -o $@ $(OFILES) $(LIBS)
|
|
|
|
.c.o:
|
|
$(CC) -c -I. -I$(srcdir) $(M_CFLAGS) $(CPPFLAGS) $(DEFS) \
|
|
$(OPTIONS) $(CFLAGS) $<
|
|
|
|
install_bin: .version screen installdirs
|
|
-if [ -f $(DESTDIR)$(bindir)/$(SCREEN) ] && [ ! -f $(DESTDIR)$(bindir)/$(SCREEN).old ]; \
|
|
then mv $(DESTDIR)$(bindir)/$(SCREEN) $(DESTDIR)$(bindir)/$(SCREEN).old; fi
|
|
$(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN)
|
|
-chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN)
|
|
# This doesn't work if $(bindir)/screen is a symlink
|
|
-if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen $(DESTDIR)$(bindir)/screen.old; fi
|
|
rm -f $(DESTDIR)$(bindir)/screen
|
|
(cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen)
|
|
cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS)
|
|
|
|
###############################################################################
|
|
install: installdirs install_bin
|
|
cd doc ; $(MAKE) install
|
|
-if [ -d $(DESTDIR)/usr/lib/terminfo ]; then \
|
|
PATH="$$PATH:/usr/5bin" tic ${srcdir}/terminfo/screeninfo.src; \
|
|
chmod 644 $(DESTDIR)/usr/lib/terminfo/s/screen*; \
|
|
fi
|
|
# Better do this by hand. E.g. under RCS...
|
|
# cat ${srcdir}/terminfo/screencap >> /etc/termcap
|
|
@echo "termcap entry (${srcdir}/terminfo/screencap) should be installed manually."
|
|
@echo "You may also want to install $(srcdir)/etc/etcscreenrc in" $(ETCSCREENRC)
|
|
|
|
installdirs:
|
|
# Path leading to ETCSCREENRC and Socketdirectory not checked.
|
|
$(srcdir)/etc/mkinstalldirs $(DESTDIR)$(bindir) $(DESTDIR)$(SCREENENCODINGS)
|
|
cd doc ; $(MAKE) installdirs
|
|
|
|
uninstall: .version
|
|
rm -f $(DESTDIR)$(bindir)/$(SCREEN)
|
|
rm -f $(DESTDIR)$(bindir)/screen
|
|
-mv $(DESTDIR)$(bindir)/screen.old $(DESTDIR)$(bindir)/screen
|
|
rm -f $(DESTDIR)$(ETCSCREENRC)
|
|
cd doc; $(MAKE) uninstall
|
|
|
|
shadow:
|
|
mkdir shadow;
|
|
cd shadow; ln -s ../*.[ch] ../*.in ../*.sh ../configure ../doc ../terminfo ../etc .
|
|
rm -f shadow/term.h shadow/tty.c shadow/comm.h shadow/osdef.h
|
|
echo "install all Makefiles and config:" > shadow/Makefile
|
|
echo " rm -f config.cache" >> shadow/Makefile
|
|
echo " sh ./configure" >> shadow/Makefile
|
|
|
|
term.h: term.c term.sh
|
|
AWK=$(AWK) srcdir=$(srcdir) sh $(srcdir)/term.sh
|
|
|
|
kmapdef.c: term.h
|
|
|
|
tty.c: tty.sh
|
|
sh $(srcdir)/tty.sh tty.c
|
|
|
|
comm.h: comm.c comm.sh config.h
|
|
AWK=$(AWK) CC="$(CC) $(CFLAGS)" srcdir=${srcdir} sh $(srcdir)/comm.sh
|
|
|
|
osdef.h: osdef.sh config.h osdef.h.in
|
|
CPP="$(CPP) $(CPPFLAGS)" srcdir=${srcdir} sh $(srcdir)/osdef.sh
|
|
|
|
docs:
|
|
cd doc; $(MAKE) dvi screen.info
|
|
|
|
dvi info screen.info:
|
|
-cd doc; $(MAKE) $@
|
|
|
|
mostlyclean:
|
|
rm -f $(OFILES) screen config.cache osdef0.c osdef1.sed osdef2.sed
|
|
|
|
clean celan: mostlyclean
|
|
rm -f tty.c term.h comm.h osdef.h kmapdef.c core
|
|
|
|
# Delete all files from the current directory that are created by
|
|
# configuring or building the program.
|
|
# building of term.h/comm.h requires awk. Keep it in the distribution
|
|
# we keep config.h, as this file knows where 'make dist' finds the ETCSCREENRC.
|
|
#distclean: mostlyclean
|
|
# rm -f $(SCREEN).tar $(SCREEN).tar.gz
|
|
# rm -f config.status Makefile
|
|
# rm -f osdef.h doc/Makefile
|
|
|
|
maintainer-clean:
|
|
@echo "This command is not even intended for maintainers to use;"
|
|
@echo "it deletes files that may require special tools to rebuild."
|
|
|
|
|
|
# Delete everything from the current directory that can be
|
|
# reconstructed with this Makefile.
|
|
realclean: .version mostlyclean
|
|
rm -f $(SCREEN).tar $(SCREEN).tar.gz
|
|
rm -f config.status Makefile doc/Makefile
|
|
rm -f tty.c term.h comm.h osdef.h kmapdef.c
|
|
rm -f config.h
|
|
echo "install all Makefiles and config:" > Makefile
|
|
echo " sh ./configure" >> Makefile
|
|
|
|
tags TAGS: $(CFILES)
|
|
-ctags *.sh $(CFILES) *.h
|
|
-etags *.sh $(CFILES) *.h
|
|
|
|
dist: .version $(SCREEN).tar.gz
|
|
|
|
$(SCREEN).tar: .version term.h comm.h tty.c kmapdef.c
|
|
-rm -rf dist
|
|
mkdir dist
|
|
mkdir dist/$(SCREEN)
|
|
ln acls.h ansi.h display.h extern.h logfile.h mark.h os.h \
|
|
layer.h patchlevel.h screen.h window.h image.h \
|
|
osdef.h.in term.sh tty.sh comm.sh osdef.sh braille.h \
|
|
sched.h \
|
|
$(CFILES) \
|
|
ChangeLog COPYING INSTALL NEWS* TODO install.sh \
|
|
dist/$(SCREEN)
|
|
cd dist/$(SCREEN); mv tty.c tty.c.dist
|
|
cd dist/$(SCREEN); mv kmapdef.c kmapdef.c.dist
|
|
ln configure.in configure dist/$(SCREEN)
|
|
sed -e 's@"/local/screens@"/tmp/screens@' -e 's@"/local@"/usr/local@g' < config.h.in > dist/$(SCREEN)/config.h.in
|
|
sed -e 's@[ ]/local@ /usr/local@g' -e 's/^CFLAGS = -g/CFLAGS = -O/' < Makefile.in > dist/$(SCREEN)/Makefile.in
|
|
ln term.h dist/$(SCREEN)/term.h.dist
|
|
ln comm.h dist/$(SCREEN)/comm.h.dist
|
|
ln README dist/$(SCREEN)/README
|
|
mkdir dist/$(SCREEN)/terminfo
|
|
cd terminfo; ln 8bits README checktc.c screencap \
|
|
screeninfo.src test.txt tetris.c \
|
|
../dist/$(SCREEN)/terminfo
|
|
mkdir dist/$(SCREEN)/etc
|
|
cd etc; ln * ../dist/$(SCREEN)/etc
|
|
mkdir dist/$(SCREEN)/utf8encodings
|
|
cd utf8encodings; ln * ../dist/$(SCREEN)/utf8encodings
|
|
# sed -e 's/^startup/#startup/' -e 's/^autodetach/#autodetach/' < $(ETCSCREENRC) > dist/$(SCREEN)/etc/etcscreenrc
|
|
cp $(HOME)/.screenrc dist/$(SCREEN)/etc/screenrc
|
|
mkdir dist/$(SCREEN)/doc
|
|
sed -e 's@/local/emacs@/usr/local@g' < doc/Makefile.in > dist/$(SCREEN)/doc/Makefile.in
|
|
cd doc; ln FAQ README.DOTSCREEN screen.1 screen.texinfo fdpat.ps make.help window_to_display.ps \
|
|
../dist/$(SCREEN)/doc
|
|
cd doc; if test -f screen.info; then ln screen.info* \
|
|
../dist/$(SCREEN)/doc; fi
|
|
cd dist/$(SCREEN)/doc; ln -s ../install.sh .
|
|
cd dist/$(SCREEN); ln -s doc/FAQ .
|
|
echo "install all Makefiles and config:" > dist/$(SCREEN)/Makefile
|
|
echo " rm -f config.cache" >> dist/$(SCREEN)/Makefile
|
|
echo " sh ./configure" >> dist/$(SCREEN)/Makefile
|
|
cd dist; tar cf ../$(SCREEN).tar $(SCREEN)
|
|
rm -rf dist
|
|
|
|
$(SCREEN).tar.gz: $(SCREEN).tar
|
|
gzip -nf $(SCREEN).tar || gzip -f $(SCREEN).tar
|
|
|
|
# Perform self-tests (if any).
|
|
check:
|
|
|
|
lint:
|
|
lint -I. $(CFILES)
|
|
|
|
saber:
|
|
#load $(CFLAGS) screen.c ansi.c $(LIBS)
|
|
|
|
config:
|
|
rm -f config.cache
|
|
sh ./configure
|
|
|
|
|
|
###############################################################################
|
|
|
|
.version:
|
|
@rev=`sed < $(srcdir)/patchlevel.h -n -e '/#define REV/s/#define REV *//p'`; \
|
|
vers=`sed < $(srcdir)/patchlevel.h -n -e '/#define VERS/s/#define VERS *//p'`; \
|
|
pat=`sed < $(srcdir)/patchlevel.h -n -e '/#define PATCHLEVEL/s/#define PATCHLEVEL *//p'`; \
|
|
if [ "$${rev}.$${vers}.$${pat}" != "$(VERSION)" ]; then \
|
|
echo "This distribution is screen-$${rev}.$${vers}.$${pat}, but"; \
|
|
echo "the Makefile is from $(VERSION). Please update!"; exit 1; fi
|
|
|
|
###############################################################################
|
|
|
|
mdepend: $(CFILES) term.h
|
|
@rm -f DEPEND ; \
|
|
for i in ${CFILES} ; do \
|
|
echo "$$i" ; \
|
|
echo `echo "$$i" | sed -e 's/.c$$/.o/'`": $$i" `\
|
|
cc -E $$i |\
|
|
grep '^# .*"\./.*\.h"' |\
|
|
(sort -t'"' -u -k 2,2 2>/dev/null || sort -t'"' -u +1 -2) |\
|
|
sed -e 's/.*"\.\/\(.*\)".*/\1/'\
|
|
` >> DEPEND ; \
|
|
done
|
|
|
|
|
|
depend: depend.in
|
|
./config.status || ./configure
|
|
|
|
depend.in: $(CFILES) term.h
|
|
cp Makefile.in Makefile.in~
|
|
sed -e '/\#\#\# Dependencies/q' < Makefile.in > tmp_make
|
|
for i in $(CFILES); do echo $$i; $(CPP_DEPEND) $$i >> tmp_make; done
|
|
mv tmp_make Makefile.in
|
|
|
|
###############################################################################
|
|
|
|
### Dependencies:
|
|
screen.o: layout.h viewport.h canvas.h screen.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h braille.h \
|
|
patchlevel.h logfile.h extern.h
|
|
ansi.o: layout.h viewport.h canvas.h ansi.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h braille.h extern.h \
|
|
logfile.h
|
|
fileio.o: layout.h viewport.h canvas.h fileio.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
mark.o: layout.h viewport.h canvas.h mark.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h mark.h extern.h
|
|
misc.o: layout.h viewport.h canvas.h misc.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
resize.o: layout.h viewport.h canvas.h resize.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
socket.o: layout.h viewport.h canvas.h socket.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
search.o: layout.h viewport.h canvas.h search.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h mark.h extern.h
|
|
tty.o: layout.h viewport.h canvas.h tty.c config.h screen.h os.h osdef.h ansi.h acls.h comm.h \
|
|
layer.h term.h image.h display.h window.h extern.h
|
|
term.o: layout.h viewport.h canvas.h term.c term.h
|
|
window.o: layout.h viewport.h canvas.h window.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h logfile.h
|
|
utmp.o: layout.h viewport.h canvas.h utmp.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
loadav.o: layout.h viewport.h canvas.h loadav.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
putenv.o: layout.h viewport.h canvas.h putenv.c config.h
|
|
help.o: layout.h viewport.h canvas.h help.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h list_generic.h
|
|
termcap.o: layout.h viewport.h canvas.h termcap.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
input.o: layout.h viewport.h canvas.h input.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
attacher.o: layout.h viewport.h canvas.h attacher.c config.h screen.h os.h osdef.h ansi.h \
|
|
acls.h comm.h layer.h term.h image.h display.h window.h extern.h
|
|
pty.o: layout.h viewport.h canvas.h pty.c config.h screen.h os.h osdef.h ansi.h acls.h comm.h \
|
|
layer.h term.h image.h display.h window.h extern.h
|
|
process.o: layout.h viewport.h canvas.h process.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h logfile.h
|
|
display.o: layout.h viewport.h canvas.h display.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h braille.h
|
|
canvas.o: layout.h viewport.h canvas.h canvas.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h \
|
|
braille.h
|
|
comm.o: layout.h viewport.h canvas.h comm.c config.h acls.h comm.h
|
|
kmapdef.o: layout.h viewport.h canvas.h kmapdef.c config.h
|
|
acls.o: layout.h viewport.h canvas.h acls.c config.h screen.h os.h osdef.h ansi.h acls.h comm.h \
|
|
layer.h term.h image.h display.h window.h extern.h
|
|
braille.o: layout.h viewport.h canvas.h braille.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h braille.h
|
|
braille_tsi.o: layout.h viewport.h canvas.h braille_tsi.c config.h screen.h os.h osdef.h ansi.h \
|
|
acls.h comm.h layer.h term.h image.h display.h window.h extern.h \
|
|
braille.h
|
|
logfile.o: layout.h viewport.h canvas.h logfile.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h logfile.h
|
|
layer.o: layout.h viewport.h canvas.h layer.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
sched.o: layout.h viewport.h canvas.h sched.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h logfile.h
|
|
teln.o: layout.h viewport.h canvas.h teln.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
nethack.o: layout.h viewport.h canvas.h nethack.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
encoding.o: layout.h viewport.h canvas.h encoding.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h
|
|
layout.o: layout.h viewport.h canvas.h layout.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h \
|
|
braille.h
|
|
viewport.o: layout.h viewport.h canvas.h viewport.c config.h screen.h os.h osdef.h ansi.h acls.h \
|
|
comm.h layer.h term.h image.h display.h window.h extern.h \
|
|
braille.h
|
|
list_generic.o: list_generic.h list_generic.c layer.h screen.h osdef.h
|
|
list_display.o: list_generic.h list_display.c layer.h screen.h osdef.h
|
|
list_window.o: list_generic.h list_window.c window.h layer.h screen.h osdef.h comm.h
|
|
|