home *** CD-ROM | disk | FTP | other *** search
- XCOMM $XFree86: xc/config/cf/nto.rules,v 1.1.2.1 1999/07/29 09:40:13 hohndel Exp $
- XCOMM Rules for QNX/Neutrino
- XCOMM Note that some of these will disappear when we stop cross-compiling
-
- #ifndef HasSharedLibraries
- #define HasSharedLibraries YES
- #endif
-
- #ifndef SharedDataSeparation
- #define SharedDataSeparation NO
- #endif
- #ifndef SharedCodeDef
- #define SharedCodeDef /**/
- #endif
- #ifndef SharedLibraryDef
- #define SharedLibraryDef /**/
- #endif
- #ifndef SharedLibraryLoadFlags
- #define SharedLibraryLoadFlags -shared
- #endif
- #ifndef PositionIndependentCFlags
- #define PositionIndependentCFlags -fPIC
- #endif
- #ifndef PositionIndependentCplusplusFlags
- #define PositionIndependentCplusplusFlags -fPIC
- #endif
-
- #define LinkFile(tofile, fromfile) @@\
- tofile:: fromfile @@\
- $(CP) fromfile tofile @@\
- @@\
- includes:: tofile @@\
- @@\
- depend:: tofile @@\
- @@\
- clean:: @@\
- RemoveFile(tofile)
-
- XCOMM This special rule is used to install the install script.
- XCOMM Else theres a name conflict with the QNX installer.
-
- #define QNXCopyInstaller(tofile, fromfile) @@\
- tofile:: @@\
- $(CP) fromfile tofile @@\
- @@\
- includes:: tofile
-
-
- #define ObjectFromSpecialSource(dst, src, flags) @@\
- NoConfigRec(dst.c) @@\
- @@\
- dst.c: src.c @@\
- RemoveFile($@) @@\
- $(CP) $? $@ @@\
- @@\
- SpecialCObjectRule(dst,NullParameter,flags) @@\
- @@\
- includes:: dst.c @@\
- @@\
- depend:: dst.c @@\
- @@\
- clean:: @@\
- RemoveFile(dst.c)
-
-
- #define ObjectFromSpecialAsmSource(dst, src, flags) @@\
- dst.s: src.s @@\
- RemoveFile($@) @@\
- $(CP) $? $@ @@\
- @@\
- dst.o: dst.s @@\
- AssembleObject(flags) @@\
- @@\
- dst.i: dst.s @@\
- CPPOnlyAsm(dst,flags) @@\
- @@\
- depend:: dst.s @@\
- @@\
- clean:: @@\
- RemoveFile(dst.s)
-
- XCOMM Special rule ComplexHostProgramTarget needed to compile
- XCOMM our utilities locally because we are cross-compiling...
- XCOMM
-
- #define ComplexHostProgramTarget(program) @@\
- CC=cc @@\
- STD_INCLUDES = @@\
- CFLAGS=$(TOP_INCLUDES) $(INCLUDES) $(BOOTSTRAPCFLAGS) @@\
- CCOPTIONS = @@\
- EXTRA_LOAD_FLAGS = @@\
- PROGRAM = program @@\
- @@\
- AllTarget(program) @@\
- @@\
- program: $(OBJS) $(DEPLIBS) @@\
- RemoveTargetProgram($@) @@\
- HostLinkRule($@,$(_NOOP_),$(OBJS),$(DEPLIBS) $(LOCAL_LIBRARIES)) @@\
- @@\
- DependTarget() @@\
- @@\
- clean:: @@\
- RemoveFile(ProgramTargetName(program))
-
- XCOMM And this rule is again for a host simple host program when cross-compiling.
- XCOMM
-
- #define SimpleHostProgramTarget(program) @@\
- OBJS = program.o @@\
- SRCS = program.c @@\
- @@\
- ComplexHostProgramTarget(program)
-
- #define HostLinkRule(target,flags,src,libs) @@\
- cc -F -o target src $(ALLINCLUDES)
-
- #ifndef FixupLibReferences
- #define FixupLibReferences() @@\
- XMULIBONLY = -lXmu @@\
- XMULIB = $(XMULIBONLY) $(XTOOLLIB) $(XLIB)
- #endif
-
- #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
- /*
- * 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 */
-
- /*
- * SharedLibraryDataTarget - generate rules to create shlib data file;
- */
- #ifndef SharedLibraryDataTarget
- #define SharedLibraryDataTarget(libname,rev,salist)
- #endif /* SharedLibraryTarget */
-
- /*
- * InstallSharedLibraryData - generate rules to install the shared library data
- */
- #ifndef InstallSharedLibraryData
- #define InstallSharedLibraryData(libname,rev,dest)
- #endif /* InstallSharedLibraryData */
-
- #define BaseShLibReqs
-
-
-
- /*
- * 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 */
-