nto.rules revision 1c80d5b0
11c80d5b0SmrgXCOMM $XFree86: xc/config/cf/nto.rules,v 1.7 2003/10/09 22:43:18 herrb Exp $ 211d341caSmrgXCOMM Rules for QNX/Neutrino 311d341caSmrgXCOMM Note that some of these will disappear when we stop cross-compiling 411d341caSmrg 511d341caSmrg#ifndef HasSharedLibraries 611d341caSmrg#define HasSharedLibraries YES 711d341caSmrg#endif 811d341caSmrg 911d341caSmrg#ifndef SharedDataSeparation 1011d341caSmrg#define SharedDataSeparation NO 1111d341caSmrg#endif 1211d341caSmrg#ifndef SharedCodeDef 1311d341caSmrg#define SharedCodeDef /**/ 1411d341caSmrg#endif 1511d341caSmrg#ifndef SharedLibraryDef 1611d341caSmrg#define SharedLibraryDef /**/ 1711d341caSmrg#endif 1811d341caSmrg#ifndef SharedLibraryLoadFlags 1911d341caSmrg#define SharedLibraryLoadFlags -shared 2011d341caSmrg#endif 2111d341caSmrg#ifndef PositionIndependentCFlags 2211d341caSmrg#define PositionIndependentCFlags -fPIC 2311d341caSmrg#endif 2411d341caSmrg#ifndef PositionIndependentCplusplusFlags 2511d341caSmrg#define PositionIndependentCplusplusFlags -fPIC 2611d341caSmrg#endif 2711d341caSmrg 2811d341caSmrg#define LinkFile(tofile, fromfile) @@\ 2911d341caSmrgtofile:: fromfile @@\ 3011d341caSmrg $(CP) fromfile tofile @@\ 3111d341caSmrg @@\ 3211d341caSmrgincludes:: tofile @@\ 3311d341caSmrg @@\ 3411d341caSmrgdepend:: tofile @@\ 3511d341caSmrg @@\ 3611d341caSmrgclean:: @@\ 3711d341caSmrg RemoveFile(tofile) 3811d341caSmrg 3911d341caSmrg#define ObjectFromSpecialSource(dst, src, flags) @@\ 4011d341caSmrgNoConfigRec(dst.c) @@\ 4111d341caSmrg @@\ 4211d341caSmrgdst.c: src.c @@\ 4311d341caSmrg RemoveFile($@) @@\ 4411d341caSmrg $(CP) $? $@ @@\ 4511d341caSmrg @@\ 4611d341caSmrgSpecialCObjectRule(dst,NullParameter,flags) @@\ 4711d341caSmrg @@\ 4811d341caSmrgincludes:: dst.c @@\ 4911d341caSmrg @@\ 5011d341caSmrgdepend:: dst.c @@\ 5111d341caSmrg @@\ 5211d341caSmrgclean:: @@\ 5311d341caSmrg RemoveFile(dst.c) 5411d341caSmrg 5511d341caSmrg 5611d341caSmrg#define ObjectFromSpecialAsmSource(dst, src, flags) @@\ 5711d341caSmrgdst.S: src.S @@\ 5811d341caSmrg RemoveFile($@) @@\ 5911d341caSmrg $(CP) $? $@ @@\ 6011d341caSmrg @@\ 6111d341caSmrgdst.o: dst.S @@\ 6211d341caSmrg AssembleObject(dst,flags) @@\ 6311d341caSmrg @@\ 6411d341caSmrgdst.i: dst.S @@\ 6511d341caSmrg CPPOnlyAsm(dst,flags) @@\ 6611d341caSmrg @@\ 6711d341caSmrgdepend:: dst.S @@\ 6811d341caSmrg @@\ 6911d341caSmrgclean:: @@\ 7011d341caSmrg RemoveFile(dst.S) 7111d341caSmrg 721c80d5b0SmrgXCOMM Special rule ComplexHostProgramTarget needed to compile 7311d341caSmrgXCOMM our utilities locally because we are cross-compiling... 7411d341caSmrgXCOMM 7511d341caSmrg 7611d341caSmrg#define ComplexHostProgramTarget(program) @@\ 7711d341caSmrg CC=cc @@\ 7811d341caSmrg STD_INCLUDES = @@\ 7911d341caSmrg CFLAGS=$(TOP_INCLUDES) $(INCLUDES) $(BOOTSTRAPCFLAGS) @@\ 8011d341caSmrg CCOPTIONS = @@\ 8111d341caSmrg EXTRA_LOAD_FLAGS = @@\ 8211d341caSmrg PROGRAM = program @@\ 8311d341caSmrg @@\ 8411d341caSmrgAllTarget(program) @@\ 8511d341caSmrg @@\ 8611d341caSmrgprogram: $(OBJS) $(DEPLIBS) @@\ 8711d341caSmrg RemoveTargetProgram($@) @@\ 8811d341caSmrg HostLinkRule($@,$(_NOOP_),$(OBJS),$(DEPLIBS) $(LOCAL_LIBRARIES)) @@\ 8911d341caSmrg @@\ 9011d341caSmrgDependTarget() @@\ 9111d341caSmrg @@\ 9211d341caSmrgclean:: @@\ 9311d341caSmrg RemoveFile(ProgramTargetName(program)) 9411d341caSmrg 9511d341caSmrgXCOMM And this rule is again for a host simple host program when cross-compiling. 9611d341caSmrgXCOMM 9711d341caSmrg 9811d341caSmrg#define SimpleHostProgramTarget(program) @@\ 9911d341caSmrg OBJS = program.o @@\ 10011d341caSmrg SRCS = program.c @@\ 10111d341caSmrg @@\ 10211d341caSmrgComplexHostProgramTarget(program) 1031c80d5b0Smrg 10411d341caSmrg 10511d341caSmrg#ifndef FixupLibReferences 10611d341caSmrg#define FixupLibReferences() @@\ 10711d341caSmrgXMULIBONLY = -lXmu @@\ 10811d341caSmrgXMULIB = $(XMULIBONLY) $(XTOOLLIB) $(XLIB) 10911d341caSmrg#endif 11011d341caSmrg 11111d341caSmrg#ifndef SharedLibraryTarget 11211d341caSmrg#define SharedLibraryTarget(libname,rev,solist,down,up) @@\ 11311d341caSmrgAllTarget(Concat(lib,libname.so.rev)) @@\ 11411d341caSmrg @@\ 11511d341caSmrgConcat(lib,libname.so.rev): solist $(EXTRALIBRARYDEPS) @@\ 11611d341caSmrg $(RM) $@~ @@\ 11711d341caSmrg @SONAME=`echo $@ | sed 's/\.[^\.]*$$//'`; set -x; \ @@\ 11811d341caSmrg (cd down; $(CC) -o up/$@~ $(SHLIBLDFLAGS) -Wl,-soname,$$SONAME solist $(REQUIREDLIBS) BaseShLibReqs); \ @@\ 11911d341caSmrg $(RM) $$SONAME; $(LN) $@ $$SONAME; \ @@\ 12011d341caSmrg LinkBuildSonameLibrary($$SONAME) @@\ 12111d341caSmrg $(RM) $@ @@\ 12211d341caSmrg $(MV) $@~ $@ @@\ 12311d341caSmrg @if $(SOSYMLINK); then (set -x; \ @@\ 12411d341caSmrg $(RM) Concat(lib,libname.so); \ @@\ 12511d341caSmrg $(LN) $@ Concat(lib,libname.so)); fi @@\ 12611d341caSmrg LinkBuildLibrary($@) @@\ 12711d341caSmrg LinkBuildLibrary(Concat(lib,libname.so)) @@\ 12811d341caSmrg @@\ 12911d341caSmrgclean:: @@\ 13011d341caSmrg @MAJREV=`echo rev | sed 's/\.[^\.]*$$//'`; \ @@\ 13111d341caSmrg set -x; $(RM) Concat(lib,libname.so.$$MAJREV) @@\ 13211d341caSmrg $(RM) Concat(lib,libname.so.rev) Concat(lib,libname.so) 13311d341caSmrg#endif 13411d341caSmrg/* 13511d341caSmrg * InstallSharedLibrary - generate rules to install the shared library. 13611d341caSmrg * NOTE: file must be executable, hence "INSTBINFLAGS" 13711d341caSmrg */ 13811d341caSmrg#ifndef InstallSharedLibrary 13911d341caSmrg#define InstallSharedLibrary(libname,rev,dest) @@\ 14011d341caSmrginstall:: Concat(lib,libname.so.rev) @@\ 14111d341caSmrg MakeDir($(DESTDIR)dest) @@\ 14211d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest @@\ 14311d341caSmrg @T=`echo Concat($(DESTDIR)dest/lib,libname.so.rev) | sed 's/\.[^\.]*$$//'`;\ 14411d341caSmrg set -x; $(RM) $$T && $(LN) Concat(lib,libname.so.rev) $$T @@\ 14511d341caSmrg @if $(SOSYMLINK); then (set -x; \ 14611d341caSmrg $(RM) Concat($(DESTDIR)dest/lib,libname.so); \ @@\ 14711d341caSmrg $(LN) Concat(lib,libname.so.rev) Concat($(DESTDIR)dest/lib,libname.so)); fi 14811d341caSmrg#endif /* InstallSharedLibrary */ 14911d341caSmrg 15011d341caSmrg/* 15111d341caSmrg * SharedLibraryDataTarget - generate rules to create shlib data file; 15211d341caSmrg */ 15311d341caSmrg#ifndef SharedLibraryDataTarget 15411d341caSmrg#define SharedLibraryDataTarget(libname,rev,salist) 15511d341caSmrg#endif /* SharedLibraryTarget */ 15611d341caSmrg 15711d341caSmrg/* 15811d341caSmrg * InstallSharedLibraryData - generate rules to install the shared library data 15911d341caSmrg */ 16011d341caSmrg#ifndef InstallSharedLibraryData 16111d341caSmrg#define InstallSharedLibraryData(libname,rev,dest) 16211d341caSmrg#endif /* InstallSharedLibraryData */ 16311d341caSmrg 16411d341caSmrg#define BaseShLibReqs 16511d341caSmrg 16611d341caSmrg 16711d341caSmrg 16811d341caSmrg/* 16911d341caSmrg * ServerTargetWithFlags - generate rules to compile, link, and relink a server 17011d341caSmrg */ 17111d341caSmrg#ifndef ServerTargetWithFlags 17211d341caSmrg#define ServerTargetWithFlags(server,subdirs,objects,libs,syslibs,flags) @@\ 17311d341caSmrgAllTarget(ProgramTargetName(server)) @@\ 17411d341caSmrgProgramTargetName(server): subdirs objects libs @@\ 17511d341caSmrg MoveToBakFile($@) @@\ 17611d341caSmrg LinkRule($@,$(LDOPTIONS),objects,libs $(LDLIBS) syslibs) @@\ 17711d341caSmrg @@\ 17811d341caSmrgConcat(load,server): @@\ 17911d341caSmrg MoveToBakFile(ProgramTargetName(server)) @@\ 18011d341caSmrg LinkRule(ProgramTargetName(server),$(LDOPTIONS),objects,libs $(LDLIBS) syslibs) @@\ 18111d341caSmrg @@\ 18211d341caSmrgloadX:: Concat(load,server) @@\ 18311d341caSmrg @@\ 18411d341caSmrgSentinelProgramTarget(server,subdirs objects libs,objects libs $(LDLIBS) syslibs) @@\ 18511d341caSmrgSentinelLinkTarget(Concat(load,server),server,objects libs $(LDLIBS) syslibs) @@\ 18611d341caSmrgPurifyProgramTarget(server,subdirs objects libs,objects libs $(LDLIBS) syslibs) @@\ 18711d341caSmrgPurifyLinkTarget(Concat(load,server),server,objects libs $(LDLIBS) syslibs) @@\ 18811d341caSmrgProofProgramTarget(server,subdirs objects libs,objects libs $(LDLIBS) syslibs) @@\ 18911d341caSmrgProofLinkTarget(Concat(load,server),server,objects libs $(LDLIBS) syslibs) @@\ 19011d341caSmrg @@\ 19111d341caSmrgInstallProgramWithFlags(server,$(BINDIR),flags) @@\ 19211d341caSmrg @@\ 19311d341caSmrgclean:: @@\ 19411d341caSmrg RemoveFile(ProgramTargetName(server)) 19511d341caSmrg#endif /* ServerTargetWithFlags */ 19611d341caSmrg 19711d341caSmrg/* 19811d341caSmrg * SharedDepLibraryTarget - generate rules to create a shared library. 19911d341caSmrg */ 20011d341caSmrg#ifndef SharedDepLibraryTarget 20111d341caSmrg#define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up) @@\ 20211d341caSmrgAllTarget(Concat(lib,libname.so.rev)) @@\ 20311d341caSmrg @@\ 20411d341caSmrgConcat(lib,libname.so.rev): deplist $(EXTRALIBRARYDEPS) @@\ 20511d341caSmrg $(RM) $@~ @@\ 20611d341caSmrg @SONAME=`echo $@ | sed 's/\.[^\.]*$$//'`; set -x; \ @@\ 20711d341caSmrg (cd down; $(CC) -o up/$@~ $(SHLIBLDFLAGS) -Wl,-soname,$$SONAME solist $(REQUIREDLIBS) BaseShLibReqs); \ @@\ 20811d341caSmrg $(RM) $$SONAME; $(LN) $@ $$SONAME; \ @@\ 20911d341caSmrg LinkBuildSonameLibrary($$SONAME) @@\ 21011d341caSmrg $(RM) $@ @@\ 21111d341caSmrg $(MV) $@~ $@ @@\ 21211d341caSmrg @if $(SOSYMLINK); then (set -x; \ @@\ 21311d341caSmrg $(RM) Concat(lib,libname.so); \ @@\ 21411d341caSmrg $(LN) $@ Concat(lib,libname.so)); fi @@\ 21511d341caSmrg LinkBuildLibrary($@) @@\ 21611d341caSmrg LinkBuildLibraryMaybe(Concat(lib,libname.so),$(SOSYMLINK)) @@\ 21711d341caSmrg @@\ 21811d341caSmrgclean:: @@\ 21911d341caSmrg @MAJREV=`echo rev | sed 's/\.[^\.]*$$//'`; \ @@\ 22011d341caSmrg set -x; $(RM) Concat(lib,libname.so.$$MAJREV) @@\ 22111d341caSmrg $(RM) Concat(lib,libname.so.rev) Concat(lib,libname.so) 22211d341caSmrg 22311d341caSmrg#endif /* SharedDepLibraryTarget */ 22411d341caSmrg 22511d341caSmrg#ifndef SharedDepModuleTarget 22611d341caSmrg#define SharedDepModuleTarget(name,deps,solist) @@\ 22711d341caSmrgAllTarget(name) @@\ 22811d341caSmrg 22911d341caSmrg @@\ 23011d341caSmrgname: deps @@\ 23111d341caSmrg $(RM) $@~ @@\ 23211d341caSmrg $(CC) -o $@~ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS) BaseShLibReqs @@\ 23311d341caSmrg $(RM) $@ @@\ 23411d341caSmrg $(MV) $@~ $@ @@\ 23511d341caSmrg @@\ 23611d341caSmrgclean:: @@\ 23711d341caSmrg $(RM) name 23811d341caSmrg 23911d341caSmrg#endif /* SharedDepModuleTarget */ 24011d341caSmrg 241