1# 2# Makefile template for rlfe 3# 4# See machine dependant config.h for more configuration options. 5# 6 7srcdir = @srcdir@ 8VPATH = @srcdir@ 9 10DESTDIR = 11 12# Where to install screen. 13 14prefix = @prefix@ 15exec_prefix = @exec_prefix@ 16 17# don't forget to change mandir and infodir in doc/Makefile. 18bindir = $(exec_prefix)/bin 19 20VERSION = @VERSION@ 21SCREEN = screen-$(VERSION) 22 23CC = @CC@ 24CFLAGS = @CFLAGS@ 25CPPFLAGS = @CPPFLAGS@ 26#LDFLAGS = -L$(READLINE_DIR) 27LDFLAGS = @LDFLAGS@ 28LIBS = -lreadline -lhistory @LIBS@ 29 30CPP=@CPP@ 31CPP_DEPEND=$(CC) -MM 32 33INSTALL = @INSTALL@ 34INSTALL_PROGRAM = @INSTALL_PROGRAM@ 35INSTALL_DATA = @INSTALL_DATA@ 36 37AWK = @AWK@ 38 39OPTIONS= 40#OPTIONS= -DDEBUG 41 42SHELL=/bin/sh 43 44CFILES= rlfe.c pty.c 45HFILES= extern.h os.h screen.h 46EXTRA_DIST=configure.in configure Makefile.in config.h.in ChangeLog README 47OFILES= rlfe.o pty.o 48 49all: rlfe 50 51rlfe: $(OFILES) 52 $(CC) $(LDFLAGS) -o $@ $(OFILES) $(LIBS) 53 54rlfe-$(VERSION).tar.gz: 55 tar czf $@ $(CFILES) $(HFILES) $(EXTRA_DIST) 56 57.c.o: 58 $(CC) -c -I. -I$(srcdir) $(CPPFLAGS) $(M_CFLAGS) $(DEFS) $(OPTIONS) $(CFLAGS) $< 59 60install_bin: .version screen 61 -if [ -f $(DESTDIR)$(bindir)/$(SCREEN) ] && [ ! -f $(DESTDIR)$(bindir)/$(SCREEN).old ]; \ 62 then mv $(DESTDIR)$(bindir)/$(SCREEN) $(DESTDIR)$(bindir)/$(SCREEN).old; fi 63 $(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN) 64 -chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN) 65# This doesn't work if $(bindir)/screen is a symlink 66 -if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen $(DESTDIR)$(bindir)/screen.old; fi 67 rm -f $(DESTDIR)$(bindir)/screen 68 (cd $(DESTDIR)$(bindir) && ln -sf $(SCREEN) screen) 69 cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS) 70 71uninstall: .version 72 rm -f $(DESTDIR)$(bindir)/$(SCREEN) 73 rm -f $(DESTDIR)$(bindir)/screen 74 -mv $(DESTDIR)$(bindir)/screen.old $(DESTDIR)$(bindir)/screen 75 rm -f $(DESTDIR)$(ETCSCREENRC) 76 cd doc; $(MAKE) uninstall 77 78shadow: 79 mkdir shadow; 80 cd shadow; ln -s ../*.[ch] ../*.in ../*.sh ../configure ../doc ../terminfo ../etc . 81 rm -f shadow/term.h shadow/tty.c shadow/comm.h shadow/osdef.h 82 echo "install all Makefiles and config:" > shadow/Makefile 83 echo " rm -f config.cache" >> shadow/Makefile 84 echo " sh ./configure" >> shadow/Makefile 85 86term.h: term.c term.sh 87 AWK=$(AWK) srcdir=$(srcdir) sh $(srcdir)/term.sh 88 89kmapdef.c: term.h 90 91tty.c: tty.sh 92 sh $(srcdir)/tty.sh tty.c 93 94mostlyclean: 95 rm -f $(OFILES) rlfe *.o 96 97clean celan: mostlyclean 98 rm -f tty.c term.h comm.h osdef.h kmapdef.c core 99 100# Delete all files from the current directory that are created by 101# configuring or building the program. 102# building of term.h/comm.h requires awk. Keep it in the distribution 103# we keep config.h, as this file knows where 'make dist' finds the ETCSCREENRC. 104#distclean: mostlyclean 105# rm -f $(SCREEN).tar $(SCREEN).tar.gz 106# rm -f config.status Makefile 107# rm -f osdef.h doc/Makefile 108 109maintainer-clean: 110 @echo "This command is not even intended for maintainers to use;" 111 @echo "it deletes files that may require special tools to rebuild." 112 113 114# Delete everything from the current directory that can be 115# reconstructed with this Makefile. 116realclean: .version mostlyclean 117 rm -f $(SCREEN).tar $(SCREEN).tar.gz 118 rm -f config.status Makefile doc/Makefile 119 rm -f tty.c term.h comm.h osdef.h kmapdef.c 120 rm -f config.h 121 echo "install all Makefiles and config:" > Makefile 122 echo " sh ./configure" >> Makefile 123 124tags TAGS: $(CFILES) 125 -ctags *.sh $(CFILES) *.h 126 -ctags -e *.sh $(CFILES) *.h 127 128dist: .version $(SCREEN).tar.gz 129 130 131# Perform self-tests (if any). 132check: 133 134config: 135 rm -f config.cache 136 sh ./configure 137 138 139############################################################################### 140 141.version: 142 @rev=`sed < $(srcdir)/patchlevel.h -n -e '/#define REV/s/#define REV *//p'`; \ 143 vers=`sed < $(srcdir)/patchlevel.h -n -e '/#define VERS/s/#define VERS *//p'`; \ 144 pat=`sed < $(srcdir)/patchlevel.h -n -e '/#define PATCHLEVEL/s/#define PATCHLEVEL *//p'`; \ 145 if [ "$${rev}.$${vers}.$${pat}" != "$(VERSION)" ]; then \ 146 echo "This distribution is screen-$${rev}.$${vers}.$${pat}, but"; \ 147 echo "the Makefile is from $(VERSION). Please update!"; exit 1; fi 148 149############################################################################### 150 151mdepend: $(CFILES) term.h 152 @rm -f DEPEND ; \ 153 for i in ${CFILES} ; do \ 154 echo "$$i" ; \ 155 echo `echo "$$i" | sed -e 's/.c$$/.o/'`": $$i" `\ 156 cc -E $$i |\ 157 grep '^# .*"\./.*\.h"' |\ 158 (sort -t'"' -u -k 2,2 2>/dev/null || sort -t'"' -u +1 -2) |\ 159 sed -e 's/.*"\.\/\(.*\)".*/\1/'\ 160 ` >> DEPEND ; \ 161 done 162 163depend: depend.in 164 ./config.status || ./configure 165 166depend.in: $(CFILES) term.h 167 cp Makefile.in Makefile.in~ 168 sed -e '/\#\#\# Dependencies/q' < Makefile.in > tmp_make 169 for i in $(CFILES); do echo $$i; $(CPP_DEPEND) $$i >> tmp_make; done 170 mv tmp_make Makefile.in 171 172Makefile makefile: config.status $(srcdir)/Makefile.in 173 CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status 174 175config.status: $(srcdir)/configure 176 $(SHELL) ./config.status --recheck 177 178$(srcdir)/configure: $(srcdir)/configure.in 179 cd $(srcdir) && autoconf 180 181############################################################################### 182 183### Dependencies: 184pty.o: pty.c config.h 185