]> git.sesse.net Git - rdpsrv/blobdiff - Xserver/config/cf/Library.tmpl
Import X server from vnc-3.3.7.
[rdpsrv] / Xserver / config / cf / Library.tmpl
diff --git a/Xserver/config/cf/Library.tmpl b/Xserver/config/cf/Library.tmpl
new file mode 100644 (file)
index 0000000..ba2445b
--- /dev/null
@@ -0,0 +1,412 @@
+/*
+ * Library imakefile info  - this contains any special redefinitions, etc.
+ * that Imakefiles in the various library subtrees will need.
+ *
+ * Before including this, you must set the following boolean variables:
+ * DoNormalLib, DoSharedLib, DoDebugLib, DoProfileLib
+ *
+ * To get automatic generation of standard rules, also set the variables:
+ * LibName, SoRev, HasSharedData, and optionally HugeLibrary and IncSubdir.
+ *
+ * To suppress installation of the library define LibInstall NO.
+ * To suppress creating (and installing) the library define LibCreate NO.
+ * To suppress installing headers define LibHeaders NO.
+ * Define LargePICTable YES if large (32-bit) PIC tables are needed.
+ */
+
+XCOMM $TOG: Library.tmpl /main/44 1997/04/28 11:47:53 kaleb $
+
+
+
+
+XCOMM $XFree86: xc/config/cf/Library.tmpl,v 3.5.2.1 1997/06/11 12:08:29 dawes Exp $
+
+#ifndef LibraryCplusplusOptions
+# if DoSharedLib && defined(SharedLibraryCplusplusOptions)
+#  define LibraryCplusplusOptions SharedLibraryCplusplusOptions
+# else
+#  define LibraryCplusplusOptions DefaultCplusplusOptions
+# endif
+#endif
+#ifndef LibraryDefines
+# define LibraryDefines StandardDefines
+#endif
+#ifndef LibraryCDebugFlags
+# define LibraryCDebugFlags DefaultCDebugFlags
+#endif
+#ifndef LibraryCplusplusDebugFlags
+# define LibraryCplusplusDebugFlags DefaultCplusplusDebugFlags
+#endif
+#ifndef SeparateSharedCompile
+# define SeparateSharedCompile YES
+#endif
+
+#ifndef CplusplusSource
+# ifndef LibraryCcCmd
+#  if DoSharedLib && defined(SharedLibraryCcCmd)
+#   define LibraryCcCmd SharedLibraryCcCmd
+#  else
+#   define LibraryCcCmd CcCmd
+#  endif
+# endif
+# ifndef LibraryCCOptions
+#  if DoSharedLib && defined(SharedLibraryCCOptions)
+#   define LibraryCCOptions SharedLibraryCCOptions
+#  else
+#   define LibraryCCOptions DefaultCCOptions
+#  endif
+# endif
+
+         CC = LibraryCcCmd
+  CCOPTIONS = LibraryCCOptions
+STD_DEFINES = LibraryDefines $(PROJECT_DEFINES)
+CDEBUGFLAGS = LibraryCDebugFlags
+# if defined(LargePICTable) && LargePICTable && defined(LargePositionIndependentCFlags)
+   PICFLAGS = LargePositionIndependentCFlags
+# endif
+#else
+# ifndef LibraryCplusplusCmd
+#  if DoSharedLib && defined(SharedLibraryCplusplusCmd)
+#   define LibraryCplusplusCmd SharedLibraryCplusplusCmd
+#  else
+#   define LibraryCplusplusCmd CplusplusCmd
+#  endif
+# endif
+# ifndef LibraryCplusplusOptions
+#  if DoSharedLib && defined(SharedLibraryCplusplusOptions)
+#   define LibraryCplusplusOptions SharedLibraryCplusplusOptions
+#  else
+#   define LibraryCplusplusOptions DefaultCplusplusOptions
+#  endif
+# endif
+
+          CXX = LibraryCplusplusCmd
+   CXXOPTIONS = LibraryCplusplusOptions
+  STD_DEFINES = LibraryDefines $(PROJECT_DEFINES)
+CXXDEBUGFLAGS = LibraryCplusplusDebugFlags
+# if defined(LargePICTable) && LargePICTable
+#  ifdef LargePositionIndependentCplusplusFlags
+  CXXPICFLAGS = LargePositionIndependentCplusplusFlags
+#  elif defined(LargePositionIndependentCFlags)
+  CXXPICFLAGS = LargePositionIndependentCFlags
+#  endif
+# endif
+#endif
+
+LIB_MT_DEFINES = LibraryMTDefines
+
+#if defined(IHaveSubdirs) && HasSymLinks
+#define _LibMkdir LibMkdirLinkSubdirs
+#else
+#define _LibMkdir LibMkdir
+#endif
+
+#if DoDebugLib
+# define _DebuggedLibMkdir() _LibMkdir(debugger)
+# define _DebuggedObjCompile(options) DebuggedLibObjCompile(options)
+# define _DebuggedObjCplusplusCompile(options) DebuggedLibObjCplusplusCompile(options)
+# define _DebuggedCleanDir() LibCleanDir(debugger)
+#else
+# define _DebuggedLibMkdir() $(_NULLCMD_)
+# define _DebuggedObjCompile(options) $(_NULLCMD_)
+# define _DebuggedObjCplusplusCompile(options) $(_NULLCMD_)
+# define _DebuggedCleanDir() $(_NULLCMD_)
+#endif
+
+#if DoProfileLib
+# define _ProfiledLibMkdir() _LibMkdir(profiled)
+# define _ProfiledObjCompile(options) ProfiledLibObjCompile(options)
+# define _ProfiledObjCplusplusCompile(options) ProfiledLibObjCplusplusCompile(options)
+# define _ProfiledCleanDir() LibCleanDir(profiled)
+#else
+# define _ProfiledLibMkdir() $(_NULLCMD_)
+# define _ProfiledObjCompile(options) $(_NULLCMD_)
+# define _ProfiledObjCplusplusCompile(options) $(_NULLCMD_)
+# define _ProfiledCleanDir() $(_NULLCMD_)
+#endif
+
+#if !DoNormalLib
+# define _NormalLibMkdir() $(_NULLCMD_)
+# define _NormalObjCompile(options) $(_NULLCMD_)
+# define _NormalObjCplusplusCompile(options) $(_NULLCMD_)
+# define _NormalCleanDir() $(_NULLCMD_)
+#else
+# if DoSharedLib && SeparateSharedCompile
+#  define _NormalLibMkdir() _LibMkdir(unshared)
+#  define _NormalObjCompile(options) UnsharedLibObjCompile(options)
+#  define _NormalObjCplusplusCompile(options) UnsharedLibObjCplusplusCompile(options)
+#  define _NormalCleanDir() LibCleanDir(unshared)
+# else
+#  define _NormalLibMkdir() $(_NULLCMD_)
+#  define _NormalObjCompile(options) NormalLibObjCompile(options)
+#  define _NormalObjCplusplusCompile(options) NormalLibObjCplusplusCompile(options)
+#  define _NormalCleanDir() $(_NULLCMD_)
+# endif
+#endif
+
+#if !DoSharedLib || (DoNormalLib && !SeparateSharedCompile)
+# define _SharedObjCompile(options) $(_NULLCMD_)
+# define _SharedObjCplusplusCompile(options) $(_NULLCMD_)
+#else
+# if SeparateSharedCompile
+#  define _SharedObjCompile(options) NormalSharedLibObjCompile(options)
+#  define _SharedObjCplusplusCompile(options) NormalSharedLibObjCplusplusCompile(options)
+#else
+# define _SharedObjCompile(options) NormalLibObjCompile(options)
+# define _SharedObjCplusplusCompile(options) NormalLibObjCplusplusCompile(options)
+#endif
+#endif
+
+#ifndef CplusplusSource
+# define SRCsuf c
+#else
+# define SRCsuf CCsuf
+# ifdef SunArchitecture
+.SUFFIXES: .CCsuf
+# endif
+#endif
+
+#define _CompileObj(target, options)                                   @@\
+target                                                                 @@\
+       _DebuggedObjCompile(options)                                    @@\
+       _ProfiledObjCompile(options)                                    @@\
+       _NormalObjCompile(options)                                      @@\
+       _SharedObjCompile(options)
+
+#ifdef CplusplusSource
+# define _CompileObjCplusplus(target, options)                         @@\
+target                                                                 @@\
+       _DebuggedObjCplusplusCompile(options)                           @@\
+       _ProfiledObjCplusplusCompile(options)                           @@\
+       _NormalObjCplusplusCompile(options)                             @@\
+       _SharedObjCplusplusCompile(options)
+#else
+# define _CompileObjCplusplus(target, options)
+#endif
+
+#ifndef LibraryObjectRule
+# define LibraryObjectRule()                                           @@\
+all::                                                                  @@\
+       _DebuggedLibMkdir()                                             @@\
+       _ProfiledLibMkdir()                                             @@\
+       _NormalLibMkdir()                                               @@\
+                                                                       @@\
+includes::                                                             @@\
+       _DebuggedLibMkdir()                                             @@\
+       _ProfiledLibMkdir()                                             @@\
+       _NormalLibMkdir()                                               @@\
+                                                                       @@\
+_CompileObj(.c.Osuf:,$(_NOOP_))                                                @@\
+_CompileObjCplusplus(.SRCsuf.Osuf:,$(_NOOP_))                          @@\
+                                                                       @@\
+clean::                                                                        @@\
+       _DebuggedCleanDir()                                             @@\
+       _ProfiledCleanDir()                                             @@\
+       _NormalCleanDir()                                               @@\
+
+#endif /* LibraryObjectRule */
+
+#ifndef SpecialLibObjectRule
+# define SpecialLibObjectRule(objs,depends,options)                    @@\
+_CompileObj(objs: depends,options)
+#endif /* SpecialLibObjectRule */
+
+#ifndef SpecialCLibObjectRule
+# define SpecialCLibObjectRule(basename,depends,options)               @@\
+_CompileObj(basename.Osuf: basename.SRCsuf depends,options)            @@\
+                                                                       @@\
+basename.i: basename.SRCsuf depends                                    @@\
+       CPPOnlyCompile(basename.SRCsuf,options)                         @@\
+                                                                       @@\
+CenterLoadTarget(debug_src,basename.SRCsuf,NullParameter,$(ALLDEFINES) options)
+#endif /* SpecialCLibObjectRule */
+
+#ifndef SpecialCplusplusLibObjectRule
+# define SpecialCplusplusLibObjectRule(basename,depends,options)       @@\
+_CompileObjCplusplus(basename.Osuf: basename.SRCsuf depends,options)   @@\
+                                                                       @@\
+CenterLoadTarget(debug_src,basename.SRCsuf,NullParameter,$(ALLDEFINES) options)
+#endif /* SpecialCplusplusLibObjectRule */
+
+/*
+ * ToolkitMakeStrings generates a string-table, i.e., a C source
+ * file and the matching header(s), e.g., Xt's StringDefs.c, StringDefs.h,
+ * and Shell.h files; or Motif's XmStrDefs.c and XmStrDefs.h files.
+ *
+ * The 'files' argument is the list of files that will be produced by
+ * this rule, e.g., for Xt they would be "Shell.h StringDefs.c StringDefs.h"
+ * and for Motif they would be "XmStrDefs.c XmStrDefs.h".
+ *
+ * The 'source' argument is the string-list file to be parsed, e.g., in
+ * Xt that would be "util/string.list".  For Motif 2.0 it would be
+ * "../../tools/makestr/xmstring.list", and for Motif-CDE1 it would be
+ * "util/xmstring.list".
+ *
+ * The 'options' argument is passed by the library's Imakefile, see the
+ * Xt Imakefile for an example.  Typically this would be nothing, -intelabi,
+ * or -sparcabi; there are other choices, but these are typical.
+ *
+ * The 'depends' argument names additional files the target files
+ * depend on.  It should name the #ctmpl and #htmpl files from the
+ * 'source' file.
+ *
+ * The 'dest' argument is the C source output file.  For Xt this should
+ * be "StringDefs.c", and for all versions of Motif it would be "XmStrDefs.c"
+ *
+ * Headers are generated and named according to data in the 'source'
+ * file.
+ */
+/*
+ * The NoCmpScript
+ * prevents clearmake from trying to remake makestrs if it exists.
+ * Including both $(MAKESTRS) and $(MAKESTRS).o as primary targets
+ * prevents clearmake from trying to recompile makestrs from here.
+ * We have includes, not files, depend on makestrs to try to get
+ * clearmake to wink in the files.  Bug in clearmake 2.0.2?
+ */
+
+#ifndef MakeStringsDependency
+# define MakeStringsDependency                                         @@\
+MAKESTRS = $(CONFIGSRC)/util/makestrs                                  @@\
+NoCmpScript(ProgramTargetName($(MAKESTRS)) $(MAKESTRS).Osuf)           @@\
+                                                                       @@\
+ProgramTargetName($(MAKESTRS)) $(MAKESTRS).Osuf:                       @@\
+       cd $(CONFIGSRC)/util && $(MAKE) ProgramTargetName(makestrs)     @@\
+                                                                       @@\
+includes:: ProgramTargetName($(MAKESTRS))
+#endif
+#ifndef ToolkitMakeStrings
+# if defined(LibTookitMakeStringsDependency) && LibTookitMakeStringsDependency
+#  define ToolkitMakeStrings(files,source,options,depends,dest)                @@\
+files: source depends                                                  @@\
+       RemoveFiles(files)                                              @@\
+       RunProgram(MAKESTRS,options < source > dest)                    @@\
+                                                                       @@\
+AllTarget(files)                                                       @@\
+                                                                       @@\
+includes:: files                                                       @@\
+                                                                       @@\
+depend:: files                                                         @@\
+                                                                       @@\
+clean::                                                                        @@\
+       RemoveFiles(files)
+# else
+#  define ToolkitMakeStrings(files,source,options,depends,dest)                @@\
+MakeStringsDependency                                                  @@\
+                                                                       @@\
+files: source depends                                                  @@\
+       RemoveFiles(files)                                              @@\
+       RunProgram(MAKESTRS,options < source > dest)                    @@\
+                                                                       @@\
+AllTarget(files)                                                       @@\
+                                                                       @@\
+includes:: files                                                       @@\
+                                                                       @@\
+depend:: files                                                         @@\
+                                                                       @@\
+clean::                                                                        @@\
+       RemoveFiles(files)
+# endif
+#endif /* ToolkitMakeStrings */
+
+#ifdef LibName
+
+LIBNAME = LibName
+
+# if defined(LibTookitMakeStringsDependency) && LibTookitMakeStringsDependency
+/*
+ * Do ToolkitMakeStrings() before BuildIncludes so makestrs is still
+ * built first, even if the generated header will be installed.
+ */
+MakeStringsDependency
+# endif
+
+LibraryObjectRule()
+
+# undef _LinkBuildLibrary
+# if !defined(LibInstall) || LibInstall
+#  define _LinkBuildLibrary(lib) LinkBuildLibrary(lib)
+# else
+#  define _LinkBuildLibrary(lib) $(_NULLCMD_)
+# endif
+
+# if !defined(LibCreate) || LibCreate
+#  if DoSharedLib
+#   if HugeLibrary && defined(SharedLibraryTarget3)
+SharedLibraryTarget3($(LIBNAME),$(SoRev),$(OBJS1),$(OBJS2),$(OBJS3),.,.)
+#   else
+SharedLibraryTarget($(LIBNAME),$(SoRev),$(OBJS),.,.)
+#   endif
+#   if !defined(LibInstall) || LibInstall
+InstallSharedLibrary($(LIBNAME),$(SoRev),$(SHLIBDIR))
+#   endif
+#   if HasSharedData
+SharedLibraryDataTarget($(LIBNAME),$(SoRev),$(UNSHAREDOBJS))
+#    if !defined(LibInstall) || LibInstall
+InstallSharedLibraryData($(LIBNAME),$(SoRev),$(SHLIBDIR))
+#    endif
+#   endif
+#  endif
+#  if DoNormalLib
+#   if HugeLibrary
+#    if DoSharedLib && SeparateSharedCompile
+UnsharedLibraryTarget3($(LIBNAME),$(OBJS1),$(OBJS2),$(OBJS3),unshared,..)
+#    else
+NormalLibraryTarget3($(LIBNAME),$(OBJS1),$(OBJS2),$(OBJS3))
+#    endif
+#   else
+#    if DoSharedLib && SeparateSharedCompile
+UnsharedLibraryTarget($(LIBNAME),$(OBJS),unshared,..)
+#    else
+NormalLibraryTarget($(LIBNAME),$(OBJS))
+#    endif
+#   endif
+#   if !defined(LibInstall) || LibInstall
+InstallLibrary($(LIBNAME),$(USRLIBDIR))
+#   endif
+#  endif
+#  if DoProfileLib
+ProfiledLibraryTarget($(LIBNAME),$(OBJS))
+#   if !defined(LibInstall) || LibInstall
+InstallLibrary($(LIBNAME)_p,$(USRLIBDIR))
+#   endif
+#  endif
+#  if DoDebugLib
+DebuggedLibraryTarget($(LIBNAME),$(OBJS))
+#   if !defined(LibInstall) || LibInstall
+InstallLibrary($(LIBNAME)_d,$(USRLIBDIR))
+#   endif
+#  endif
+
+LintLibraryTarget($(LIBNAME),$(SRCS))
+#  if !defined(LibInstall) || LibInstall
+InstallLintLibrary($(LIBNAME),$(LINTLIBDIR))
+#  endif
+# else /* not LibCreate */
+#  if HugeLibrary
+AllTarget($(OBJS1))
+AllTarget($(OBJS2))
+AllTarget($(OBJS3))
+#  else
+AllTarget($(OBJS))
+#  endif
+# endif /* LibCreate */
+# ifdef IncSubdir
+#  ifdef IncSubSubdir
+BuildIncludes($(HEADERS),IncSubdir/IncSubSubdir,../..)
+InstallMultipleFlags($(HEADERS),$(INCDIR)/IncSubdir/IncSubSubdir,$(INSTINCFLAGS))
+#  else
+BuildIncludes($(HEADERS),IncSubdir,..)
+InstallMultipleFlags($(HEADERS),$(INCDIR)/IncSubdir,$(INSTINCFLAGS))
+#  endif
+# else
+#  ifndef CplusplusSource
+#   if !defined(LibHeaders) || LibHeaders
+BuildIncludesTop($(HEADERS))
+InstallMultipleFlags($(HEADERS),$(INCDIR),$(INSTINCFLAGS))
+#   endif
+#  endif
+# endif
+
+NormalLintTarget($(SRCS))
+#endif /* defined(LibName) */