V10/ncurses/screen/makefile

#	@(#)makefile	1.4
#
#	Curses Library Low Level Makefile
#
#	CFLAGS has -DVIDEO & -DKEYPAD for the libcurses.a library.  They could
#		be put into a separate variable if desired, but I saw no reason
#		for doing so.
#	DFLAGS, TFLAGS, & PFLAGS are for debugging, tracing, & profiling
#		respectively.  They all contain the DEBUG flag because it is
#		thought that any of the styles of compiling is still debugging.
#		Also the DEBUG flag will create very large files and it is not
#		recommended that all of the files be compiled with the DEBUG
#		flag defined.  This will make 'ar' die because the library will
#		exceed 2065 blocks in size.  But I see no reason not to compile
#		individual or groups of files with these flags defined.  These
#		flags can't be used on a pdp11/70 or other small machines
#		because of the huge sizes of .o files produced for the library.
#	FILES is used for the naming of the object files.
#	O is used to destinguish between compiling, debugging, tracing, &
#		profiling.
#	MINICURSES is a flag used to compile a small version of libcurses.
#		It should not be used for the compiling of libcurses.a.  It is
#		strictly for the application programmers convenience.
#		If MINICURSES is desired with ti4 or show then type:
#			"make <[ti4][show] MINICURSES=-DMINICURSES"
#
ROOT		=
INCLUDE		= $(ROOT)/usr/include
LIB		= $(ROOT)/usr/lib
CURSES		= libcurses.a
BIN		= $(ROOT)/usr/bin
O		= o
MINICURSES	=
CFLAGS		= -DVIDEO -DKEYPAD -O
DFLAGS		= -DVIDEO -DKEYPAD -DDEBUG -I.
TFLAGS		= -DVIDEO -DKEYPAD -DDEBUG -O -I.
PFLAGS		= -DVIDEO -DKEYPAD -DDEBUG -p -O -I.
FILES		= __cflush.$(O) __sscans.$(O) _blanks.$(O) _c_clean.$(O) \
		_clearhl.$(O) _clearline.$(O) _comphash.$(O) _delay.$(O) \
		_delchars.$(O) _dellines.$(O) _dumpwin.$(O) _ec_quit.$(O) \
		_fixdelay.$(O) _forcehl.$(O) _hlmode.$(O) _id_char.$(O) \
		_init_cost.$(O) _inschars.$(O) _insmode.$(O) _kpmode.$(O) \
		_line_free.$(O) _ll_move.$(O) _outch.$(O) _outchar.$(O) \
		_pos.$(O) _reset.$(O) _scrdown.$(O) _scrollf.$(O) _sethl.$(O) \
		_setmode.$(O) _setwind.$(O) _shove.$(O) _sprintw.$(O) \
		_sputc.$(O) _syncmodes.$(O) _tscroll.$(O) _window.$(O) \
		addch.$(O) addstr.$(O) baudrate.$(O) beep.$(O) box.$(O) \
		capnames.$(O) cbreak.$(O) chktypeahd.$(O) clear.$(O) \
		clearok.$(O) clreolinln.$(O) clrtobot.$(O) clrtoeol.$(O) \
		cntcostfn.$(O) crmode.$(O) curses.$(O) def_prog.$(O) \
		def_shell.$(O) delayoutpt.$(O) delch.$(O) deleteln.$(O) \
		delwin.$(O) doprnt.$(O) doscan.$(O) doupdate.$(O) draino.$(O) \
		echo.$(O) endwin.$(O) erase.$(O) erasechar.$(O) fixterm.$(O) \
		flash.$(O) flushinp.$(O) getch.$(O) getstr.$(O) idlok.$(O) \
		gettmode.$(O) has_ic.$(O) has_il.$(O) idln.getst.$(O) \
		initkeypad.$(O) initscr.$(O) insch.$(O) insertln.$(O) \
		intrflush.$(O) keypad.$(O) killchar.$(O) leaveok.$(O) \
		line_alloc.$(O) ll_refresh.$(O) longname.$(O) m_addch.$(O) \
		m_addstr.$(O) m_clear.$(O) m_erase.$(O) m_move.$(O) meta.$(O) \
		m_refresh.$(O) m_tstp.$(O) makenew.$(O) miniinit.$(O) \
		move.$(O) mvcur.$(O) mvprintw.$(O) mvscanw.$(O) mvwin.$(O) \
		mvwprintw.$(O) mvwscanw.$(O) naps.$(O) newpad.$(O) \
		newterm.$(O) newwin.$(O) nl.$(O) nocbreak.$(O) nocrmode.$(O) \
		nodelay.$(O) noecho.$(O) nonl.$(O) noraw.$(O) nttychktrm.$(O) \
		overlay.$(O) overwrite.$(O) pnoutrfrsh.$(O) prefresh.$(O) \
		printw.$(O) putp.$(O) raw.$(O) reset_prog.$(O) resetshell.$(O) \
		resetterm.$(O) resetty.$(O) restarttrm.$(O) saveterm.$(O) \
		savetty.$(O) scanw.$(O) scroll.$(O) scrollok.$(O) select.$(O) \
		set_term.$(O) setbuffred.$(O) setterm.$(O) setupterm.$(O) \
		showstring.$(O) subwin.$(O) tgetent.$(O) tgetflag.$(O) \
		tgetnum.$(O) tgetstr.$(O) tgoto.$(O) touchwin.$(O) tparm.$(O) \
		tputs.$(O) traceonoff.$(O) tstp.$(O) two.twostr.$(O) \
		typeahead.$(O) unctrl.$(O) vidattr.$(O) vidputs.$(O) \
		vsprintf.$(O) vsscanf.$(O) wattroff.$(O) wattron.$(O) \
		wattrset.$(O) wnoutrfrsh.$(O) wprintw.$(O) wrefresh.$(O) \
		writechars.$(O) wscanw.$(O) wstandend.$(O) wstandout.$(O)

.SUFFIXES:	.o .d .t .p

.c.o:	
			$(CC) $(CFLAGS) $(MINICURSES) -c $*.c

.c.d:	
			if [ -f $*.o ] ; then mv $*.o tmp ; fi
			$(CC) $(DFLAGS) $(MINICURSES) -c $*.c
			mv $*.o $*.d
			if [ -f tmp ] ; then mv tmp $*.o
.c.t:	
			if [ -f $*.o ] ; then mv $*.o tmp ; fi
			$(CC) $(TFLAGS) $(MINICURSES) -c $*.c
			mv $*.o $*.d
			if [ -f tmp ] ; then mv tmp $*.o

.c.p:	
			if [ -f $*.o ] ; then mv $*.o tmp ; fi
			$(CC) $(PFLAGS) $(MINICURSES) -c $*.c
			mv $*.o $*.d
			if [ -f tmp ] ; then mv tmp $*.o

all:		$(CURSES)

$(CURSES):	$(FILES) curses.h curshdr.h term.h unctrl.h curses.ext curses.c
		ar rv $(CURSES) `lorder *.$(O) | tsort`

debug:
		$(MAKE) O=d CURSES=libdcurses.a

trace:
		$(MAKE) O=t CURSES=libtcurses.a

profile:
		$(MAKE) O=p CURSES=libpcurses.a

show:		libcurses.a show.o
		$(CC) $(CFLAGS) $(MINICURSES) show.o libcurses.a -o show
		/bin/rm show.o

tic:		tic.o capnames.o
		-if pdp11; \
		then \
			cc -i $(CFLAGS) $(MINICURSES) tic.o capnames.o -o tic; \
			/bin/rm tic.o; \
		else \
			cc $(CFLAGS) -DL_ctermid $(MINICURSES) tic.o capnames.o -o tic; \
			/bin/rm tic.o; \
		fi

ti4:		libcurses.a ti4.o
		cc $(CFLAGS) $(MINICURSES) ti4$(O) libcurses.a -o ti4
		/bin/rm ti4.o

ti4.o:		
		cc mkti4.c -O -o mkti4
		mkti4 >ti4.c
		cc $(CFLAGS) $(MINICURSES) ti4.c -O -c

clean:	
		/bin/rm -f *.o

clobber:	clean
		/bin/rm -f libcurses.a tic

install:	libcurses.a tic
		cp libcurses.a $(LIB)/libcurses.a
		cp tic $(BIN)/tic
		chmod 775 $(BIN)/tic 
		chmod 664 $(LIB)/libcurses.a
		chgrp bin $(BIN)/tic $(LIB)/libcurses.a
		chown bin $(BIN)/tic $(LIB)/libcurses.a