📄 imake.tmpl
字号:
#endif#ifndef LatexCmd#define LatexCmd latex#endif#if HasSentinel#ifndef SentinelCmd#define SentinelCmd sentinel#endif#ifndef SentinelOptions#define SentinelOptions /**/#endif#endif#if HasPurify#ifndef PurifyCmd#define PurifyCmd purify#endif#ifndef PurifyOptions#define PurifyOptions /**/#endif#endif#if HasTestCenter#ifndef ProofCmd#define ProofCmd proof#endif#ifndef ProofOptions#define ProofOptions /**/#endif#endif#ifndef PathSeparator#define PathSeparator /#endif#ifndef Osuf#define Osuf o#endif#ifndef CCsuf#define CCsuf cc#endif#ifndef SHsuf#define SHsuf sh#endif#ifndef ManSuffix#define ManSuffix n /* use just one tab or cpp will die */#endif#ifndef LibManSuffix#define LibManSuffix 3 /* use just one tab or cpp will die */#endif#ifndef FileManSuffix#if SystemV || SystemV4 || defined(OSF1Architecture)#define FileManSuffix 4 /* use just one tab or cpp will die */#else#define FileManSuffix 5 /* use just one tab or cpp will die */#endif#endif#ifndef ExpandManNames#if SystemV#define ExpandManNames NO#else#define ExpandManNames YES#endif#endif#ifndef TOPDIR#define TOPDIR .#endif#ifndef CURDIR#define CURDIR .#endif#ifndef SiteIConfigFiles#define SiteIConfigFiles /**/#endif#ifndef OtherIConfigFiles#define OtherIConfigFiles /**/#endif#ifndef ExtraFilesToClean#define ExtraFilesToClean /**/#endif#ifndef FilesToClean#define FilesToClean *.CKP *.ln *.BAK *.bak *.Osuf core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut #endif PATHSEP = PathSeparator SHELL = BourneShell TOP = TOPDIR CURRENT_DIR = CURDIR IMAKE = ImakeCmd DEPEND = DependCmd MKDIRHIER = MkdirHierCmd EXPORTLISTGEN = ExportListCmd CONFIGSRC = ConfigSrc IMAKESRC = $(CONFIGSRC)/imake DEPENDSRC = DependDir INCROOT = IncRoot /* base of where to put header files */ USRLIBDIR = UsrLibDir /* nonshared libraries */ VARLIBDIR = VarLibDir /* xdm runtime files */ SHLIBDIR = ShLibDir /* shared libraries */ LINTLIBDIR = LintlibDir /* lint libraries */ MANPATH = ManPath /* top of manual page tree */ MANSOURCEPATH = ManSourcePath /* prefix for man page sources */ MANDIR = ManDir /* man pages for commands */ LIBMANDIR = LibmanDir /* man pages for library routines */ FILEMANDIR = FileManDir /* man pages for config files */ AR = ArCmd BOOTSTRAPCFLAGS = BootstrapCFlags /* set if cpp does not have uniq sym */ CC = CcCmd AS = AsCmd#if HasFortran FC = FortranCmd FDEBUGFLAGS = FortranDebugFlags FCFLAGS = FortranFlags $(FDEBUGFLAGS)#endif#if HasCplusplus.SUFFIXES: .CCsuf CXX = CplusplusCmd CXXFILT = CplusplusFilt CXXLIB = CplusplusLibC CXXDEBUGFLAGS = DefaultCplusplusDebugFlagsCXXDEPENDINCLUDES = CplusplusDependIncludes CXXEXTRA_DEFINES = CplusplusExtraDefinesCXXEXTRA_INCLUDES = CplusplusExtraIncludes CXXSTD_DEFINES = CplusplusStandardDefines $(CXXPROJECT_DEFINES) CXXOPTIONS = CplusplusOptions CXXINCLUDES = $(INCLUDES) $(TOP_INCLUDES) $(CXXEXTRA_INCLUDES) CXXDEFINES = $(CXXINCLUDES) $(CXXSTD_DEFINES) $(THREADS_CXXDEFINES) $(CXXEXTRA_DEFINES) $(DEFINES) CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES)#endif COMPRESS = CompressCmd GZIPCMD = GzipCmd CPP = CppCmd $(STD_CPP_DEFINES) /* simple filters */ PREPROCESSCMD = PreProcessCmd $(STD_CPP_DEFINES) /* prefered; mdep */ INSTALL = InstallCmd INSTALLFLAGS = InstallFlags LD = LdCmd LEX = LexCmd LEXLIB = LexLib YACC = YaccCmd CCYACC = CplusplusYaccCmd LINT = LintCmd LINTLIBFLAG = LintLibFlag LINTOPTS = LintOpts LN = LnCmd MAKE = MakeCmd MV = MvCmd CP = CpCmd#if DoRanlibCmd RANLIB = RanlibCmd RANLIBINSTFLAGS = RanlibInstFlags#endif RM = RmCmd MANSUFFIX = ManSuffix /* suffix for command man pages */ LIBMANSUFFIX = LibManSuffix /* suffix for library man pages */ FILEMANSUFFIX = FileManSuffix /* suffix for config file man pages */ TROFF = TroffCmd NROFF = NroffCmd MSMACROS = MsMacros MANMACROS = ManMacros TBL = TblCmd EQN = EqnCmd NEQN = NeqnCmd COL = ColCmd#if HasLatex DVIPS = DvipsCmd LATEX = LatexCmd#endif#if HasSentinel SENTINEL = SentinelCmd SENTINELOPTIONS = SentinelOptions#endif#if HasPurify PURIFY = PurifyCmd PURIFYOPTIONS = PurifyOptions#endif#if HasTestCenter PROOF = ProofCmd PROOFOPTIONS = ProofOptions#endif STD_INCLUDES = StandardIncludes STD_CPP_DEFINES = StandardCppDefines $(PROJECT_DEFINES) STD_DEFINES = StandardDefines $(PROJECT_DEFINES) EXTRA_LOAD_FLAGS = ExtraLoadFlags EXTRA_LDOPTIONS = ExtraLoadOptions EXTRA_LIBRARIES = MallocLibraries ExtraLibraries Krb5Libraries TAGS = TagsCmd#if ConstructMFLAGS MFLAGS = -$(MAKEFLAGS)#endif#if ConstructMAKEFLAGS MAKEFLAGS = $(MFLAGS)#endif PARALLELMFLAGS = ParallelMakeFlags#if HasSharedLibraries SHAREDCODEDEF = SharedCodeDef SHLIBDEF = SharedLibraryDef#ifdef SharedLibraryLoadFlags SHLIBLDFLAGS = SharedLibraryLoadFlags#endif/* * Here we set up flags needed to produce position-independent code * when doing C and C++ compilation. The default if you specify C * PIC flags without also specifying C++ PIC flags is to assume that * the C flags work for both. If your C++ compiler requires different * flags, specify them explicitly in PositionIndependentCplusplusFlags. */#ifdef PositionIndependentCFlags PICFLAGS = PositionIndependentCFlags#endif#ifdef PositionIndependentCplusplusFlags CXXPICFLAGS = PositionIndependentCplusplusFlags#else#ifdef PositionIndependentCFlags CXXPICFLAGS = PositionIndependentCFlags#endif#endif#endif#if !HasVoidSignalReturn SIGNAL_DEFINES = -DSIGNALRETURNSINT#endif/* * The following supports forcing of function prototypes */#if NeedFunctionPrototypes && NeedVarargsPrototypes && NeedConstPrototypes && NeedNestedPrototypes#define _funcprotodef -DFUNCPROTO=15#else#if NeedFunctionPrototypes && NeedVarargsPrototypes && NeedNestedPrototypes#define _funcprotodef -DFUNCPROTO=11#else#if NeedFunctionPrototypes && NeedNestedPrototypes#define _funcprotodef -DFUNCPROTO=9#else#if NeedFunctionPrototypes && NeedVarargsPrototypes && NeedConstPrototypes#define _funcprotodef -DFUNCPROTO=7#else#if NeedFunctionPrototypes && NeedConstPrototypes#define _funcprotodef -DFUNCPROTO=5#else#if NeedFunctionPrototypes && NeedVarargsPrototypes#define _funcprotodef -DFUNCPROTO=3#else#if NeedFunctionPrototypes#define _funcprotodef -DFUNCPROTO#else#define _funcprotodef /**/#endif#endif#endif#endif#endif#endif#endif#if NeedWidePrototypes#define _wideprotodef /**/#else#define _wideprotodef -DNARROWPROTO#endif PROTO_DEFINES = _funcprotodef _wideprotodef #undef _funcprotodef#undef _wideprotodef#if StripInstalledPrograms INSTPGMFLAGS = InstPgmFlags /* install flags for stripping */#else INSTPGMFLAGS = #endif INSTBINFLAGS = InstBinFlags /* install flags for programs */ INSTUIDFLAGS = InstUidFlags /* install flags for setuid programs */ INSTLIBFLAGS = InstLibFlags /* install flags for libraries */ INSTINCFLAGS = InstIncFlags /* install flags for headers */ INSTMANFLAGS = InstManFlags /* install flags for man pages */ INSTDATFLAGS = InstDatFlags /* install flags for data files */ INSTKMEMFLAGS = InstKmemFlags /* install flags for /dev/kmem progs */#ifdef ProjectRoot PROJECTROOT = ProjectRoot#endif#ifdef UseInstalled# if AlternateIncRoot# define TopInclude -I$(INCROOT)# else# define TopInclude /**/# endif#else# define TopInclude -I$(TOP)#endif CDEBUGFLAGS = DefaultCDebugFlags CCOPTIONS = DefaultCCOptions /* to distinguish from param flags *//* * STD_INCLUDES contains system-specific includes * TOP_INCLUDES specifies how to get to /usr/include or its build substitute * EXTRA_INCLUDES contains project-specific includes set in project incfiles * INCLUDES contains client-specific includes set in Imakefile * LOCAL_LDFLAGS contains client-specific ld flags flags set in Imakefile */ ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES) ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(DEFINES) CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES) LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES) LDPRELIB = LdPreLib LDPOSTLIB = LdPostLib LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS) LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)#if HasBrokenCCForLink CCLINK = LdCmd#else#if AlternateUsrLibDir && HasLdRunPath CCENVSETUP = LD_RUN_PATH=$(USRLIBDIRPATH) CCLINK = $(CCENVSETUP) $(CC)#else CCLINK = $(CC)#endif#endif#if AlternateUsrLibDir && HasLdRunPath CXXENVSETUP = LD_RUN_PATH=$(USRLIBDIRPATH) CXXLINK = $(CXXENVSETUP) $(CXX)#else CXXLINK = $(CXX)#endif LDSTRIPFLAGS = LdStripFlags LDCOMBINEFLAGS = LdCombineFlags DEPENDFLAGS = DependFlagsXCOMM Not sure this belongs here TKLIBDIR = TkLibDir TKINCDIR = TkIncDir TKLIBNAME = TkLibName TKLIBRARY = TkLibrary TCLLIBDIR = TclLibDir TCLINCDIR = TclIncDir TCLLIBNAME = TclLibName TCLLIBRARY = TclLibrary MACROFILE = MacroFile RM_CMD = $(RM) IMAKE_DEFINES = /* leave blank, for command line use only */#ifdef UseInstalled IRULESRC = $(CONFIGDIR) /* used in rules file */ IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)#else IRULESRC = $(CONFIGSRC)/cf IMAKE_CMD = $(IMAKE) -I$(IRULESRC) $(IMAKE_DEFINES)#endif#if !HasClearmake /* clearmake records relevant defines and flags in the build script, so it knows when they change and we don't need this coarser-level dependency. We also don't want it, since it prevents sharing if even one config file, say site.def or host.def, changes. */ ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/X11.tmpl \ $(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) \ OtherIConfigFiles SiteIConfigFiles $(EXTRA_ICONFIGFILES)#endif#ifndef TopLevelProject# define TopLevelProject X11#endif#ifndef ProjectRulesFile# define ProjectRulesFile Concat3(<,TopLevelProject,.rules>)#endif#include ProjectRulesFile#ifndef LocalRulesFile/* need this to make ANSI-style preprocessors happy */#define LocalRulesFile <noop.rules>#endif#include LocalRulesFile/* * get project-specific configuration and rules */#ifndef ProjectTmplFile#define ProjectTmplFile Concat3(<,TopLevelProject,.tmpl>)#endif#include ProjectTmplFile#ifndef LocalTmplFile/* need this to make ANSI-style preprocessors happy */#define LocalTmplFile <noop.rules>#endif#include LocalTmplFile#ifdef FixupLibReferencesFixupLibReferences()#endif/* ConfigDir comes from X11.tmpl */ CONFIGDIR = ConfigDir /* build configuration information */#if HasClearmake OSNAME = OSName#endif USRLIBDIRPATH = UsrLibDirPath LDPRELIBS = LdPreLibs LDPOSTLIBS = LdPostLibs TOP_INCLUDES = TopIncludes PROJECT_DEFINES = ProjectDefines#if HasCplusplusCXXPROJECT_DEFINES = CplusplusProjectDefines#endifXCOMM ----------------------------------------------------------------------XCOMM start of Imakefile#include INCLUDE_IMAKEFILEXCOMM ----------------------------------------------------------------------XCOMM common rules for all Makefiles - do not edit.c.i: CPPOnlyCompile($*.c,$(_NOOP_))/* * These need to be here so that rules in Imakefile occur first; the blank * emptyrule is to make sure that an empty Imakefile does not default to make * clean. */emptyrule::CleanTarget()#ifndef IHaveSpecialMakefileTargetMakefileTarget()#endifTagsTarget()#ifdef MakefileAdditionsMakefileAdditions()#endifCenterLoadTarget(debug_src,$(SRCS),NullParameter,$(ALLDEFINES))CenterLoadTarget(debug_obj,$(OBJS),NullParameter,$(ALLDEFINES))ManKeywordsTarget($(MANPATH))#ifdef IHaveSubdirsXCOMM ----------------------------------------------------------------------XCOMM rules for building in SUBDIRS - do not editInstallSubdirs($(SUBDIRS))InstallManSubdirs($(SUBDIRS))InstallLinkKitSubdirs($(SUBDIRS))CleanSubdirs($(SUBDIRS))TagSubdirs($(SUBDIRS))MakefileSubdirs($(SUBDIRS))IncludesSubdirs($(SUBDIRS))#endif/* must be after all install.man rules that install anything */#if MakeManKeywords /* typically only at top level */install.man:: man_keywords#endif#ifndef IHaveSubdirsXCOMM ----------------------------------------------------------------------XCOMM empty rules for directories that do not have SUBDIRS - do not editinstall:: @echo "install in $(CURRENT_DIR) done"install.man:: @echo "install.man in $(CURRENT_DIR) done"install.linkkit:: @echo "install.linkkit in $(CURRENT_DIR) done"Makefiles::includes::depend::#endif /* if subdirectory rules are needed */XCOMM ----------------------------------------------------------------------XCOMM dependencies generated by makedependIncludeMakefile(DependFileName)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -