📄 makefile
字号:
# Copyright © Ričardas Čepas <rch@richard.eu.org>. Copying policy: Berkeley style# Installation:# make distclean# make config ICONV_DIR=/usr/local# make# make install# ICONV_DIR is your iconv library installation prefix, for example /usr/local/src/libiconv-1.3# Many iconv implementations are broken in some way, for example don't# accept MIME charset names and will _not_ work with this program.# Use libiconv from http://clisp.cons.org/~haible/packages-libiconv.html# or FreeBSD port of the this one:# http://www.dante.net/staff/konstantin/FreeBSD/iconv/# Linux note: don't try older glibc2.1 iconv - it has bugs, lacks UTF-7 decoder,# windows-125x MIME names need to be added by hand - see /usr/lib/gconv/gconv-modules.# Use libiconv mentioned above or upgrade to glibc2.2.Package=2UTFpackage=2utfSHELL = /bin/shCC = cc# install files with this ownership:owner=root# Group is defined by 'make config' (staff wheel bin root).# You can override it at command line:# make ... group=staffinstall_own = -o $(owner) -g $(group)INSTALL_DATA = install -c $(install_own) -m 664INSTALL_MAN = $(INSTALL_DATA)INSTALL_PROGRAM = install -c -s $(install_own) -m 775INSTALL_SCRIPT = install -c $(install_own) -m 775MKDIR = install -d $(install_own) -m 2775# Don't change this line unless you know what you are doingUSE_LIBC=noinclude Makefile.config#.include "Makefile.config"BIN = 2UTFBINalias = fromUTFDEBDIST = ../$(package)_$(VERSION)_$(ARCHITECTURE).changes \ ../$(package)_$(VERSION)_$(ARCHITECTURE).deb \ ../$(package)_$(VERSION).dsc \ ../$(package)_$(VERSION).tar.gzDEBIAN = debian/changelog debian/control.in debian/copyright debian/rules DOCS = TODO copyright changelog BSD_style_licenseEXAMPLES = examples/IBM771.gz examples/IBM772.gz examples/LatArCyrHeb.uni.gz \ examples/Makefile examples/Minicom examples/README \ examples/linux+utf8.ti examples/procmailrc \ examples/set_sticky_palette_for_linux-gr+utf8_terminal# comment this out if you don't want compressed man pages and docs:GZIPDOCS = yesMAN1 = $(BIN).1MAN1alias = $(BINalias).1MAN1alias2 = toUTF.1SRCS = $(BIN).c $(BIN).h utf.c hdr.h plan9.h mimedecode.cOBJS = $(BIN).o mimedecode.oPREFIX = /usr/localprefix = ${PREFIX}var_prefix = /var# remove trailing /#prefix := $(prefix:/=)exec_prefix = $(prefix)localstatedir = $(var_prefix)/libALIASES = $(localstatedir)/$(BIN).aliasesbindir = $(exec_prefix)/bindocsdir = $(prefix)/share/doc/$(Package)examplesdir = $(docsdir)/examples# charmaps_localdatadir must end in /charmaps_localdatadir = /usr/local/share/i18n/charmaps/man1dir = $(prefix)/man/man1# for terminal initialization scriptsbindir = $(exec_prefix)/sbinsysconfdir = $(prefix)/etcterm_init_script = examples/set_sticky_palette_for_linux-gr+utf8_terminal# ~ is not expanded. String must end with \0CONFIG_PATHNAMES = $(sysconfdir)/$(BIN).config\0/usr/local/etc/$(BIN).config\0/usr/etc/$(BIN).config\0/etc/$(BIN).config\0\0DEFS = '-DALIASES="$(ALIASES)"' '-DPATH2="$(charmaps_localdatadir)"' \ '-DCONFIG_PATHNAMES="$(CONFIG_PATHNAMES)"' '-DVERSION="$(VERSION)"' \ $(USE_LIBC_DEF)# flags for your C compilator:OPT = -O2#OPT = -g3 -O0WARN = -W -Wconversions -Wbad-function-castCFLAGS = $(OPT) $(WARN) $(DEFS) -I$(ICONV_DIR)/includeLDFLAGS = -L$(ICONV_DIR)/lib -liconvall: $(BIN) linux+utf8.ticonfig: [ '$(ICONV_DIR)' != '' ] || { echo "Please specify ICONV_DIR !"; exit 1; } test -r '$(ICONV_DIR)/include/iconv.h' || { echo 'File $(ICONV_DIR)/include/iconv.h not found, please check ICONV_DIR !'; exit 1; } echo \# Generated by \`make config\' >Makefile.config echo 'ICONV_DIR=$(ICONV_DIR)' >>Makefile.config set -xe; \ if [ $(USE_LIBC)_ = yes_ ] \ || { [ $(USE_LIBC)_ != no_ ] && [ $(USE_LIBC)x = x ] \ && OS=`uname -s` && [ $${OS%%[Ll][Ii][Nn][Uu][Xx]}x = x ] \ && z=`ldd \`type $(CC) | { read a b c; echo $$c; }\`` \ && [ $${z%%*libc.so.[6789]*}x = x ]; } \ then \ echo USE_LIBC_DEF = \'-DUSE_LIBC=yes\'; \ echo OptionalObjectFiles = ; \ else \ echo \# USE_LIBC_DEF = \'-DUSE_LIBC=yes\'; \ echo OptionalObjectFiles = utf.o; \ fi >>Makefile.config set -xe; \ for group in staff wheel bin root; \ do if install -d -g $$group ./tstdir; \ then \ echo group=$$group >>Makefile.config; \ rmdir ./tstdir; \ break; \ fi; \ done; echo VERSION = `{ pwd -P || pwd; } | \ sed -e 's!.*/$(Package)-!!;s!.*$(package)-!!'` >>Makefile.config ARCHITECTURE="`if test -x /usr/bin/dpkg; \ then dpkg --print-architecture; else uname -m; fi`" \ && if [ "$${ARCHITECTURE%%i?86}"y = y ]; then ARCHITECTURE=i386; fi \ && echo ARCHITECTURE = "$$ARCHITECTURE" >>Makefile.config FreeBSD_port/Makefile: . [ $(VERSION)x != x ] perl -pi -e 's/(Version required:\s+|PORTVERSION\s*=\s*)\S+/$${1}$(VERSION)/g' FreeBSD_port/MakefileFreeBSD_port/newMakefile: [ $(VERSION)x != x ] sed -e 's/$${version}/$(VERSION)/g' FreeBSD_port/Makefile.in >FreeBSD_port/Makefile$(Package)-$(VERSION).lsm lsm: $(Package).lsm.in -rm -f $(package)*.lsm $(Package)*.lsm [ $(VERSION)x != x ] sed -e 's/$${date}/'`LC_ALL=C date +%d%b%y |tr a-z A-Z`'/g; \ s/$${version}/$(VERSION)/g' $? >$(Package)-$(VERSION).lsm touch lsm$(Package)-$(VERSION).spec: $(Package).spec.in -rm -f $(Package)*.spec [ $(VERSION)x != x ] Summary="`sed -n -e 's/^Description:[[:space:]]*//p' \ $(Package).lsm.in`" \ && Copying="`sed -n -e 's/^Copying-policy:[[:space:]]*//p' \ $(Package).lsm.in`" \ && sed -e 's/$${version}/$(VERSION)/g; s/$${summary}/'"$${Summary}"'/g; \ s/$${copying}/'"$${Copying}"/g \ $? >tmp sed -n -e '1,/^%description/p' tmp >$@ sed -n -e '/^Description:/,/^[^[:space:]]/!d; /^[[:space:]]/p' \ $(Package).lsm.in >>$@ sed -n -e '1,/^%description/!p' tmp >>$@ rm -f tmp$(BIN).o: $(BIN).h approx.c Makefile.config$(BIN): $(OBJS) $(OptionalObjectFiles) $(CC) $(CFLAGS) $(CPPFLAGS) $(OBJS) $(OptionalObjectFiles) $(LDFLAGS) -o $@approx.c: approx.c.in0 approx.c.in1 approx.c.in2 approx.c.in3 echo -n 'char approx2ascii[][5] = { ' >$@ sed -e 's/"/\\042/g; s/^\(....\)[[:space:]]*$$/\1 x /; s/^.... [^[:space:]][^[:space:]]*[[:space:]]*$$/& \\0/; s/^.... [^[:space:]][^[:space:]]*[[:space:]][[:space:]]*\([^[:space:]][^[:space:]]*\)/"\1",/' approx.c.in[0-3] >>$@ || { rm $@; false; } echo '};' >>$@clean: -rm -R -f *.o *~ *.bak 1 2 t t2 tt tags tmp tst* \#*\# errors* \ core* ktrace.out linux+utf8.ti \ a.out approx.c ./stdin ./stdout typescript filelist \ debian/control debian/tmp debian/files* debian/substvars* \ $(BIN) $(Package)-*.spec $(Package)-*.lsm lsm#mostly-clean: clean# FreeBSD_port/Makefiledebdist $(DEBDIST): examples $(DEBIAN) $(DOCS) $(MAN1) $(SRCS) [ $(VERSION)x != x ] test -r $$HOME/.pgp/secring.pgp dpkg-buildpackage $(MAKE) config "ICONV_DIR=$(ICONV_DIR)"dist tar: $(DEBIAN) distclean examples $(DOCS) $(MAN1) $(SRCS) $(Package)-$(VERSION).lsm $(Package)-$(VERSION).spec FreeBSD_port/Makefile [ $(VERSION)x != x ] -rm -f -R /tmp/$(Package)-$(VERSION)/ FreeBSD_port/work mkdir /tmp/$(Package)-$(VERSION) tar -cf- ./ | { cd /tmp/$(Package)-$(VERSION) && tar -xpf -; } cd ../ && xPWD="`pwd`" \ && cd /tmp/ && tar -cvzf "$$xPWD"/$(Package)-$(VERSION).tar.gz \ $(Package)-$(VERSION)/ -rm -f -R /tmp/$(Package)-$(VERSION)/ $(MAKE) config "ICONV_DIR=$(ICONV_DIR)"distclean: clean #! -rm -f ../$(package)_$(VERSION)_$(ARCHITECTURE).deb echo make_from_scratch: distclean config myself >Makefile.config disttest: $(DEBDIST) rm -R -f /tmp/$(package)-$(VERSION) cp $(addprefix ../$(package)_$(VERSION).,dsc tar.gz) /tmp/ cd /tmp && tar -xvzf $(package)_$(VERSION).tar.gz make rpm rpm --install --force --nodeps /usr/src/redhat/RPMS/$(ARCHITECTURE)/$(Package)-$(VERSION)-0.$(ARCHITECTURE).rpm rpm -qisv $(Package) rm -R -f /tmp/$(package)-$(VERSION) cd /tmp && dpkg-source -x $(package)_$(VERSION).dsc cd /tmp/$(package)-$(VERSION) && \ dpkg-buildpackage -B dpkg --contents /tmp/$(package)_$(VERSION)_$(ARCHITECTURE).deb -rpm --erase --allmatches $(Package) dpkg --install /tmp/$(package)_$(VERSION)_$(ARCHITECTURE).deb cd /tmp/$(package)-$(VERSION) && rm $(DEBDIST) rm -R -f /tmp/$(package)-$(VERSION) dpkg --purge $(package) cp $(addprefix ../$(package)_$(VERSION).,dsc tar.gz) /tmp/ cd /tmp && tar -xvzf $(package)_$(VERSION).tar.gz cd /tmp/$(package)-$(VERSION) && pmake \ && pmake install test uninstall && make install SHELL=/bin/ash rm -R -f /tmp/$(package)-$(VERSION) $(MAKE) tarExamples: if test -d ../linux-lt-current; then cd examples && make all; fiinstall: all $(DOCS) $(MAN1) $(EXAMPLES) $(term_init_script) test -e $(bindir) || $(MKDIR) $(bindir) $(INSTALL_PROGRAM) $(BIN) $(bindir) cd $(bindir) && ln -f -s $(BIN) $(BINalias) test -e $(docsdir) || $(MKDIR) $(docsdir) $(INSTALL_MAN) $(DOCS) $(docsdir) test -e $(examplesdir) || $(MKDIR) $(examplesdir) $(INSTALL_MAN) $(EXAMPLES) $(examplesdir) test -e $(man1dir) || $(MKDIR) $(man1dir) $(INSTALL_MAN) $(MAN1) $(man1dir) test -e $(sysconfdir) || $(MKDIR) $(sysconfdir) set +o errexit; \ cmp -s $(sysconfdir)/$(BIN).config $(BIN).config; exit_code=$$?; \ if [ _$$exit_code != _0 ]; then \ if [ _$$exit_code = _1 ]; then suffix=.new; fi; \ $(INSTALL_DATA) \ $(BIN).config $(sysconfdir)/$(BIN).config$$suffix; \ fi if [ $(GZIPDOCS) = yes ]; \ then \ gzip --best --force --verbose \ $(docsdir)/changelog $(man1dir)/$(MAN1); \ cd $(man1dir) && ln -f -s $(MAN1).gz $(MAN1alias).gz \ && ln -f -s $(MAN1).gz $(MAN1alias2).gz; \ else \ cd $(man1dir) && ln -f -s $(MAN1) $(MAN1alias) \ && ln -f -s $(MAN1) $(MAN1alias2); \ fi test -e `dirname $(ALIASES)` || $(MKDIR) `dirname $(ALIASES)` # check if this is install in temporary directory: set -xe; \ if prefix=$(prefix) && \ [ $${prefix%%/*}x != x -o $(tmpdir_install)_ = yes_ ]; \ then \ dd bs=11000 count=1 </dev/zero >$(ALIASES); \ chown $(owner).$(group) $(ALIASES); chmod 664 $(ALIASES); \ if [ $${prefix##debian*}y != y ] ; \ then \ if ! tic -V 2>&1 |grep -q tconv; then \ TERMINFO=; tic linux+utf8.ti; \ test -e $(prefix)/share/terminfo/l/ || $(MKDIR) \ $(prefix)/share/terminfo/l/; \ cp /usr/share/terminfo/l/linux+utf8 \ /usr/share/terminfo/l/linux-gr+utf8 \ /usr/share/terminfo/l/linux+k \ $(prefix)/share/terminfo/l/; \ fi; \ fi; \ else \ test -e $(charmaps_localdatadir) \ || $(MKDIR) $(charmaps_localdatadir); \ if ! tic -V 2>&1 |grep -q tconv; \ then tic linux+utf8.ti || echo Can\'t compile terminfo source ; \ fi; \ $(bindir)/$(BIN) --create-aliases || : ; \ fi; \ if [ $${prefix%%debian*}y != y ]; \ then \ test -e $(sbindir) || $(MKDIR) $(sbindir); \ $(INSTALL_SCRIPT) $(term_init_script) $(sbindir); \ fi # you can specify directory for tic, but that doesn't work :-(linux+utf8.ti: examples/linux+utf8.ti sed -e 's!/usr/sbin!$(sbindir)!' $? >$@myself: $(MAKE) allport: sed -n -e 's/^Description:[[:space:]]*//p' $(Package).lsm.in \ > FreeBSD_port/pkg/COMMENT { sed -n -e '/^Description:/,/^[^[:space:]]/!d; /^[[:space:]]/p' \ $(Package).lsm.in |grep -v 'console font'; echo; \ } \ > FreeBSD_port/pkg/DESCR { sed -n -e 's/^Primary-site://p' \ $(Package).lsm.in |grep -v 'console font'; echo; \ echo '- Richard Cepas <rch@WriteMe.Com>'; } \ >> FreeBSD_port/pkg/DESCR cd FreeBSD_port/ # && make makesum cd /tmp/ && rm -rf $(Package) cd FreeBSD_port/work/$(Package)-$(VERSION) \ && make group=wheel prefix=/tmp/$(Package) \ examplesdir=/tmp/$(Package)/share/examples/$(Package) install { find /tmp/$(Package) -type f -or -type l \ |sed -e 's!^'/tmp/$(Package)/'!!'; \ echo @dirrm share/examples/$(Package); \ echo @dirrm share/doc/$(Package); \ } > FreeBSD_port/pkg/PLISTrealclean: distclean -rm -f $(DEBDIST)rpm: tar $(Package)-$(VERSION).spec cp ../$(Package)-$(VERSION).tar.gz /usr/src/redhat/SOURCES rpm -v -ba $(Package)-$(VERSION).specrpmi: rpm -vv -bi --short-circuit $(Package)-$(VERSION).specrpmsign: test -r $$HOME/.pgp/secring.pgp rpm -vv --resign \ /usr/src/redhat/SRPMS/$(Package)-$(VERSION)-*.src.rpm \ /usr/src/redhat/RPMS/$(ARCHITECTURE)/$(Package)-$(VERSION)-*.$(ARCHITECTURE).rpmrpmdist: rpm rpmsigntags: $(SRCS) ctags *.[ch]test check: $(bindir)/$(BINalias) --help $(bindir)/$(BIN) --show-charmap --verbose 88591 @echo -n "Press <enter> ... "; read auninstall: -rm -f $(ALIASES) $(bindir)/$(BIN) $(bindir)/$(BINalias) cd $(man1dir) \ && for f in $(MAN1) $(MAN1alias) $(MAN1alias2); \ do rm -f $$f $$f.gz; done cd $(docsdir) \ && for f in $(DOCS); do rm -f $$f $$f.gz; done cd $(examplesdir) \ && for f in $(EXAMPLES); \ do rm -f $${f##*/} $${f##*/}.gz; done -rmdir $(examplesdir) -rmdir $(docsdir)upload: upload_main #dist debdist ../$(Package)-$(VERSION).tar.gz $(Package)-$(VERSION).lsm [ $(VERSION)x != x ] [ "`rpm --checksig \ /usr/src/redhat/SRPMS/$(Package)-$(VERSION)-*.src.rpm \ /usr/src/redhat/RPMS/$(ARCHITECTURE)/$(Package)-$(VERSION)-*.$(ARCHITECTURE).rpm \ | grep -c 'pgp md5 OK$$'`" = 2 ] set -x; xPWD=`pwd` && echo -e open -r -d 10 incoming.redhat.com\\n \ cd /libc5 \\n \ mput /usr/src/redhat/SRPMS/$(Package)-$(VERSION)-*.src.rpm \ /usr/src/redhat/RPMS/$(ARCHITECTURE)/$(Package)-$(VERSION)-*.rpm\\n \ dir $(Package)-$(VERSION)-0.src.rpm $(Package)-$(VERSION)-0.i386.rpm\\n \ redir \>$$xPWD/../$(Package)-$(VERSION).ftp.redhat.com\\n \ | ncftp dupload --to erlangen ../$(package)_$(VERSION)_$(ARCHITECTURE).changes echo -ne \\a sleep 1s echo -ne \\aUPHOST=metalab.unc.eduupload_main: [ $(VERSION)x != x ] set -x; xPWD=`pwd` && echo -e open -r -d 10 $(UPHOST) \\n \ cd /incoming/Linux \\n \ lcd $$xPWD/.. \\n \ mput $(Package)-$(VERSION).tar.gz \\n \ lcd $$xPWD \\n \ mput $(Package)-$(VERSION).lsm \\n \ dir $(Package)* \\n \ redir $(Package)* \>$(Package)-$(VERSION).$(UPHOST) \\n \ | ncftp echo -ne \\a sleep 1s echo -ne \\a# vi: set noexpandtab:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -