?? makefile
字號:
# Hope fuly you dont need to edit anyt thing past this point, but if you see# something down here that dosnt work on your system, then fixit (in ya know# how) and send me a note <magister@kfa.cx>. Ive tryed to make it as smart# as i could so we wouldnt need a configure script :).#******** The makefile should be a dependant. That way, when it changes,#******** everything gets recompiled.############################################################################.SUFFIXES : .cpp .c.cpp.o : $(CC) $(OPTIONS) $(INCLUDES) -c $<.c.o : $(CC) $(OPTIONS) $(INCLUDES) -c $<all : $(PROGRAM)$(PROGRAM) : c-client.a compilecount @$(MAKE) -C $(SRCDIR) $(SUBMAKEALL) @if $(TESTBIN) "$(DEBUG)" = "-1" ; then \ if $(TESTBIN) -e /usr/bin/strip ; then \ /usr/bin/strip $(BASEDIR)/$(PROGRAM); \ fi \ fiifeq (Makefile.conf,$(wildcard Makefile.conf)) include Makefile.confendifdepend : $(MAKE) depend -C $(SRCDIR) $(SUBMAKEALL)compilecount : @# a build counter wanted by Deimos, only tempoary @# Mesures all complete and incomplete builds @if $(TESTBIN) ! -e $(COMPCOUNTFILE) ; then \ echo "the compile cound file does not exist or was deleted, makeing a new one."; \ echo "1" > $(COMPCOUNTFILE); \ else \ oldc=`cat $(COMPCOUNTFILE)`; \ let newc=$$oldc+1; \ echo "$$newc" > $(COMPCOUNTFILE); \ echo "Current number of builds: $$newc"; \ finumofbuilds : @# Its easer to refrance vars when wraped in an if @if $(TESTBIN) -e $(COMPCOUNTFILE) ; then \ numofbuilds=`cat $(COMPCOUNTFILE)`; \ echo "Currently at $$numofbuilds builds for $(PROGRAM)"; \ else \ echo "No build history, maby you deleted $(COMPCOUNTFILE) since you last compile"; \ fidist : distclean cd $(BASEDIR) rm -Rf $(DIST) mkdir $(DIST) cp -pr $(FILESTOSAVE) $(DISTDIR) $(MAKE) cvsclean tar -cf $(DIST).tar $(DIST) gzip -9 $(DIST).tar rm -Rf $(DIST)bindist : all cd $(BASEDIR) rm -Rf $(BINDIST) mkdir $(BINDIST) cp -pr $(BINFILESTOSAVE) $(BINDISTDIR) $(MAKE) cvsclean tar -cf $(BINDIST).tar $(BINDIST) gzip -9 $(BINDIST).tar rm -Rf $(BINDIST)snap : distclean cd $(BASEDIR) rm -Rf $(PROGRAM) mkdir $(PROGRAM) cp -dpr $(FILESTOSAVE) $(PROGRAM) $(MAKE) cvsclean tar -cf $(SNAP).tar $(PROGRAM) gzip -9 $(SNAP).tar rm -Rf $(PROGRAM)# this is only for making a distrubution with out the CVS directoryscvsclean : @echo "***** Removing the CVS directorys *****" @if $(TESTBIN) -d $(BASEDIR)/$(PROGRAM) ; then\ cd $(BASEDIR)/$(PROGRAM);\ files=`find`;\ touch temp.dirs;\ for dir in $$files; do\ if $(TESTBIN) -d $$dir ; then\ echo $$dir >> temp.dirs;\ fi;\ done;\ dirs=`cat temp.dirs | grep CVS`;\ rm -f temp.dirs;\ for directory in $$dirs; do\ if $(TESTBIN) -d $(BASEDIR)/$(PROGRAM)/$$directory ; then\ rm -Rf $(BASEDIR)/$(PROGRAM)/$$directory;\ fi;\ done;\ else \ if $(TESTBIN) -d $(BASEDIR)/$(DIST) ; then\ cd $(BASEDIR)/$(DIST);\ files=`find`;\ touch temp.dirs;\ for dir in $$files; do\ if $(TESTBIN) -d $$dir ; then\ echo $$dir >> temp.dirs;\ fi;\ done;\ dirs=`cat temp.dirs | grep CVS`;\ rm -f temp.dirs;\ for directory in $$dirs; do\ if $(TESTBIN) -d $(BASEDIR)/$(DIST)/$$directory ; then\ rm -Rf $(BASEDIR)/$(DIST)/$$directory;\ fi;\ done;\ else\ if $(TESTBIN) -d $(BASEDIR)/$(BINDIST) ; then\ cd $(BASEDIR)/$(BINDIST);\ files=`find`;\ touch temp.dirs;\ for dir in $$files; do\ if $(TESTBIN) -d $$dir ; then\ echo $$dir >> temp.dirs;\ fi;\ done;\ dirs=`cat temp.dirs | grep CVS`;\ rm -f temp.dirs;\ for directory in $$dirs; do\ if $(TESTBIN) -d $(BASEDIR)/$(BINDIST)/$$directory ; then\ rm -Rf $(BASEDIR)/$(BINDIST)/$$directory;\ fi;\ done;\ fi;\ fi;\ filove : @echo "Not war?"distclean : clean imapclean rm -Rf Makefile.inc $(DIST)* $(PROGRAM)* $(PROGRAM)*.tar.* $(PATCHDIR)/*.patched @for dir in $(CLEANDIRS); do \ (cd $$dir ; $(MAKE) distclean); \ doneclean : rm -Rf *.o *~ .*~ core DEADJOE .#* @for dir in $(CLEANDIRS); do \ (cd $$dir ; $(MAKE) clean); \ doneimapclean: cd $(BASEDIR)/imap $(MAKE) -C $(IMAPDIR) cleanc-client.a: c-client-link c-client-patch cd $(BASEDIR)/imap $(MAKE) -C $(IMAPDIR) $(IMAPTARGET)c-client-link: imap-link @if $(TESTBIN) ! -L c-client ; then \ ln -sf $(IMAPDIR)/c-client c-client ; \ fiimap-link: untar-imap @if $(TESTBIN) ! -L $(IMAPDIR) ; then \ ln -sf imap-$(IMAPVER) $(IMAPDIR) ; \ fiuntar-imap: @if $(TESTBIN) -d $(IMAPDIR) ; then \ if $(TESTBIN) ! -L $(IMAPDIR) ; then \ echo "Deleting old IMAP directory as it really should be a link!" ; \ rm -rf $(IMAPDIR) ; \ fi ; \ fi @if $(TESTBIN) ! -d $(IMAPDIR)-$(IMAPVER) ; then \ echo "Since we need to extract the c-client code, we'll do so now..." ; \ gzip -dc $(IMAPFILE) | tar xfv - ; \ fic-client-patch: cd $(IMAPDIR)-$(IMAPVER)/src/c-client @if $(TESTBIN) ! -f $(C-CLIENT-PATCH).patched ; then \ echo "Patching C-Client version $(IMAPVER) source code..." ; \ cat $(C-CLIENT-PATCH) | $(PATCH) ; \ $(MAKE) $(C-CLIENT-PATCH).patched ; \ fi ;$(C-CLIENT-PATCH).patched: date > $(C-CLIENT-PATCH).patchedinstall : @if $(TESTBIN) ! -f $(BASEDIR)/$(PROGRAM) ; then \ echo "*** Warning Proceeding will cause the $(PROGRAM) ***";\ echo "*** To be owned by root, Wate 5 seconds to continue or ***"; \ echo "*** Ctrl-C to exit. ***"; \ sleep 5;\ $(MAKE) all; \ fi (cd $(BASEDIR) ; cp -dpRf $(PROGRAM) $(PROGRAMINSTALLDIR)) @echo "****************************************************" @echo "The exec has been placed in $(PROGRAMINSTALLDIR)" @echo "****************************************************" @echo @if $(TESTBIN) -n "$(DOCINSTALLDIR)" ; then \ rm -Rf $(DOCINSTALLDIR); \ mkdir $(DOCINSTALLDIR); \ cp COPYING README $(DOCINSTALLDIR); \ if $(TESTBIN) -n "$(DOCDIR)" ; then \ cd "$(DOCDIR)"; \ cp -dpR * $(DOCINSTALLDIR); \ fi; \ fi @echo "**********************************************" @echo "Documents have been placed in $(DOCINSTALLDIR)" @echo "**********************************************" @echo @if $(TESTBIN) -n "$(OTHERINSTALLDIR)" ; then \ rm -Rf $(OTHERINSTALLDIR); \ mkdir $(OTHERINSTALLDIR); \ for FILE in $(OTHERINSTALLFILES); do \ cp -dpR $$FILE $(OTHERINSTALLDIR); \ done; \ fi @echo "*****************************************************" @echo "All other files needed to be installed were installed" @echo "to: $(OTHERINSTALLDIR)" @echo "*****************************************************"uninstall-less : checkforroot @if $(TESTBIN) -z "$(OOW_UNINST_NODELAY)"; then \ echo "**** Uninstalling $(PROGRAM), any current or older versions in"; \ echo "**** '$(PROGRAMINSTALLDIR)'. This will remove just the binary"; \ echo "**** If you want the documentation and the extra files uninstalled"; \ echo "**** run 'make uninstall-more'"; \ echo " ** pausing for 5 seconds **"; \ sleep 5; \ fi rm -fv $(PROGRAMINSTALLDIR)/$(PROGRAM)uninstall-more : checkforroot @echo "**** Uninstalling current $(PROGRAM), Doc's, and Extra's (pics and config files)" @echo "**** Make sure you have not modifyed any of the files that were installed" @echo "**** Also make sure up have your settings in $(OTHERINSTALLDIR)" @echo "**** backed up, THEY WILL BE DELETED" @echo "**** If not press Enter, to uninstall. Ctrl-C to quit now." @read junk @echo "*** Locating and Removing $(PROGRAM) ***" @for directory in $(KNOWNPREFIXES); do \ if $(TESTBIN) -d $$directory ; then \ echo "Checking $$directory for installed $(PROGRAM) files"; \ if $(TESTBIN) -f $$directory/bin/$(PROGRAM) ; then \ rm -fv $$directory/bin/$(PROGRAM); \ fi; \ if $(TESTBIN) -d $$directory/doc/$(PROGRAM) ; then \ rm -fvr $$directory/doc/$(PROGRAM); \ fi; \ if $(TESTBIN) -d $$directory/share/$(PROGRAM) ; then \ rm -fvr $$directory/share/$(PROGRAM); \ fi; \ fi; \ doneuninstall : uninstall-less @echo "*========--------uninstallation complet--------========*"utils : @if $(TESTBIN) -n "$(SUBDIRS)"; then \ for dir in '$(SUBDIRS)'; do \ (cd $$dir ; $(MAKE)); \ done \ fifixclockskew : find $(BASEDIR) -exec touch {} \;checkforroot : @if $(TESTBIN) $(USERID) != 0 ; then \ echo "*****************************************************"; \ echo "**** You have to be root to excute this function ****"; \ echo "*****************************************************"; \ exit 1; \ fiallvars : @echo "TESTBIN=$(TESTBIN)" @echo "DEBUG=$(DEBUG)" @echo "prefix=$(prefix)" @echo "PROGRAM=$(PROGRAM)" @echo "MAJOR=$(MAJOR)" @echo "MINOR=$(MINOR)" @echo "BUILD=$(BUILD)" @echo "VERSION=$(VERSION)" @echo "DATE=$(DATE)" @echo "USERID=$(USERID)" @echo "BASEDIR=$(BASEDIR)" @echo "OS=$(OS)" @echo "PROC=$(PROC)" @echo "MACHINE=$(MACHINE)" @echo "LIBC=$(LIBC)" @echo "LIBCVER=$(LIBCVER)" @echo "LINUXLIBC=$(LINUXLIBC)" @echo "SNAP=$(SNAP)" @echo "DIST=$(DIST)" @echo "BINDISTB=$(BINDISTB)" @echo "BINDIST=$(BINDIST)" @echo "SNAPDIR=$(SNAPDIR)" @echo "DISTDIR=$(DISTDIR)" @echo "BINDISTDIR=$(BINDISTDIR)" @echo "SRCDIR=$(SRCDIR)" @echo "INCLUDE=$(INCLUDE)" @echo "DOCDIR=$(DOCDIR)" @echo "SUBDIRS=$(SUBDIRS)" @echo "CLEANDIRS=$(CLEANDIRS)" @echo "ALLDIRS=$(ALLDIRS)" @echo "PROGRAMINSTALLDIR=$(PROGRAMINSTALLDIR)" @echo "DOCINSTALLDIR=$(DOCINSTALLDIR)" @echo "OTHERINSTALLDIR=$(OTHERINSTALLDIR)" @echo "OTHERINSTALLFILES=$(OTHERINSTALLFILES)" @echo "KNOWNPREFIXES=$(KNOWNPREFIXES)" @echo "FILESTOSAVE=$(FILESTOSAVE)" @echo "BINFILESTOSAVE=$(BINFILESTOSAVE)" @echo "CC=$(CC)" @echo "DEFINES=$(DEFINES)" @echo "COPTIONS=$(COPTIONS)" @echo "CFLAGS=$(CFLAGS)" @echo "LIBS=$(LIBS)" @echo "INCLUDES=$(INCLUDES)" @echo "ALLINCLUDES=$(ALLINCLUDES)" @echo "OBJECTS=$(OBJECTS)" @echo "SUBMAKEALL=$(SUBMAKEALL)" @echo "CONFIGURED=$(CONFIGURED)" @echo "OPTLIBS=$(OPTLIBS)" @echo "OPTDEFINES=$(OPTDEFINES)".PHONEY : all compilecount numofbuilds dist snap cvsclean distclean clean install uninstall-less uninstall-more uninstall utils fixclockskew checkforroot config allvars# DO NOT DELETE
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -