📄 imake.rules
字号:
#ifndef ComplexCplusplusProgramTarget_2#define ComplexCplusplusProgramTarget_2(program,locallib,syslib) @@\CplusplusProgramTargetHelper(program,SRCS2,OBJS2,DEPLIBS2,locallib,syslib)#endif /* ComplexCplusplusProgramTarget_2 *//* * ComplexProgramTarget_3 - generate rules for compiling and linking the * program specified by $(OBJS3) and $(SRCS3) and installing the program and * man page. It should be used to build the third program in Imakefiles * describing more than one program. */#ifndef ComplexProgramTarget_3#define ComplexProgramTarget_3(program,locallib,syslib) @@\ProgramTargetHelper(program,SRCS3,OBJS3,DEPLIBS3,locallib,syslib)#endif /* ComplexProgramTarget_3 */#ifndef ComplexCplusplusProgramTarget_3#define ComplexCplusplusProgramTarget_3(program,locallib,syslib) @@\CplusplusProgramTargetHelper(program,SRCS3,OBJS3,DEPLIBS3,locallib,syslib)#endif /* ComplexCplusplusProgramTarget_3 *//* * ComplexProgramTarget_4 - generate rules for compiling and linking the * program specified by $(OBJS4) and $(SRCS4) and installing the program and * man page. It should be used to build the third program in Imakefiles * describing more than one program. */#ifndef ComplexProgramTarget_4#define ComplexProgramTarget_4(program,locallib,syslib) @@\ProgramTargetHelper(program,SRCS4,OBJS4,DEPLIBS4,locallib,syslib)#endif /* ComplexProgramTarget_4 */#ifndef ComplexCplusplusProgramTarget_4#define ComplexCplusplusProgramTarget_4(program,locallib,syslib) @@\CplusplusProgramTargetHelper(program,SRCS4,OBJS4,DEPLIBS4,locallib,syslib)#endif /* ComplexCplusplusProgramTarget_4 *//* * ComplexProgramTarget_5 - generate rules for compiling and linking the * program specified by $(OBJS5) and $(SRCS5) and installing the program and * man page. It should be used to build the third program in Imakefiles * describing more than one program. */#ifndef ComplexProgramTarget_5#define ComplexProgramTarget_5(program,locallib,syslib) @@\ProgramTargetHelper(program,SRCS5,OBJS5,DEPLIBS5,locallib,syslib)#endif /* ComplexProgramTarget_5 */#ifndef ComplexCplusplusProgramTarget_5#define ComplexCplusplusProgramTarget_5(program,locallib,syslib) @@\CplusplusProgramTargetHelper(program,SRCS5,OBJS5,DEPLIBS5,locallib,syslib)#endif /* ComplexCplusplusProgramTarget_5 *//* * ComplexProgramTarget_6 - generate rules for compiling and linking the * program specified by $(OBJS6) and $(SRCS6) and installing the program and * man page. It should be used to build the third program in Imakefiles * describing more than one program. */#ifndef ComplexProgramTarget_6#define ComplexProgramTarget_6(program,locallib,syslib) @@\ProgramTargetHelper(program,SRCS6,OBJS6,DEPLIBS6,locallib,syslib)#endif /* ComplexProgramTarget_6 */#ifndef ComplexCplusplusProgramTarget_6#define ComplexCplusplusProgramTarget_6(program,locallib,syslib) @@\CplusplusProgramTargetHelper(program,SRCS6,OBJS6,DEPLIBS6,locallib,syslib)#endif /* ComplexCplusplusProgramTarget_6 *//* * ComplexProgramTarget_7 - generate rules for compiling and linking the * program specified by $(OBJS7) and $(SRCS7) and installing the program and * man page. It should be used to build the third program in Imakefiles * describing more than one program. */#ifndef ComplexProgramTarget_7#define ComplexProgramTarget_7(program,locallib,syslib) @@\ProgramTargetHelper(program,SRCS7,OBJS7,DEPLIBS7,locallib,syslib)#endif /* ComplexProgramTarget_7 */#ifndef ComplexCplusplusProgramTarget_7#define ComplexCplusplusProgramTarget_7(program,locallib,syslib) @@\CplusplusProgramTargetHelper(program,SRCS7,OBJS7,DEPLIBS7,locallib,syslib)#endif /* ComplexCplusplusProgramTarget_7 *//* * ComplexProgramTarget_8 - generate rules for compiling and linking the * program specified by $(OBJS8) and $(SRCS8) and installing the program and * man page. It should be used to build the third program in Imakefiles * describing more than one program. */#ifndef ComplexProgramTarget_8#define ComplexProgramTarget_8(program,locallib,syslib) @@\ProgramTargetHelper(program,SRCS8,OBJS8,DEPLIBS8,locallib,syslib)#endif /* ComplexProgramTarget_8 */#ifndef ComplexCplusplusProgramTarget_8#define ComplexCplusplusProgramTarget_8(program,locallib,syslib) @@\CplusplusProgramTargetHelper(program,SRCS8,OBJS8,DEPLIBS8,locallib,syslib)#endif /* ComplexCplusplusProgramTarget_8 *//* * ComplexProgramTarget_9 - generate rules for compiling and linking the * program specified by $(OBJS9) and $(SRCS9) and installing the program and * man page. It should be used to build the third program in Imakefiles * describing more than one program. */#ifndef ComplexProgramTarget_9#define ComplexProgramTarget_9(program,locallib,syslib) @@\ProgramTargetHelper(program,SRCS9,OBJS9,DEPLIBS9,locallib,syslib)#endif /* ComplexProgramTarget_9 */#ifndef ComplexCplusplusProgramTarget_9#define ComplexCplusplusProgramTarget_9(program,locallib,syslib) @@\CplusplusProgramTargetHelper(program,SRCS9,OBJS9,DEPLIBS9,locallib,syslib)#endif /* ComplexCplusplusProgramTarget_9 *//* * ComplexProgramTarget_10 - generate rules for compiling and linking the * program specified by $(OBJS10) and $(SRCS10) and installing the program and * man page. It should be used to build the third program in Imakefiles * describing more than one program. */#ifndef ComplexProgramTarget_10#define ComplexProgramTarget_10(program,locallib,syslib) @@\ProgramTargetHelper(program,SRCS10,OBJS10,DEPLIBS10,locallib,syslib)#endif /* ComplexProgramTarget_10 */#ifndef ComplexCplusplusProgramTarget_10#define ComplexCplusplusProgramTarget_10(program,locallib,syslib) @@\CplusplusProgramTargetHelper(program,SRCS10,OBJS10,DEPLIBS10,locallib,syslib)#endif /* ComplexCplusplusProgramTarget_10 */#ifndef MoveToBakFile#define MoveToBakFile(file) -@if [ -f file ]; then set -x; \ @@\ $(MV) file file.bak; else exit 0; fi#endif /* MoveToBakFile */#ifndef RMoveToBakFile#define RMoveToBakFile(file) -@if [ -f file ]; then set -x; \ @@\ RemoveFile(file.bak); $(MV) file file.bak; \ @@\ else exit 0; fi#endif /* RMoveToBakFile *//* * ServerTargetWithFlags - generate rules to compile, link, and relink a server */#ifndef ServerTargetWithFlags#define ServerTargetWithFlags(server,subdirs,objects,libs,syslibs,flags) @@\AllTarget(ProgramTargetName(server)) @@\ProgramTargetName(server): subdirs objects libs @@\ MoveToBakFile($@) @@\ LinkRule($@,$(LDOPTIONS),objects,libs $(LDLIBS) syslibs) @@\ @@\Concat(load,server): @@\ MoveToBakFile(ProgramTargetName(server)) @@\ LinkRule(ProgramTargetName(server),$(LDOPTIONS),objects,libs $(LDLIBS) syslibs) @@\ @@\loadX:: Concat(load,server) @@\ @@\SentinelProgramTarget(server,subdirs objects libs,objects libs $(LDLIBS) syslibs) @@\SentinelLinkTarget(Concat(load,server),server,objects libs $(LDLIBS) syslibs) @@\PurifyProgramTarget(server,subdirs objects libs,objects libs $(LDLIBS) syslibs) @@\PurifyLinkTarget(Concat(load,server),server,objects libs $(LDLIBS) syslibs) @@\ProofProgramTarget(server,subdirs objects libs,objects libs $(LDLIBS) syslibs) @@\ProofLinkTarget(Concat(load,server),server,objects libs $(LDLIBS) syslibs) @@\ @@\InstallProgramWithFlags(server,$(BINDIR),flags) @@\ @@\clean:: @@\ RemoveFile(ProgramTargetName(server))#endif /* ServerTargetWithFlags *//* * ServerTarget - rules to compile, link, and relink a normal server */#ifndef ServerTarget#define ServerTarget(server,subdirs,objects,libs,syslibs) @@\ServerTargetWithFlags(server,subdirs,objects,libs,syslibs,$(_NOOP_))#endif /* ServerTarget */#if DoRanlibCmd#define RanLibrary(args) $(RANLIB) args#else#define RanLibrary(args) $(_NULLCMD_)#endif#ifndef LibraryTargetName#define LibraryTargetName(libname)Concat(lib,libname.a)#endif#ifndef LibraryTargetNameSuffix#define LibraryTargetNameSuffix(libname,suffix)Concat3(lib,libname,suffix.a)#endif#ifndef InstallNamedTarget#define InstallNamedTarget(step,srcname,flags,dest,dstname) @@\step:: srcname @@\ MakeDir($(DESTDIR)dest) @@\ $(INSTALL) $(INSTALLFLAGS) flags srcname $(DESTDIR)dest/dstname#endif /* InstallNamedTarget *//* * InstallNamedTargetNoClobber - Like InstallNamedTarget, but doesn't * do the install if an installed version already exists. Useful * for files that might have local customizations that you don't * want to clobber. Config files are good candidates for this. */#ifndef InstallNamedTargetNoClobber#define InstallNamedTargetNoClobber(step,srcname,flags,dest,dstname) @@\step:: srcname @@\ MakeDir($(DESTDIR)dest) @@\ @if [ -f $(DESTDIR)dest/dstname ]; then \ @@\ echo "Not overwriting existing" $(DESTDIR)dest/dstname; \ @@\ else set -x; \ @@\ $(INSTALL) $(INSTALLFLAGS) flags srcname $(DESTDIR)dest/dstname; fi#endif /* InstallNamedTargetNoClobber */#ifndef InstallTarget#define InstallTarget(step,file,flags,dest) @@\InstallNamedTarget(step,file,flags,dest,file)#endif /* InstallTarget *//* * InstallLibrary - generate rules to install the indicated library. */#ifndef InstallLibrary#define InstallLibrary(libname,dest) @@\install:: LibraryTargetName(libname) @@\ MakeDir($(DESTDIR)dest) @@\ $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) LibraryTargetName(libname) $(DESTDIR)dest @@\ RanLibrary($(RANLIBINSTFLAGS) $(DESTDIR)dest/LibraryTargetName(libname))#endif /* InstallLibrary *//* * InstallLinkKitLibrary - rule to install Link Kit library. * (only used for XFree86). This is a no-op * rule so that Imakefiles on non-XFree86 systems * continue to build Makefiles correctly. */#ifndef InstallLinkKitLibrary#define InstallLinkKitLibrary(lib,dir)#endif/* * InstallLinkKitNamedLibrary - rule to install Link Kit library. * (only used for XFree86). This is a no-op * rule so that Imakefiles on non-XFree86 systems * continue to build Makefiles correctly. */#ifndef InstallLinkKitNamedLibrary#define InstallLinkKitNamedLibrary(lib,dlib,dir)#endif/* * MergeIntoInstalledLibrary - generate rules to merge one library into another */#ifndef MergeIntoInstalledLibrary#define MergeIntoInstalledLibrary(tolib,fromlib) @@\install:: fromlib @@\ $(SCRIPTSRC)/mergelib $(DESTDIR)tolib fromlib#endif /* MergeIntoInstalledLibrary *//* * InstallLibraryAlias - generate rules to create a link from one library name * to another for the purposes of aliasing. */#ifndef InstallLibraryAlias#define InstallLibraryAlias(libname,alias,dest) @@\install:: @@\ -(cd $(DESTDIR)dest && ( \ @@\ RemoveFile(LibraryTargetName(alias)); \ @@\ $(LN) LibraryTargetName(libname) LibraryTargetName(alias)))#endif /* InstallLibraryAlias *//* * InstallLintLibrary - generate rules to install the indicated lint library. */#ifndef InstallLintLibrary#define InstallLintLibrary(libname,dest) @@\InstallTarget(install.ln,Concat(llib-l,libname.ln),$(INSTLIBFLAGS),dest)#endif /* InstallLintLibrary *//* * InstallManPageLong - generate rules to install the indicated manual page, * giving it an alternate name. This is used for installing man pages whose * base name without the .man suffix would normally be longer than 8 characters * (the limit for using source code control systems on files systems with * short file names). */#ifndef InstallManPageLong#define InstallManPageLong(file,destdir,dest) @@\InstallNamedTarget(install.man,file.man,$(INSTMANFLAGS),destdir,dest.$(MANSUFFIX))#endif /* InstallManPageLong *//* * InstallManPage - generate rules to install the indicated manual page. */#ifndef InstallManPage#define InstallManPage(file,destdir) @@\InstallManPageLong(file,destdir,file)#endif /* InstallManPage *//* * InstallManPageAliases - generate rules to install manual page aliases. */#ifndef InstallManPageAliases#define InstallManPageAliases(file,destdir,aliases) @@\install.man:: @@\ @(TMP=/tmp/tmp.$$$$; \ @@\ RemoveFile($${TMP}); \ @@\ echo .so `basename destdir`/file.$(MANSUFFIX) > $${TMP}; \ @@\ for i in aliases; do (set -x; \ @@\ $(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) $${TMP} $(DESTDIR)destdir/$$i.$(MANSUFFIX)); \ @@\ done; \ @@\ RemoveFile($${TMP}))#endif /* InstallManPageAliases *//* * InstallGenManPageLong - More general rules for installing manual pages -- * doesn't assume MANSUFFIX. */#ifndef InstallGenManPageLong#define InstallGenManPageLong(file,destdir,dest,suffix) @@\install.man:: file.man @@\ MakeDir($(DESTDIR)destdir) @@\ $(INSTALL) -c $(INSTMANFLAGS) file.man $(DESTDIR)destdir/dest.suffix#endif /* InstallGenManPageLong *//* * InstallGenManPage - general equivalent of InstallManPage */#ifndef InstallGenManPage#define InstallGenManPage(file,destdir,suffix) @@\InstallGenManPageLong(file,destdir,file,suffix)#endif /* InstallGenManPage *//* * InstallGenManPageAliases - general equivalent of InstallManPageAliases */#ifndef InstallGenManPageAliases#define InstallGenManPageAliases(file,destdir,suffix,aliases) @@\install.man:: @@\ @(TMP=/tmp/tmp.$$$$; \ @@\ RemoveFile($${TMP}); \ @@\ echo .so `basename destdir`/file.suffix > $${TMP}; \ @@\ for i in aliases; do (set -x; \ @@\ $(INSTALL) $(INSTALLFLAGS) $(INSTMANFLAGS) $${TMP} $(DESTDIR)destdir/$$i.suffix); \ @@\ done; \ @@\ RemoveFile($${TMP}))#endif /* InstallGenManPageAliases *//* * ManKeywordsTarget - generate the database used by "man -k". * This rule updates the index in the directory "manpath", which * indexes all the manual pages in the section subdirectories under * it. An update command is defined only on systems that have a * per MANPATH element index. If the OS supports only one system-wide * database, we don't update it, because then we can't do cross * installations or use a non-empty DESTDIR for testing. */#ifndef ManKeywordsTarget#define ManKeywordsTarget(manpath) man_keywords::#endif/* * InstallNamedNonExec - generate rules to install a data file */#ifndef InstallNamedNonExec#define InstallNamedNonExec(srcname,dstname,dest) @@\InstallNamedTarget(install,srcname,$(INSTDATFLAGS),dest,dstname)#endif /* InstallNamedNonExec *//* * InstallLinkKitNamedNonExec - rule for installing server Link Kit files. * (only used for XFree86). This is a no-op * rule so that Imakefiles on non-XFree86 systems * continue to build Makefiles correctly. */#ifndef InstallLinkKitNamedNonExec#define InstallLinkKitNamedNonExec(srcname,dstname,dest)#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -