⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lnxlib.rules

📁 unix vnc 协议源码. VNC是一款远程控制工具软件.
💻 RULES
📖 第 1 页 / 共 2 页
字号:
XCOMM $XConsortium: lnxLib.rules /main/13 1996/09/28 16:11:01 rws $XCOMM $XFree86: xc/config/cf/lnxLib.rules,v 3.28.2.3 1997/06/22 10:32:20 dawes Exp $/* * Linux shared library rules (DLL & ELF versions) */#ifndef HasSharedLibraries#define HasSharedLibraries YES#endif#ifndef ForceNormalLib#define ForceNormalLib NO#endif#define SharedOldX NO#if UseElfFormat#if (LinuxCLibMajorVersion >= 5 && LinuxCLibMinorVersion >= 4) || LinuxCLibMajorVersion >= 6#undef SpecialMalloc#define SpecialMalloc NO#undef UseInternalMalloc#define UseInternalMalloc NO#endif/* *	#define BaseShLibReqs	-lc * * I don't want to use this since the normal ELF executables should * be linked with libc.so. If it is not, i.e., static, the variables in * libc.so which is loaded in because of the other shared libraries * may have different values than the ones in the static ELF * executables. That happens if the binaries are linked with libg.a * or libc_p.a. * * If an ELF executable linked with libg.a or libc_p.a loads a shared * object which needs libc.so via dlopen (), I think it should fail. * It is a very bad idea. The moral story is DON'T USE dlopen () IN * ELF EXECUTABLES LINKED WITH libg.a OR libc_p.a. H.J. * */#define BaseShLibReqs#ifndef SharedDataSeparation#define SharedDataSeparation NO#endif#ifndef SharedCodeDef#define SharedCodeDef /**/#endif#ifndef SharedLibraryDef#define SharedLibraryDef /**/#endif#ifndef ShLibIncludeFile#define ShLibIncludeFile <lnxLib.tmpl>#endif#ifndef SharedLibraryLoadFlags#define SharedLibraryLoadFlags -shared#endif#ifndef PositionIndependentCFlags#define PositionIndependentCFlags -fPIC#endif#ifndef PositionIndependentCplusplusFlags#define PositionIndependentCplusplusFlags -fPIC#endif#ifndef ExtraLoadFlags#if LinuxBinUtilsMajorVersion >= 26#ifdef UseInstalled#if LinuxBinUtilsMajorVersion < 27#define ExtraLoadFlags -Wl,-rpath-link,$(USRLIBDIRPATH)#endif#else#define ExtraLoadFlags -Wl,-rpath-link,$(BUILDLIBDIR)#endif#else#define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)#endif#endif/* * InstallSharedLibrary - generate rules to install the shared library. * NOTE: file must be executable, hence "INSTBINFLAGS" */#ifndef InstallSharedLibrary#define	InstallSharedLibrary(libname,rev,dest)				@@\install:: Concat(lib,libname.so.rev) 					@@\	MakeDir($(DESTDIR)dest)						@@\	$(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest @@\	@T=`echo Concat($(DESTDIR)dest/lib,libname.so.rev) | sed 's/\.[^\.]*$$//'`;\	  set -x; $(RM) $$T && $(LN) Concat(lib,libname.so.rev) $$T	@@\	$(RM) Concat($(DESTDIR)dest/lib,libname.so)			@@\	$(LN) Concat(lib,libname.so.rev) Concat($(DESTDIR)dest/lib,libname.so)#endif /* InstallSharedLibrary *//* * InstallSharedLibraryData - generate rules to install the shared library data */#ifndef InstallSharedLibraryData#define	InstallSharedLibraryData(libname,rev,dest)#endif /* InstallSharedLibraryData *//* * SharedLibraryTarget - generate rules to create a shared library; * build it into a different name so that we do not hose people by having * the library gone for long periods. */#ifndef SharedLibraryTarget#ifdef UseInstalled#define LinkBuildSonameLibrary(lib) true#else#define LinkBuildSonameLibrary(lib) (RemoveFile($(BUILDLIBDIR)/lib); \	cd $(BUILDLIBDIR); $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/lib .)#endif#define SharedLibraryTarget(libname,rev,solist,down,up)			@@\AllTarget(Concat(lib,libname.so.rev))					@@\									@@\Concat(lib,libname.so.rev):  solist $(EXTRALIBRARYDEPS)			@@\	$(RM) $@~							@@\	@SONAME=`echo $@ | sed 's/\.[^\.]*$$//'`; set -x; \		@@\		(cd down; $(CC) -o up/$@~ $(SHLIBLDFLAGS) -Wl,-soname,$$SONAME solist $(REQUIREDLIBS) BaseShLibReqs); \ @@\		$(RM) $$SONAME; $(LN) $@ $$SONAME; \			@@\		LinkBuildSonameLibrary($$SONAME)			@@\	$(RM) $@ 							@@\	$(MV) $@~ $@							@@\	$(RM) Concat(lib,libname.so)					@@\	$(LN) $@ Concat(lib,libname.so)					@@\	LinkBuildLibrary($@)						@@\	LinkBuildLibrary(Concat(lib,libname.so))			@@\									@@\clean::									@@\	@MAJREV=`expr rev : '\(.*\)\.'`; \				@@\	set -x; $(RM) Concat(lib,libname.so.$$MAJREV)			@@\	$(RM) Concat(lib,libname.so.rev) Concat(lib,libname.so)#endif /* SharedLibraryTarget */#ifndef SharedDepModuleTarget#define SharedDepModuleTarget(name,deps,solist)				@@\AllTarget(name)								@@\									@@\name: deps								@@\	$(RM) $@~							@@\	$(CC) -o $@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS) BaseShLibReqs @@\	$(RM) $@							@@\	$(MV) $@~ $@							@@\									@@\clean::									@@\	$(RM) name#endif /* SharedDepModuleTarget *//* * SharedLibraryDataTarget - generate rules to create shlib data file; */#ifndef SharedLibraryDataTarget#define SharedLibraryDataTarget(libname,rev,salist)#endif /* SharedLibraryTarget */#else /* UseElfFormat */#ifndef SharedDataSeparation#define SharedDataSeparation NO#endif#ifndef SharedCodeDef#define SharedCodeDef /**/#endif#ifndef SharedLibraryDef#define SharedLibraryDef /**/#endif#ifndef ShLibIncludeFile#define ShLibIncludeFile <lnxLib.tmpl>#endif#ifndef SharedLibraryLoadFlags#define SharedLibraryLoadFlags /**/#endif#ifndef PositionIndependentCFlags#define PositionIndependentCFlags -B/usr/bin/jump#endif/* * These definitions are now extended to work with the X sources and * external sources wishing to build shared libs. * * A library can create it's own shlibs (.so) or can be incorporated into * another "host" lib. All libraries generate stub (.sa) files. * A "host" lib does all the work to generate the stubs for itself and its * "guests", invoking the "guest" Makefiles to create the objects for * inclusion into the "host" shlib. A "guest" lib will ask the "host" to * create the stubfiles, then copy its own into its directory. * Most external libs are "host" libs; the concept of "guest" is a holdover * from older libs during the days of scarce shared library address space. * * To create a simple "host" shared lib, Xfoo, define: * *  JUMP_ROOT_Xfoo = <source directory> *  JUMP_IS_HOST_Xfoo = YES *  JUMP_STUBLIBS_Xfoo = libXfoo.sa *  JUMP_DIR_Xfoo = $(JUMP_ROOT_Xfoo)/shared		<work directory> *  JUMP_DEFS_Xfoo = -DFOO				<defs for jump files> *  JUMP_VARS_Xfoo = $(JUMP_ROOT_Xfoo)/jump_vars	<see DLL docs> *  JUMP_FUNCS_Xfoo = $(JUMP_ROOT_Xfoo)/jump_funcs	<see DLL docs> *  JUMP_IGNORE_Xfoo = $(JUMP_ROOT_Xfoo)/jump_ignore	<see DLL docs> *  JUMP_EXPORT_Xfoo = $(JUMP_DIR_Xfoo)/jump.vars	<exported symbols> *  JUMP_IMPORT_Xfoo = $(JUMP_EXPORT_Xbar)		<imported symbols> *  JUMP_ADDRESS_Xfoo = 0xXXXXXXXX			<fill in with address> *  JUMP_JUMPTABLESIZE_Xfoo = 0x4000			<adjust if necessary> *  JUMP_GOTSIZE_Xfoo = 4096				<adjust if necessary> *  JUMP_STUBNAMES_Xfoo = libXfoo			<and others> *  JUMP_STUBS_IMPORT_Xfoo = /usr/lib/libc.sa		<and others> *  JUMP_LDLIBS_Xfoo = `$(CC) --print-libgcc-file-name` -lc <and others> * * To create a complex "host", you need to add *  JUMP_SIBARS_Xt = jump/libXbar.a~			<and others> * These are the archives of the shared objects of the "guest" libs. They * need to be added to the JUMP_LDLIBS_Xfoo lines. * * For further clarification, study the definitions of libXaw, a simple "host" * lib, libXt, a complex "host" lib, and libXmu, one of libXts "guests". * * As a hint of how to start (with the DLL docs), touch jump_vars, jump_funcs * and jump_ignore, then compile. Then massage the jump.vars and jump.funcs * files in the shared subdirectory into jump_xxx files. */#ifndef UseInstalledXCOMM These are only needed to build the server#if LinuxElfDefaultLIBC_SA = /usr/i486-linuxaout/lib/libc.saLIBM_SA = /usr/i486-linuxaout/lib/libm.sa#elseLIBC_SA = /usr/lib/libc.saLIBM_SA = /usr/lib/libm.sa#endifJUMP_LDLIBS_libc = `$(CC) --print-libgcc-file-name` -lcXCOMM libX11.so (X11, SM, ICE)JUMP_ROOT_X11 = $(XLIBSRC)JUMP_IS_HOST_X11 = YESJUMP_STUBLIBS_X11 = libX11.sa libSM.sa libICE.saJUMP_SIBDIRS_X11 = $(JUMP_ROOT_SM) $(JUMP_ROOT_ICE)JUMP_DIR_X11 = $(JUMP_ROOT_X11)/sharedJUMP_DEFS_X11 = $(XDMAUTHDEFS) $(XKB_DEFINES)JUMP_VARS_X11 = $(JUMP_ROOT_X11)/jump_varsJUMP_FUNCS_X11 = $(JUMP_ROOT_X11)/jump_funcsJUMP_IGNORE_X11 = $(JUMP_ROOT_X11)/jump_ignoreJUMP_EXPORT_X11 = $(JUMP_DIR_X11)/jump.varsJUMP_ADDRESS_X11 = 0x60200000JUMP_JUMPTABLESIZE_X11 = 0x4000JUMP_GOTSIZE_X11 = 4096JUMP_STUBNAMES_X11 = libX11 libSM libICEJUMP_STUBS_IMPORT_X11 = $(LIBC_SA)JUMP_SIBARS_X11 = jump/libSM.a~ jump/libICE.a~JUMP_LDLIBS_X11 = $(JUMP_SIBARS_X11) $(JUMP_LDLIBS_libc)XCOMM libSM (part of libX11.so)JUMP_ROOT_SM = $(SMSRC)JUMP_IS_HOST_SM = NOJUMP_HOST_SM = $(JUMP_ROOT_X11)JUMP_DIR_SM = $(JUMP_DIR_X11)XCOMM libICE (part of libX11.so)JUMP_ROOT_ICE = $(ICESRC)JUMP_IS_HOST_ICE = NOJUMP_HOST_ICE = $(JUMP_ROOT_X11)JUMP_DIR_ICE = $(JUMP_DIR_X11)XCOMM libXt.so (Xt, Xmu, Xext, Xi, Xtst, Xp)JUMP_ROOT_Xt = $(TOOLKITSRC)JUMP_IS_HOST_Xt = YESJUMP_STUBLIBS_Xt = libXt.sa libXmu.sa libXext.sa libXi.sa libXtst.sa libXp.saJUMP_SUBDIRS_Xt = $(JUMP_ROOT_X11)JUMP_SIBDIRS_Xt = $(JUMP_ROOT_Xmu) $(JUMP_ROOT_Xext) \	$(JUMP_ROOT_Xi) $(JUMP_ROOT_Xtst) $(JUMP_ROOT_Xp)JUMP_DIR_Xt = $(JUMP_ROOT_Xt)/sharedJUMP_VARS_Xt = $(JUMP_ROOT_Xt)/jump_varsJUMP_FUNCS_Xt = $(JUMP_ROOT_Xt)/jump_funcsJUMP_IGNORE_Xt = $(JUMP_ROOT_Xt)/jump_ignoreJUMP_EXPORT_Xt = $(JUMP_DIR_Xt)/jump.varsJUMP_IMPORT_Xt = $(JUMP_EXPORT_X11)JUMP_ADDRESS_Xt = 0x602a0000JUMP_JUMPTABLESIZE_Xt = 0x4000

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -