📄 makefile
字号:
# Copyright (c) 1984 AT&T# All Rights Reserved# THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T# The copyright notice above does not evidence any# actual or intended publication of such source code.## @(#)makefile 1.1 92/07/30 SMI; from S5R3.1 1.31.1.45### cursor package maker## SourcesSLIB= libcurses.aPSLIB= libcurses_p.aMYBIN= $(DESTDIR)/usr/5binUSRLIB = $(DESTDIR)/usr/5libCTAGS= ctagsBUILT= term.h keycaps curses.h keyname.c termcap.c tiget.c tnames.c tinames.c tifnames.c tifget.cLINT= /usr/5bin/lintLPASS1= /usr/lib/lint/lint1TMP= ./tmpAR= TMPDIR=$(TMP) arRM= rmLN= lnCPP= /lib/cppCPPFLAGS= -DS5EMUL -DNOBLIT -I.COPTS= -OCFLAGS= $(CPPFLAGS) $(COPTS)SUBOBJS=LDFLAGS=LIBS= HEADERS=curses.h unctrl.h curses_inc.h curshdr.h term.h uparm.h## tic source and header files#TICHDRS= compiler.h object.hTICSRC= 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.cTICOBJS= $(TICSRC:.c=.o)CHDRS= print.h otermcap.hBSRC= print.c iexpand.cBOBJ= print.o iexpand.oCSRC= 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)all: date $(SLIB) $(PSLIB) llib-lcurses.ln toolsdate: @echo Started: `date` tools: $(SLIB) tic tput captoinfo infocmp show dumpti chgtinfoCFILES1=_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 _move.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 V2.__sscans.c V2._sprintw.c \ V2.makenew.c V3.box.c V3.initscr.c V3.m_addch.c V3.m_addstr.c \ V3.m_clear.c V3.m_erase.c V3.m_initscr.c V3.m_move.c V3.m_newterm.c \ V3.m_refresh.c V3.newterm.c V3.pechochar.c V3.upd_old_y.c \ V3.vidattr.c V3.vidputs.c V3.waddch.c V3.wattroff.c V3.wattron.c \ V3.wattrset.c V3.wechochar.c V3.winsch.c baudrate.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_ic.c has_il.c idcok.c idlok.c \ immedok.c init_acs.c init_costs.c initscr.c is_linetou.c \ is_wintou.c keyname.c keypad.c killchar.c leaveok.cCFILES2=longname.c makenew.c memSset.c meta.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 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_clear.c slk_label.c \ slk_noutref.c slk_refresh.c slk_restore.c slk_set.c slk_start.c \ slk_touch.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 \ untouchwin.c vidputs.c vidupdate.c vsscanf.c vwprintw.c \ vwscanw.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 \ wmove.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# Regular, optimized objectsOBJS1= $(CFILES1:%.c=obj/%.o)OBJS2= $(CFILES2:%.c=obj/%.o)$(OBJS1): obj ${HEADERS}$(OBJS2): obj ${HEADERS}obj/%.o: %.c $(CC) $(CFLAGS) -c -o $@ $<obj: test -d $@ || mkdir $@$(SLIB): $(OBJS1) $(OBJS2) @echo @echo Building libcurses archive @echo ${AR} rv $(SLIB) $(OBJS1) ${AR} rv $(SLIB) $(OBJS2) ranlib $(SLIB) @echo @echo libcurses has been archived @echo# Profiled, optimized objectsPOBJS1= $(CFILES1:%.c=obj_p/%.o)POBJS2= $(CFILES2:%.c=obj_p/%.o)$(POBJS1): obj_p ${HEADERS}$(POBJS2): obj_p ${HEADERS}obj_p/%.o: %.c $(CC) $(CFLAGS) -c -o $@ -p $<obj_p: test -d $@ || mkdir $@$(PSLIB): $(POBJS1) $(POBJS2) @echo @echo Building libcurses_p archive @echo ${AR} rv $(PSLIB) $(POBJS1) ${AR} rv $(PSLIB) $(POBJS2) ranlib $(PSLIB) @echo @echo libcurses_p has been archived @echosetupterm.o: term.h term.h tnames.c tinames.c tifnames.c: caps maketerm.ed copyright.h @if [ ! -d "$(TMP)" ] ;\ then echo " $(TMP) not found.";\ echo "";\ echo " Creating $(TMP)";\ echo "";\ mkdir $(TMP); \ fi; @echo @echo Building term.h @echo if [ -r term.h ];then mv -f term.h term.h.SAVE;fi if [ -r tnames.c ];then mv -f tnames.c tnames.c.SAVE;fi if [ -r tinames.c ];then mv -f tinames.c tinames.c.SAVE;fi if [ -r tifnames.c ];then mv -f tifnames.c tifnames.c.SAVE;fi ed - < maketerm.ed $(CH) chmod 0664 term.h tnames.c tinames.c tifnames.c if [ -f term.h.SAVE ];then if cmp -s term.h term.h.SAVE;then mv -f term.h.SAVE term.h;else rm -f term.h.SAVE;fi;fi if [ -f tnames.c.SAVE ];then if cmp -s tnames.c tnames.c.SAVE;then mv -f tnames.c.SAVE tnames.c;else rm -f tnames.c.SAVE;fi;fi if [ -f tinames.c.SAVE ];then if cmp -s tinames.c tinames.c.SAVE;then mv -f tinames.c.SAVE tinames.c;else rm -f tinames.c.SAVE;fi;fi if [ -f tifnames.c.SAVE ];then if cmp -s tifnames.c tifnames.c.SAVE;then mv -f tifnames.c.SAVE tifnames.c;else rm -f tifnames.c.SAVE;fi;fi @echo @echo "term.h has been built" @echokeycaps: caps @if [ ! -d "$(TMP)" ] ;\ then echo " $(TMP) not found.";\ echo "";\ echo " Creating $(TMP)";\ echo "";\ mkdir $(TMP); \ fi; @echo @echo Building keycaps @echo grep "KEY_" caps > $(TMP)/keycaps if cmp -s $(TMP)/keycaps keycaps;then :;else cp $(TMP)/keycaps keycaps;fi rm -f $(TMP)/keycaps @echo @echo "keycaps has been built" @echocurses.h: keycaps curses.ed copyright.h @if [ ! -d "$(TMP)" ] ;\ then echo " $(TMP) not found.";\ echo "";\ echo " Creating $(TMP)";\ echo "";\ mkdir $(TMP); \ fi; @echo @echo Building ./curses.h @echo if [ -r curses.h ];then mv -f curses.h curses.h.SAVE;fi ed - < curses.ed $(CH) chmod 0664 curses.h if [ -f curses.h.SAVE ];then if cmp -s curses.h curses.h.SAVE;then mv -f curses.h.SAVE curses.h;else rm -f curses.h.SAVE;fi;fi rm -rf $(TMP)/keycaps @echo @echo "curses.h has been built" @echo keyname.c: keycaps keyname.sh copyright.h @echo @echo Building keyname.c @echo if [ -r keyname.c ];then mv -f keyname.c keyname.c.SAVE;fi sh keyname.sh $(CH) chmod 0664 keyname.c if [ -f keyname.c.SAVE ];then if cmp -s keyname.c keyname.c.SAVE;then mv -f keyname.c.SAVE keyname.c;else rm -f keyname.c.SAVE;fi;fi @echo @echo "keyname.c has been built" @echotermcap.c: termcap.ed caps copyright.h @if [ ! -d "$(TMP)" ] ;\ then echo " $(TMP) not found.";\ echo "";\ echo " Creating $(TMP)";\ echo "";\ mkdir $(TMP); \ fi; @echo @echo Building termcap.c @echo if [ -r termcap.c ];then mv -f termcap.c termcap.c.SAVE;fi ed - < termcap.ed rm -f bool num str $(CH) chmod 0664 termcap.c if [ -f termcap.c.SAVE ];then if cmp -s termcap.c termcap.c.SAVE;then mv -f termcap.c.SAVE termcap.c;else rm -f termcap.c.SAVE;fi;fi @echo @echo "termcap.c has been built" @echotifget.c: tifget.ed caps @if [ ! -d "$(TMP)" ] ;\ then echo " $(TMP) not found.";\ echo "";\ echo " Creating $(TMP)";\ echo "";\ mkdir $(TMP); \ fi; @echo @echo Building tifget.c @echo ed - < tifget.ed $(CH) chmod 0664 tifget.c @echo @echo "tifget.c has been built" @echotiget.c: tiget.ed caps @if [ ! -d "$(TMP)" ] ;\ then echo " $(TMP) not found.";\ echo "";\ echo " Creating $(TMP)";\ echo "";\ mkdir $(TMP); \ fi; @echo @echo Building tiget.c @echo ed - < tiget.ed $(CH) chmod 0664 tiget.c @echo @echo "tiget.c has been built" @echotic_captab.o: tic_captab.c compiler.htic_error.o: tic_error.c compiler.htic_hash.o: tic_hash.c compiler.htic_main.o: tic_main.c compiler.h curses.htic_parse.o: tic_parse.c compiler.h object.htic_read.o: tic_read.c object.htic_scan.o: tic_scan.c compiler.hclean: rm -f $(OBJS1) rm -f $(OBJS2) rm -f $(POBJS1) rm -f $(POBJS2) rm -f $(SLIB) $(PSLIB) $(TICOBJS) $(OTICOBJS) rm -f $(BOBJ) $(COBJ) $(IOBJ) show.o tput.o rm -f tnames.o tinames.o tifnames.o termerr.o rm -rf trace a.out dumpti.c rm -rf $(BUILT) *.SAVE $(TMP) rm -rf captoinfo chgtinfo dumpti infocmp show llib-lcurses.ln tic tput tags: ${CFILES} $(HEADERS) ${CTAGS} ${CFILES} $(HEADERS)lint: -ln llib-lcurses llib.c @echo ${LINT} ${CPPDEFS} > lint.out -${LINT} -hxb ${CPPDEFS} ${CFILES} llib.c >> lint.out @echo ${LINT} ${DCPPDEFS} >> lint.out -${LINT} -hxb ${DCPPDEFS} ${CFILES} llib.c >> lint.out rm -f llib.clpr: -pr `ls ${HEADERS} | sort` | lpr -pr `ls ${CFILES} | sort` | lpr -lpqTPFILES= makefile makefile.bsd makefile.sysv \ ${HEADERS} ${CFILES} \ ${TICHDRS} ${TICSRC} \ ${CHDRS} ${BSRC} ${CSRC} ${ISRC} \ curses.ed \ termcap.ed tiget.ed tifget.ed \ tags llib-lcurses TODO caps getopt.c \ keyname.sh otic.c \ show.c testterminfo.c tput.ctp: tp crm0 `ls ${TPFILES} | uniq`tar: tar crvf curses.tar `ls ${TPFILES} | uniq`cpio: ls ${TPFILES} | uniq | cpio -o > curses.cpiocpio-c: ls ${TPFILES} | uniq | cpio -oc > curses.cpiocpiotape: ls ${TPFILES} | uniq | cpio -oBc > /dev/rmt8llib-lcurses.ln: llib-lcurses $(CPP) -E -C -I. -I/usr/include -Dlint llib-lcurses | ${LPASS1} -L > llib-lcurses.lninstall: all install_h install -m 644 $(SLIB) $(USRLIB) ranlib $(USRLIB)/$(SLIB) install -m 644 $(PSLIB) $(USRLIB) ranlib $(USRLIB)/$(PSLIB) rm -f $(USRLIB)/libtermcap.a $(USRLIB)/libtermlib.a ln $(USRLIB)/libcurses.a $(USRLIB)/libtermcap.a ln $(USRLIB)/libcurses.a $(USRLIB)/libtermlib.a rm -f $(USRLIB)/libtermcap_p.a $(USRLIB)/libtermlib_p.a ln $(USRLIB)/libcurses_p.a $(USRLIB)/libtermcap_p.a ln $(USRLIB)/libcurses_p.a $(USRLIB)/libtermlib_p.a test -d $(USRLIB)/lint || mkdir $(USRLIB)/lint && \ chown bin $(USRLIB)/lint && \ chmod 755 $(USRLIB)/lint install -m 644 llib-lcurses $(USRLIB)/lint install -m 644 llib-lcurses.ln $(USRLIB)/lint install -s tic $(MYBIN) install -s captoinfo $(MYBIN) install -s infocmp $(MYBIN) install -s tput $(MYBIN)# cpset ../termcap $(ROOT)/etc 555 bin bininstall_h: curses.h term.h unctrl.h install -m 444 curses.h $(DESTDIR)/usr/5include install -m 444 term.h $(DESTDIR)/usr/5include install -m 444 unctrl.h $(DESTDIR)/usr/5includecktmp: @echo @echo libcurses.a is built using $(TMP) for work space. @echo Verifying the existence of $(TMP). @echo @if [ -d "$(TMP)" ] ;\ then \ echo " $(TMP) exists";\ echo;\ else \ echo " $(TMP) not found.";\ echo "";\ echo " Creating $(TMP)";\ echo "";\ mkdir $(TMP); \ fi;dumpti: setupterm.c curses.h term.h tnames.o tinames.o tifnames.o termerr.o @echo @echo Building dumpti @echo rm -f dumpti.c ln setupterm.c dumpti.c $(CC) $(CFLAGS) -DDUMPTI dumpti.c tnames.o tinames.o tifnames.o termerr.o -o dumpti ; rm -rf dumpti.c @echo @echo dumpti has been built @echocaptoinfo: $(COBJ) $(SLIB) $(CC) $(COBJ) $(SLIB) -o captoinfoinfocmp: $(IOBJ) $(SLIB) $(CC) $(IOBJ) $(SLIB) -o infocmpcaptoinfo.o: captoinfo.c curses.h otermcap.h print.hotermcap.o: otermcap.c otermcap.hprint.o: print.c curses.h print.hiexpand.o: iexpand.c print.hcexpand.o: cexpand.c print.hinfotocap.o: infotocap.c curses.hinfocmp.o: infocmp.c curses.h term.h print.htestterminfo.o: curses.h term.htput.o: curses.h term.hmemSset.o: curses.hotic.o: curses.hshow.o: curses.htic: ${TICOBJS} @echo @echo Building the tic compiler @echo ${CC} -o tic ${TICOBJS} @echo @echo the tic compiler has been built @echoOTICOBJS= otic.o tnames.o tinames.o tifnames.o unctrl.ootic: ${OTICOBJS} ${CC} -o otic ${OTICOBJS}linttic: ${TICSRC} ${LINT} ${CPPDEFS} ${TICSRC}lintinfocmp: ${ISRC} ${LINT} ${CPPDEFS} ${ISRC}lintcaptoinfo: ${CSRC} ${LINT} ${CPPDEFS} ${CSRC}show: $(SLIB) show.o ${CC} ${LDFLAGS} ${CFLAGS} -o show show.o $(SLIB)tput: $(SLIB) tput.o tnames.o tinames.o tifnames.o ${CC} ${LDFLAGS} ${CFLAGS} -o tput tput.o $(SLIB)testterminfo: $(SLIB) testterminfo.o ${CC} ${LDFLAGS} ${CFLAGS} -o testterminfo testterminfo.o $(SLIB)chgtinfo: curses.h chgtinfo.c ${CC} ${LDFLAGS} ${CFLAGS} -o chgtinfo chgtinfo.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -