#ident	"@(#)curses:common/lib/xlibcurses/screen/makefile	1.1.2.6"
#ident "$Header: Makefile,v 76.6 95/08/18 12:12:39 ssa Exp $"

#
# cursor package maker

#
#for 32bit wchar_t model, use these defines
#MODEL=		32
MODEL=
VERSION=	1
SPECIAL=	x

#CPPDEFS=	-DSYSV -D_HPUX_SOURCE -D_AIX -D_INCLUDE_POSIX_SOURCE -D_TERMIOS_INCLUDED
CPPDEFS=	-DSYSV -D_HPUX_SOURCE -D_AIX -D_TERMIOS_INCLUDED -DNAPINTERVAL=100 -D__max_disp_width=2 -DNOBLIT -D_ACS_COMPAT_CODE -D_XOPEN_SOURCE_EXTENDED
# -DCURS_PERFORMANCE -DCURS_MACROS



#for 16bit wchar_t model, use these defines
#MODEL=		16
#CPPDEFS= 	-D_WCHAR_T -D_WCHAR16 -D"wchar_t=unsigned short"

#if AIX, use the following defines
#MODEL=		16
#CPPDEFS=	-DNOBLIT -D_WCHAR_T -D_WCHAR16 -D"wchar_t=unsigned short" -D"EOVERFLOW=127"

CCSLIB=		/usr/ccs/lib
#CCSBIN=	/usr/ccs/bin
CCSBIN=		/opt/ansic/bin
CC=		$(CCSBIN)/cc
GENCAT=		/usr/bin/gencat
FINDMSG=	/usr/bin/findmsg
USRLIB=		/usr/lib
USRBIN=		/usr/bin
CTAGS=		ctags
BUILT=		keycaps keyname.c termcap.c tiget.c tnames.c tinames.c tifnames.c tifget.c
#PHEADERS= 	term.h sys/curses.h
PHEADERS= 	sys/curses.h
TMP=		./tmp
VSSCANF=

AR=		/usr/ccs/bin/ar
LD=		/usr/ccs/bin/ld

CHMOD=		chmod
CPIO=		cpio
ECHO= 		echo
ED= 		ed
LN=		ln
LS=		ls
MKDIR=		mkdir
RM=		rm
UNIQ=		uniq
LINT=		lint
INS=		install

CCDEFS=		-Aa -UIDENT
INCPATH=	-I. -I/usr/include
#CFLAGS=		-G $(CCDEFS) $(CCOPTS) $(INCPATH) -DNOMACROS $(CPPDEFS)
CFLAGS=		$(CCDEFS) $(CCOPTS) $(INCPATH) -DNOMACROS $(CPPDEFS)

.SUFFIXES: .slo

#HEADERS=	sys/curses.h unctrl.h curses_inc.h curshdr.h term.h
HEADERS=	sys/curses.h unctrl.h curses_inc.h curshdr.h
ICFILES=	wmove.ic wchgat.ic wins_wch.ic win_wchnstr.ic




#
#	tic source and header files
#
TICHDRS=	compiler.h object.h

TICSRC=		tic_main.c tic_hash.c tic_captab.c tic_scan.c tic_error.c \
		tic_parse.c tic_read.c tnames.c tinames.c tifnames.c

# vsprintf.c

TICOBJS=	$(TICSRC:.c=.o)

CHDRS=		print.h otermcap.h

BSRC=		print.c iexpand.c
BOBJ=		print.o iexpand.o

USRC=		untic.c
UOBJ=		untic.o

CSRC=		captoinfo.c otermcap.c $(BSRC)
COBJ=		captoinfo.o otermcap.o $(BOBJ)

ISRC=		infocmp.c cexpand.c infotocap.c $(BSRC)
IOBJ=		infocmp.o cexpand.o infotocap.o $(BOBJ)

tools:		lib$(SPECIAL)curses$(MODEL).$(VERSION) tput captoinfo infocmp tic untic

CFILESN=  wunctrl.c _setout.c _get_wch.c _mvget_wch.c _mvwget_wch.c wget_wch.c \
 dwidth.c pecho_wchar.c wget_wstr.c _get_wstr.c _mvget_wstr.c \
 _mvwget_wstr.c _getn_wstr.c _mvgetn_wstr.c _mvwgetn_wstr.c wadd_wch.c \
 _add_wch.c _mvadd_wch.c _mvwadd_wch.c wadd_wchstr.c _add_wchstr.c \
 _mvadd_wchstr.c _mvwadd_wchstr.c wadd_wchnstr.c _add_wchnstr.c \
 _mvadd_wchnstr.c _mvwadd_wchnstr.c _echo_wchar.c wecho_wchar.c \
 _mvhline_set.c _mvin_wch.c _mvvline_set.c _mvwin_wch.c _box_set.c \
 _mvwvline_set.c _bkgrnd.c _bkgrndset.c _border_set.c _hline_set.c _in_wch.c \
 _vline_set.c mvwhline_set.c wbkgrnd.c wbkgrndset.c wborder_set.c \
 wgetbkgrnd.c whline_set.c win_wch.c wvline_set.c _setcchar.c \
 COLOR_PAIR.c _attr_get.c _wattr_get.c _attr_off.c _wattr_off.c  _attr_on.c \
_wattr_on.c  _attr_set.c _wattr_set.c _getcchar.c __cchar_t_equal.c \
_color_set.c _wcolor_set.c

CFILES0=	_addch.c _addchnstr.c _addchstr.c _addnstr.c \
		_addstr.c _attroff.c _attron.c _attrset.c \
		_beep.c _bkgd.c _bkgdset.c _border.c _box.c \
		_clear.c _clrtobot.c _clrtoeol.c _crmode.c \
		_del_curterm.c _delch.c _deleteln.c _echo.c \
		_echochar.c _erase.c _fixterm.c _flash.c \
		_garbagdlins.c _garbagedwin.c _getch.c \
		_getstr.c _halfdelay.c _hline.c _inch.c \
		_inchnstr.c _inchstr.c _innstr.c _insch.c \
		_insdelln.c _insertln.c _insnstr.c _insstr.c \
		_instr.c _intrflush.c _meta.c _mvaddch.c \
		_mvaddchnstr.c _mvaddchstr.c _mvaddnstr.c \
		_mvaddstr.c _mvdelch.c _mvgetch.c _mvgetstr.c \
		_mvhline.c _mvinch.c _mvinchnstr.c _mvinchstr.c \
		_mvinnstr.c _mvinsch.c _mvinsnstr.c _mvinsstr.c \
		_mvinstr.c _mvvline.c _mvwaddch.c _mvwaddchnst.c \
		_mvwaddchstr.c _mvwaddnstr.c _mvwaddstr.c _mvwdelch.c \
		_mvwgetch.c _mvwgetstr.c _mvwhline.c _mvwinch.c \
		_mvwinchnst.c _mvwinchstr.c _mvwinnstr.c _mvwinsch.c \
		_mvwinsnstr.c _mvwinsstr.c _mvwinstr.c _mvwvline.c \
		_newterm.c _nl.c _nocrmode.c _noecho.c _nonl.c \
		_noqiflush.c _overlay.c _overwrite.c _qiflush.c \
		_refresh.c _resetterm.c _saveterm.c _scr_init.c \
		_scr_restore.c _scr_set.c _scrl.c _scroll.c \
		_set_curterm.c _set_term.c _setscrreg.c _slk_init.c \
		_standend.c _standout.c _subpad.c _timeout.c \
		_touchline.c _unctrl.c _vline.c _waddchstr.c \
		_waddstr.c _wclear.c _wdeleteln.c _werase.c \
		_winsertln.c _winsstr.c _wstandend.c _wstandout.c \
		_getnstr.c _mvgetnstr.c _mvwgetnstr.c _slk_color.c \
		_slk_atr_off.c _slk_atr_on.c _slk_atr_set.c


# V2.c V3.c

CFILES1=	baudrate.c can_change.c \
		color_cont.c cbreak.c chkinput.c clearok.c copywin.c \
		curs_set.c curserr.c curses.c def_prog.c delay.c \
		delay_out.c delkey.c delkeymap.c delscreen.c delterm.c \
		delwin.c derwin.c doupdate.c draino.c dupwin.c endwin.c \
		erasechar.c flushinp.c getattrs.c getbegyx.c getbkgd.c \
		getmaxyx.c getparyx.c getsyx.c gettmode.c getwin.c \
		getyx.c has_colors.c has_ic.c has_il.c idcok.c idlok.c \
		immedok.c init_acs.c init_color.c init_costs.c \
		init_pair.c initscr.c is_linetou.c is_wintou.c \
		keyname.c keypad.c killchar.c leaveok.c

CFILES2=	longname.c makenew.c memSset.c meta.c mouse.c mvcur.c \
		mvderwin.c mvprintw.c mvscanw.c mvwin.c mvwprintw.c \
		mvwscanw.c napms.c newkey.c newpad.c newscreen.c \
		newwin.c nocbreak.c nodelay.c noraw.c \
		notimeout.c outch.c overlap.c pair_cont.c \
		pechochar.c pnoutref.c prefresh.c printw.c putp.c \
		putwin.c quick_echo.c raw.c redrawwin.c reset_sh.c \
		resetty.c restart.c ring.c ripoffline.c savetty.c \
		scanw.c scr_all.c scr_dump.c scr_ll_dump.c scr_reset.c \
		scrollok.c setcurscreen.c setcurterm.c setecho.c \
		setkeymap.c setnonl.c setqiflush.c setsyx.c setterm.c \
		setupterm.c slk_atroff.c slk_atron.c slk_atrset.c \
		slk_clear.c slk_label.c slk_noutref.c slk_refresh.c \
		slk_restore.c slk_set.c slk_start.c slk_touch.c \
		start_col.c subwin.c syncok.c tcsearch.c termattrs.c \
		termcap.c termerr.c termname.c tgetch.c tgoto.c tifget.c \
		tifnames.c tiget.c tinames.c tinputfd.c tnames.c \
		touchwin.c tparm.c tputs.c trace.c tstp.c ttimeout.c \
		typeahead.c unctrl.c ungetch.c use_env.c \
		untouchwin.c vidputs.c vidupdate.c vwprintw.c vw_printw.c \
		vwscanw.c vw_scanw.c \
		waddch.c waddchnstr.c waddnstr.c wattroff.c \
		wattron.c wattrset.c wbkgd.c wbkgdset.c wborder.c \
		wclrtobot.c wclrtoeol.c wdelch.c wechochar.c wgetch.c \
		wgetstr.c whline.c winch.c winchnstr.c winchstr.c \
		winnstr.c winsch.c winsdelln.c winsnstr.c winstr.c \
		wnoutref.c wprintw.c wredrawln.c wrefresh.c \
		wscanw.c wscrl.c wsetscrreg.c wsyncdown.c wsyncup.c \
		wtimeout.c wtouchln.c wvline.c 

CFILES3=	_mbclrch.c mbinsshift.c pechowchar.c \
		tgetwch.c ungetwch.c waddnwstr.c \
		waddwch.c waddwchnstr.c wechowchar.c wgetwstr.c \
		wgetwch.c winnwstr.c winsnwstr.c winswch.c \
		winwch.c winwchnstr.c winwstr.c hpux_rel.c

CFILES4=	_addnwstr.c _addwch.c _addwchnstr.c _addwchstr.c \
		_addwstr.c _echowchar.c _getnwstr.c _getwch.c \
		_getwstr.c _innwstr.c _insnwstr.c _inswch.c \
		_inswstr.c _inwch.c _inwchnstr.c _inwchstr.c \
		_inwstr.c _mvaddnwstr.c _mvaddwch.c _mvaddwchns.c \
		_mvaddwchstr.c _mvaddwstr.c _mvgetnwstr.c _mvgetwch.c \
		_mvgetwstr.c _mvinnwstr.c _mvinsnwstr.c _mvinswch.c \
		_mvinswstr.c _mvinwch.c _mvinwchnstr.c _mvinwchstr.c \
		_mvinwstr.c _mvwaddnwstr.c _mvwaddwch.c _mvwaddwchns.c \
		_mvwaddwchs.c _mvwaddwstr.c _mvwgetnwstr.c _mvwgetwch.c \
		_mvwgetwstr.c _mvwinnwstr.c _mvwinsnwstr.c _mvwinswch.c \
		_mvwinswstr.c _mvwinwch.c _mvwinwchns.c _mvwinwchstr.c \
		_mvwinwstr.c _waddwchstr.c _waddwstr.c _winswstr.c \
		_winwchstr.c

CFILES5=	_move.c _wmove.c _chgat.c _wchgat.c _mvchgat.c _mvwchgat.c \
		_ins_wch.c _mvins_wch.c _mvwins_wch.c _wins_wch.c \
		_in_wchnstr.c _in_wchstr.c _mvin_wchnstr.c _mvin_wchstr.c \
		_win_wchnstr.c _win_wchstr.c _mvwin_wchnstr.c _mvwin_wchstr.c 

all:
	@$(ECHO) Started: `date`
	$(MAKE) $(MAKEARGS) lib$(SPECIAL)curses$(MODEL).$(VERSION) 
	$(MAKE) $(MAKEARGS) libcurses$(MODEL).a
	$(MAKE) $(MAKEARGS) llib-lcurses.ln 
	$(MAKE) $(MAKEARGS) tools
 
# Regular, optimized objects
OBJSN=	$(CFILESN:.c=.o)
OBJS0=	$(CFILES0:.c=.o)
OBJS1=	$(CFILES1:.c=.o)
OBJS2=	$(CFILES2:.c=.o)
OBJS3=	$(CFILES3:.c=.o)
OBJS4=	$(CFILES4:.c=.o)
OBJS5=	$(CFILES5:.c=.o)
$(OBJSN): $(HEADERS)
$(OBJS0): $(HEADERS)
$(OBJS1): $(HEADERS)
$(OBJS2): $(HEADERS)
$(OBJS3): $(HEADERS)
$(OBJS4): $(HEADERS)
$(OBJS5): $(HEADERS) $(ICFILES)

CFILES = ${CFILESN} ${CFILES0} ${CFILES1} ${CFILES2} ${CFILES3} ${CFILES4} ${CFILES5}

# shared library objects
SOBJSN=	$(CFILESN:.c=.slo)
SOBJS0=	$(CFILES0:.c=.slo)
SOBJS1=	$(CFILES1:.c=.slo)
SOBJS2=	$(CFILES2:.c=.slo)
SOBJS3=	$(CFILES3:.c=.slo)
SOBJS4=	$(CFILES4:.c=.slo)
SOBJS5=	$(CFILES5:.c=.slo)
$(SOBJSN): $(HEADERS)
$(SOBJS0): $(HEADERS)
$(SOBJS1): $(HEADERS)
$(SOBJS2): $(HEADERS)
$(SOBJS3): $(HEADERS)
$(SOBJS4): $(HEADERS)
$(SOBJS5): $(HEADERS) $(ICFILES)

# debug archive library objects

DOBJSN=	$(CFILESN:.c=.d)
DOBJS0=	$(CFILES0:.c=.d)
DOBJS1=	$(CFILES1:.c=.d)
DOBJS2=	$(CFILES2:.c=.d)
DOBJS3=	$(CFILES3:.c=.d)
DOBJS4=	$(CFILES4:.c=.d)
DOBJS5=	$(CFILES5:.c=.d)
$(DOBJSN): $(HEADERS)
$(DOBJS0): $(HEADERS)
$(DOBJS1): $(HEADERS)
$(DOBJS2): $(HEADERS)
$(DOBJS3): $(HEADERS)
$(DOBJS4): $(HEADERS)
$(DOBJS5): $(HEADERS) $(ICFILES)


.c.slo:
	$(CC) $(CFLAGS) +z $(DEFLIST) -o $*.slo -c $*.c
.c.d:
	$(CC) $(CFLAGS) $(DEFLIST) -g -o $*.d -c $*.c

libs: lib$(SPECIAL)curses$(MODEL).$(VERSION) libcurses$(MODEL).a dlibcurses$(MODEL).a

shared: lib$(SPECIAL)curses$(MODEL).$(VERSION)

lib$(SPECIAL)curses$(MODEL).$(VERSION): $(SOBJSN) $(SOBJS0) $(SOBJS1) $(SOBJS2) $(SOBJS3) $(SOBJS4) $(SOBJS5)
	@$(ECHO)
	@$(ECHO) Building lib$(SPECIAL)curses$(MODEL).$(VERSION) Shared
	@$(ECHO)
	$(RM) -f lib$(SPECIAL)curses$(MODEL).$(VERSION) libcurses.list
	@$(ECHO) $(SOBJSN) >> libcurses.list
	@$(ECHO) $(SOBJS0) >> libcurses.list
	@$(ECHO) $(SOBJS1) >> libcurses.list
	@$(ECHO) $(SOBJS2) >> libcurses.list
	@$(ECHO) $(SOBJS3) >> libcurses.list
	@$(ECHO) $(SOBJS4) >> libcurses.list
	@$(ECHO) $(SOBJS5) >> libcurses.list

	$(RM) -f libcurses$(MODEL).sl
	$(LD) +h /usr/lib/lib$(SPECIAL)curses$(MODEL).$(VERSION) -x -b -o lib$(SPECIAL)curses$(MODEL).$(VERSION) \
	 -c libcurses.list
	$(LN) lib$(SPECIAL)curses$(MODEL).$(VERSION) libcurses$(MODEL).sl
	@$(ECHO)
	@$(ECHO) lib$(SPECIAL)curses$(MODEL).$(VERSION) shared library has been built
	@$(ECHO)

libcurses$(MODEL).a: $(OBJSN) $(OBJS0) $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5)
	@$(ECHO)
	@$(ECHO) Building libcurses$(MODEL).a archive
	@$(ECHO)
	$(RM) -f libcurses$(MODEL).a
	$(AR) qc libcurses$(MODEL).a $(OBJSN)
	$(AR) qc libcurses$(MODEL).a $(OBJS0)
	$(AR) qc libcurses$(MODEL).a $(OBJS1)
	$(AR) qc libcurses$(MODEL).a $(OBJS2)
	$(AR) qc libcurses$(MODEL).a $(OBJS3)
	$(AR) qc libcurses$(MODEL).a $(OBJS4)
	$(AR) qc libcurses$(MODEL).a $(OBJS5)
	@$(ECHO)
	@$(ECHO) libcurses$(MODEL).a has been archived
	@$(ECHO)

dlibcurses$(MODEL).a: $(DOBJSN) $(DOBJS0) $(DOBJS1) $(DOBJS2) $(DOBJS3) $(DOBJS4) $(DOBJS5)
	@$(ECHO)
	@$(ECHO) Building dlibcurses$(MODEL).a archive
	@$(ECHO)
	$(RM) -f dlibcurses$(MODEL).a
	$(AR) qc dlibcurses$(MODEL).a $(DOBJSN)
	$(AR) qc dlibcurses$(MODEL).a $(DOBJS0)
	$(AR) qc dlibcurses$(MODEL).a $(DOBJS1)
	$(AR) qc dlibcurses$(MODEL).a $(DOBJS2)
	$(AR) qc dlibcurses$(MODEL).a $(DOBJS3)
	$(AR) qc dlibcurses$(MODEL).a $(DOBJS4)
	$(AR) qc dlibcurses$(MODEL).a $(DOBJS5)
	@$(ECHO)
	@$(ECHO) dlibcurses$(MODEL).a has been archived
	@$(ECHO)


#term.h tnames.c tinames.c tifnames.c: caps maketerm.ed
#	@if [ ! -d "$(TMP)" ] ;\
#	then	$(ECHO) "\t$(TMP) not found.";\
#		$(ECHO) "\n\tCreating $(TMP)\n";\
#		$(MKDIR) $(TMP); \
#	fi;
#	@$(ECHO)
#	@$(ECHO) Building term.h
#	@$(ECHO)
#	$(ED) - < maketerm.ed
#	$(CH) $(CHMOD) 0664 term.h tnames.c tinames.c tifnames.c
#	@$(ECHO)
#	@$(ECHO) "term.h has been built"
#	@$(ECHO)
#
#keycaps: caps
#	@$(ECHO)
#	@$(ECHO) Building keycaps
#	@$(ECHO)
#	$(RM) -f $(TMP)/keycaps keycaps
#	grep "KEY_" caps > keycaps
#	@$(ECHO) 
#	@$(ECHO) "keycaps has been built"
#	@$(ECHO)
#
#sys/curses.h: keycaps sys/curses.ed
#	@if [ ! -d "$(TMP)" ] ;\
#	then	$(ECHO) "\t$(TMP) not found.";\
#		$(ECHO) "\n\tCreating $(TMP)\n";\
#		$(MKDIR) $(TMP); \
#	fi;
#	@$(ECHO) 
#	@$(ECHO) Building ./sys/curses.h
#	@$(ECHO) 
#	$(RM) -f sys/curses.h
#	$(ED) - < ./sys/curses.ed
#	$(CH) $(CHMOD) 0664 sys/curses.h
#	$(RM) -f $(TMP)/keycaps
#	@$(ECHO) 
#	@$(ECHO) "./sys/curses.h has been built"
#	@$(ECHO) 
#
#keyname.c: keycaps keyname.sh
#	@$(ECHO)
#	@$(ECHO) Building keyname.c
#	@$(ECHO)
#	$(RM) -f keyname.c
#	sh keyname.sh
#	$(CH) $(CHMOD) 0664 keyname.c
#	@$(ECHO)
#	@$(ECHO) "keyname.c has been built"
#	@$(ECHO)
#
#setkeymap.c: keycaps
#	@if tail -1 keycaps | grep 'KEY_MOUSE' > /dev/null; \
#	then touch setkeymap.c; \
#	else $(ECHO) new keys!! must change setkeymap.c; \
#	     exit 1; \
#	fi
#
#
#termcap.c:	termcap.ed caps
#	@if [ ! -d "$(TMP)" ] ;\
#	then	$(ECHO) "\t$(TMP) not found.";\
#		$(ECHO) "\n\tCreating $(TMP)\n";\
#		$(MKDIR) $(TMP); \
#	fi;
#	@$(ECHO) 
#	@$(ECHO) Building termcap.c
#	@$(ECHO)
#	$(RM) -f termcap.c
#	$(ED) - < termcap.ed
#	$(RM) -f bool num str
#	$(CH) $(CHMOD) 0664 termcap.c
#	@$(ECHO) 
#	@$(ECHO) "termcap.c has been built"
#	@$(ECHO)
#
#tifget.c:	tifget.ed caps
#	@if [ ! -d "$(TMP)" ] ;\
#	then	$(ECHO) "\t$(TMP) not found.";\
#		$(ECHO) "\n\tCreating $(TMP)\n";\
#		$(MKDIR) $(TMP); \
#	fi;
#	@$(ECHO)
#	@$(ECHO) Building tifget.c
#	@$(ECHO)
#	$(ED) - < tifget.ed
#	$(CH) $(CHMOD) 0664 tifget.c
#	@$(ECHO)
#	@$(ECHO) "tifget.c has been built"
#	@$(ECHO)
#
#tiget.c:	tiget.ed caps
#	@if [ ! -d "$(TMP)" ] ;\
#	then	$(ECHO) "\t$(TMP) not found.";\
#		$(ECHO) "\n\tCreating $(TMP)\n";\
#		$(MKDIR) $(TMP); \
#	fi;
#	@$(ECHO)
#	@$(ECHO) Building tiget.c
#	@$(ECHO)
#	$(ED) - < tiget.ed
#	$(CH) $(CHMOD) 0664 tiget.c
#	@$(ECHO)
#	@$(ECHO) "tiget.c has been built"
#	@$(ECHO)

ticclob:
	$(RM) -f $(TICOBJS) tic

tic_captab.o:	tic_captab.c compiler.h
tic_error.o:	tic_error.c compiler.h
#tic_hash.o:	tic_hash.c compiler.h term.h
tic_hash.o:	tic_hash.c compiler.h
#tic_main.o:	tic_main.c compiler.h curses.h
tic_main.o:	tic_main.c compiler.h
tic_parse.o:	tic_parse.c compiler.h object.h
tic_read.o:	tic_read.c object.h
tic_scan.o:	tic_scan.c compiler.h

new:	clean tags libcurses$(MODEL).$(VERSION)


clean:
	@$(ECHO)
	@$(ECHO) "Removing all .o's"
	@$(ECHO)
	@$(RM) -f lib$(SPECIAL)curses$(MODEL).$(VERSION) libcurses$(MODEL).a dlibcurses$(MODEL).a
	@$(RM) -f $(OBJSN)
	@$(RM) -f $(OBJS0)
	@$(RM) -f $(OBJS1)
	@$(RM) -f $(OBJS2)
	@$(RM) -f $(OBJS3)
	@$(RM) -f $(OBJS4)
	@$(RM) -f $(SOBJSN)
	@$(RM) -f $(SOBJS0)
	@$(RM) -f $(SOBJS1)
	@$(RM) -f $(SOBJS2)
	@$(RM) -f $(SOBJS3)
	@$(RM) -f $(SOBJS4)
	@$(RM) -f $(DOBJSN)
	@$(RM) -f $(DOBJS0)
	@$(RM) -f $(DOBJS1)
	@$(RM) -f $(DOBJS2)
	@$(RM) -f $(DOBJS3)
	@$(RM) -f $(DOBJS4)
	$(RM) -f *.o trace a.out
	$(RM) -f $(BUILT)

clobber: clean
	@$(RM) -rf $(TOBJS) $(TMP)
	$(RM) -f captoinfo untic chgtinfo dumpti infocmp show llib-lcurses.ln tic tput 
	$(RM) -f $(PHEADERS) untic.archived captoinfo.archived infocmp.archived

rmhdrs:
	@$(ECHO)
	@$(ECHO) The build of lib$(SPECIAL)curses$(MODEL).$(VERSION) generates programs and header files.
	@$(ECHO) We remove any old versions of these files before we begin.
	@$(ECHO)
	$(RM) -f $(BUILT)


tags:
	$(CTAGS) $(CFILES) $(HEADERS)

lintit:
	-$(LN) llib-lcurses llib.c
	@$(ECHO) $(LINT) -vxu $(CPPDEFS) -DNOMACROS > lint.out
	-$(LINT) -vxu $(CPPDEFS) -DNOMACROS $(CFILES) llib.c >> lint.out
	$(RM) -f llib.c

lpr:
	-pr `$(LS) $(HEADERS) | sort` | lpr
	-pr `$(LS) $(CFILES) | sort` | lpr
	-lpq

TPFILES= makefile \
	$(HEADERS) $(CFILES) \
	$(TICHDRS) $(TICSRC) \
	$(CHDRS) $(BSRC) $(CSRC) $(ISRC) $(USRC) \
	curses.ed \
	termcap.ed tiget.ed tifget.ed \
	tags llib-lcurses TODO caps getopt.c \
	keyname.sh \
	show.c testterminfo.c tput.c

tp:
	tp crm0 `$(LS) $(TPFILES) | $(UNIQ)`

tar:
	tar crvf curses.tar `$(LS) $(TPFILES) | $(UNIQ)`

cpio:
	$(LS) $(TPFILES) | $(UNIQ) | $(CPIO) -o > curses.cpio

cpio-c:
	$(LS) $(TPFILES) | $(UNIQ) | $(CPIO) -oc > curses.cpio

cpiotape:
	$(LS) $(TPFILES) | $(UNIQ) | $(CPIO) -oBc > /dev/rmt8

#llib-lcurses.ln: curses.h term.h
llib-lcurses.ln:
	-$(LN) llib-lcurses llib-lcurses.c
	$(LINT) $(CPPDEFS) -D_XOPEN_SOURCE_EXTENDED  -DNOMACROS -n -co curses -vx $(INCLUDE) llib-lcurses.c >>lint.out
	$(RM) -f llib-lcurses.c

$(INS): all
	@if [ ! -d "$(CCSLIB)" ] ;\
	then	$(ECHO) "\t$(CCSLIB) not found.";\
		$(ECHO) "\n\tCreating $(CCSLIB)\n";\
		$(MKDIR) -p $(CCSLIB); \
	fi;
	$(INS) -f $(CCSLIB) -m 644 -u bin -g bin lib$(SPECIAL)curses$(MODEL).$(VERSION)
	$(RM) -f $(CCSLIB)/libtermcap$(MODEL).a $(CCSLIB)/libtermlib$(MODEL).a
	$(CH)$(LN) $(CCSLIB)/libcurses$(MODEL).a $(CCSLIB)/libtermcap$(MODEL).a
	$(CH)$(LN) $(CCSLIB)/libcurses$(MODEL).a $(CCSLIB)/libtermlib$(MODEL).a
	@if [ ! -d "$(INC)" ] ;\
	then	$(ECHO) "\t$(INC) not found.";\
		$(ECHO) "\n\tCreating $(INC)\n";\
		$(MKDIR) -p $(INC); \
	fi;
	@if [ ! -d "$(USRLIB)" ] ;\
	then	$(ECHO) "\t$(USRLIB) not found.";\
		$(ECHO) "\n\tCreating $(USRLIB)\n";\
		$(MKDIR) -p $(USRLIB); \
	fi;

	cp curses.h term.h unctrl.h $(INC)
	cp llib-lcurses llib-lcurses.ln $(CCSLIB)

	@if [ ! -d "$(CCSBIN)" ] ;\
	then	$(ECHO) "\t$(CCSBIN) not found.";\
		$(ECHO) "\n\tCreating $(CCSBIN)\n";\
		$(MKDIR) -p $(CCSBIN); \
	fi;
	$(INS) -f $(CCSBIN) -m 555 -u bin -g bin tic
	$(INS) -f $(CCSBIN) -m 555 -u bin -g bin untic
	$(INS) -f $(CCSBIN) -m 555 -u bin -g bin captoinfo
	$(INS) -f $(CCSBIN) -m 555 -u bin -g bin infocmp
	$(INS) -f $(CCSBIN) -m 555 -u bin -g bin tput

cktmp:
	@$(ECHO) 
	@$(ECHO) lib$(SPECIAL)curses$(MODEL).$(VERSION) is built using $(TMP) for work space.
	@$(ECHO) Verifying the existence of $(TMP).
	@$(ECHO)
	@if [ -d "$(TMP)" ] ;\
	then \
		$(ECHO) "\t$(TMP) exists";\
		$(ECHO);\
	else  \
		$(ECHO) "\t$(TMP) not found.";\
		$(ECHO) "\n\tCreating $(TMP)\n";\
		$(MKDIR) $(TMP); \
	fi;

dumpti: setupterm.c curses.h term.h tnames.o tinames.o tifnames.o termerr.o curses.o
	@$(ECHO)
	@$(ECHO) Building dumpti
	@$(ECHO)
	-$(LN) setupterm.c dumpti.c
	$(CC) $(CFLAGS) $(DEFLIST) -DDUMPTI $(LDFLAGS) dumpti.c curses.o tnames.o tinames.o tifnames.o termerr.o -o dumpti $(LDLIBS) $(SHLIBS); rm -f dumpti.c
	@$(ECHO)
	@$(ECHO) dumpti has been built
	@$(ECHO)

untic: $(UOBJ) lib$(SPECIAL)curses$(MODEL).$(VERSION)
	$(CC) $(CFLAGS) $(DEFLIST) $(UOBJ) -lcurses $(LDFLAGS) -o untic $(LDLIBS) $(SHLIBS)

untic.archived: $(UOBJ) libcurses$(MODEL).a
	$(CC) $(CFLAGS) $(DEFLIST) $(UOBJ) libcurses$(MODEL).a $(LDFLAGS) -o untic.archived $(LDLIBS) $(SHLIBS)

captoinfo: $(COBJ) lib$(SPECIAL)curses$(MODEL).$(VERSION)
	$(CC) $(CFLAGS) $(DEFLIST) $(COBJ)  -lcurses $(LDFLAGS) -o captoinfo $(LDLIBS) $(SHLIBS)

captoinfo.archived: $(COBJ) libcurses$(MODEL).a
	$(CC) $(CFLAGS) $(DEFLIST) $(COBJ) libcurses$(MODEL).a $(LDFLAGS) -o captoinfo.archived $(LDLIBS) $(SHLIBS)

infocmp: $(IOBJ) lib$(SPECIAL)curses$(MODEL).$(VERSION)
	$(CC) $(CFLAGS) $(DEFLIST) $(IOBJ) -lcurses $(LDFLAGS) -o infocmp $(LDLIBS) $(SHLIBS)

infocmp.archived: $(IOBJ) libcurses$(MODEL).$(VERSION)
	$(CC) $(CFLAGS) $(DEFLIST) $(IOBJ) libcurses$(MODEL).a $(LDFLAGS) -o infocmp.archived $(LDLIBS) $(SHLIBS)

#captoinfo.o:	captoinfo.c curses.h otermcap.h print.h
captoinfo.o:	captoinfo.c otermcap.h print.h
otermcap.o:	otermcap.c otermcap.h
#print.o:	print.c curses.h print.h
print.o:	print.c print.h
iexpand.o:	iexpand.c print.h
cexpand.o:	cexpand.c print.h
#infotocap.o:	infotocap.c curses.h
infotocap.o:	infotocap.c
#infocmp.o:	infocmp.c curses.h term.h print.h
infocmp.o:	infocmp.c print.h

tic: $(TICOBJS)
	@$(ECHO)
	@$(ECHO) Building the tic compiler
	@$(ECHO)
	$(CC) $(CFLAGS) $(DEFLIST) $(LDFLAGS) -o tic $(TICOBJS) $(LDLIBS) $(SHLIBS)
	@$(ECHO)
	@$(ECHO) the tic compiler has been built
	@$(ECHO)

linttic: $(TICSRC)
	$(LINT) $(CPPDEFS) $(TICSRC)

lintinfocmp: $(ISRC)
	$(LINT) $(CPPDEFS) $(ISRC)

lintuntic: $(USRC)
	$(LINT) $(CPPDEFS) $(USRC)

lintcaptoinfo: $(CSRC)
	$(LINT) $(CPPDEFS) $(CSRC)

show:	libcurses$(MODEL).a show.o
	$(CC) $(CFLAGS) $(DEFLIST) $(LDFLAGS) -o show show.o libcurses$(MODEL).a $(LDLIBS) $(SHLIBS)

pshow:	plibcurses$(MODEL).a show.p
	$(CC) -pg $(CFLAGS) $(DEFLIST) $(LDFLAGS) -o pshow show.p plibcurses$(MODEL).a $(LDLIBS) $(SHLIBS)

dshow:	dlibcurses$(MODEL).a show.d
	$(CC) $(CFLAGS) $(DEFLIST) $(LDFLAGS) -o dshow show.d dlibcurses$(MODEL).a $(LDLIBS) $(SHLIBS)

tshow:	tlibcurses$(MODEL).a show.t
	$(CC) $(CFLAGS) $(DEFLIST) $(LDFLAGS) -o tshow show.t tlibcurses$(MODEL).a $(LDLIBS) $(SHLIBS)

tput.cat: tput.msg
	$(GENCAT) $@ tput.msg

tput.msg: tput.c
	$(FINDMSG) tput.c hpux_rel.c > $@

tput:	lib$(SPECIAL)curses$(MODEL).$(VERSION) tput.cat tput.o tnames.o tinames.o tifnames.o
	$(CC) $(CFLAGS) -I. $(DEFLIST) $(LDFLAGS) -o tput tput.o -lcurses $(LDLIBS) $(SHLIBS)

tput.archived:	libcurses$(MODEL).a tput.o tnames.o tinames.o tifnames.o
	$(CC) $(CFLAGS) $(DEFLIST) $(LDFLAGS) -o tput.archived tput.o libcurses$(MODEL).a $(LDLIBS) $(SHLIBS)

testterminfo:	libcurses$(MODEL).$(VERSION) testterminfo.o
	$(CC) $(CFLAGS) $(DEFLIST) $(LDFLAGS) -o testterminfo testterminfo.o libcurses$(MODEL).$(VERSION) $(LDLIBS) $(SHLIBS)

#chgtinfo:	curses.h chgtinfo.c
chgtinfo:	chgtinfo.c
	$(CC) $(CFLAGS) $(DEFLIST) $(LDFLAGS) -o chgtinfo chgtinfo.c $(LDLIBS) $(SHLIBS)
