home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2000 February
/
PCWorld_2000-02_cd.bin
/
live
/
usr
/
X11R6
/
lib
/
X11
/
config
/
os2.rules
< prev
next >
Wrap
Text File
|
1999-09-03
|
18KB
|
537 lines
XCOMM $XConsortium: os2.rules /main/1 1996/10/31 14:47:27 kaleb $
XCOMM platform: $XFree86: xc/config/cf/os2.rules,v 3.15.2.1 1998/10/11 12:34:48 hohndel Exp $
.SUFFIXES: .Osuf .c .CCsuf
.c.Osuf:
$(CC) $(CFLAGS) -c $*.c
#if HasCplusplus
.CCsuf.Osuf:
$(CXX) $(CFLAGS) -c $*.CCsuf
#endif
#ifndef UseInstalled
#define ImakeHelper \imakesvc
#define IMmode n
#define ImakeIndir \indir
#define ImakeSubCmdHelper \imake -I$(IRULESRC) $(IMAKE_DEFINES)
#define Fontc \bdftopcf
#define MkFontDir \mkfontdir
#define XkbComp \xkbcomp
#else
#define ImakeHelper imakesvc
#define IMmode u
#define ImakeIndir indir
#define ImakeSubCmdHelper $(IMAKE_CMD)
#define Fontc bdftopcf
#define MkFontDir mkfontdir
#define XkbComp xkbcomp
#endif
#define echo ImakeHelper 8
#define RunProgram(progvar,options) $(subst /,\,$(progvar)) options
#define RemoveFile(file) $(RM) file
#define RemoveFiles(files) $(RM) files
#define NeedLdLibraryPathForXkbComp NO
#define LibObjCompile(dir,options) RemoveFiles($@ dir\$@) @@\
$(CC) $(CCOPTIONS) $(ALLDEFINES) options -c $*.c @@\
$(MV) $@ dir\$@
#define MakeDir(dir) $(MKDIRHIER) dir
#define BuildIncludesTop(srclist) @@\
includes:: srclist @@\
MakeDir($(BUILDINCDIR)) @@\
@for %i in (srclist) do ImakeHelper 2 $(BUILDINCDIR) $(BUILDINCTOP) $(CURRENT_DIR) %i
#define ProgramTargetHelper(program,srcs,objs,deplib,locallib,syslib) @@\
ProgramTargetName(program): $(objs) @@\
RemoveTargetProgram($@) @@\
LinkRule($@,$(LDOPTIONS),$(objs),locallib $(LDLIBS) syslib) @@\
@@\
InstallProgram(program,$(BINDIR)) @@\
InstallManPage(program,$(MANDIR))
#if 0
#define ProgramTargetHelperNoMan(program,srcs,objs,deplib,locallib,syslib) @@\
ProgramTargetName(program): $(objs) @@\
RemoveTargetProgram($@) @@\
LinkRule($@,$(LDOPTIONS),$(objs),locallib $(LDLIBS) syslib) @@\
@@\
InstallProgram(program,$(BINDIR))
#endif
#define BuildIncludes(srclist,dstsubdir,dstupdir) @@\
includes:: srclist @@\
MakeDir($(BUILDINCDIR)/dstsubdir) @@\
@for %i in (srclist) do ImakeHelper 3 $(BUILDINCTOP)/dstupdir/$(CURRENT_DIR) $(BUILDINCDIR)/dstsubdir %i
#define LinkFileList(step,list,dir,sub) @@\
step:: list @@\
@for %i in (list) do ImakeHelper 3 sub dir %i
#define ComplexProgramTarget(program) @@\
PROGRAM = ProgramTargetName(program) @@\
@@\
AllTarget(ProgramTargetName(program)) @@\
@@\
ProgramTargetHelper(program,SRCS,OBJS,DEPLIBS,$(LOCAL_LIBRARIES),NullParameter) @@\
@@\
DependTarget() @@\
LintTarget() @@\
@@\
clean:: @@\
RemoveFile($(PROGRAM))
#define ComplexProgramTarget_1(program,locallib,syslib) @@\
OBJS = $(OBJS1) $(OBJS2) $(OBJS3) @@\
SRCS = $(SRCS1) $(SRCS2) $(SRCS3) @@\
PROGRAM1 = ProgramTargetName(program) @@\
@@\
AllTarget($(PROGRAM1) $(PROGRAM2) $(PROGRAM3)) @@\
@@\
ProgramTargetHelper(program,SRCS1,OBJS1,DEPLIBS1,locallib,syslib) @@\
@@\
DependTarget() @@\
LintTarget() @@\
@@\
clean:: @@\
RemoveFiles($(PROGRAMS))
#define ComplexProgramTarget_2(program,locallib,syslib) @@\
PROGRAM2 = ProgramTargetName(program) @@\
@@\
ProgramTargetHelper(program,SRCS2,OBJS2,DEPLIBS2,locallib,syslib)
#define ComplexProgramTarget_3(program,locallib,syslib) @@\
PROGRAM3 = ProgramTargetName(program) @@\
@@\
ProgramTargetHelper(program,SRCS3,OBJS3,DEPLIBS3,locallib,syslib)
#define NormalProgramTarget(program,objects,deplibs,locallibs,syslibs) @@\
ProgramTargetName(program): objects @@\
RemoveTargetProgram($@) @@\
LinkRule($@,$(LDOPTIONS),objects,locallibs $(LDLIBS) syslibs) @@\
@@\
clean:: @@\
RemoveFile(ProgramTargetName(program))
#if 0
#define ComplexProgramTargetNoMan(program) @@\
PROGRAM = ProgramTargetName(program) @@\
@@\
AllTarget(ProgramTargetName(program)) @@\
@@\
ProgramTargetHelperNoMan(program,SRCS,OBJS,DEPLIBS,$(LOCAL_LIBRARIES),NullParameter) @@\
@@\
DependTarget() @@\
LintTarget() @@\
@@\
clean:: @@\
RemoveFile($(PROGRAM))
#endif
#define MoveToBakFile(file) ImakeHelper 5 file
#define RMoveToBakFile(file) ImakeHelper 6 file
#define InstallMultipleDestFlags(step,list,dest,flags) @@\
step:: list @@\
MakeDir($(DESTDIR)dest) @@\
$(INSTALL) $(INSTALLFLAGS) flags list $(subst /,\,$(DESTDIR)dest)
#define CleanTarget() @@\
clean:: @@\
RemoveFiles(FilesToClean ExtraFilesToClean)
#define LinkSourceFile(src,dir) @@\
src: @@\
ImakeHelper 3 dir . src @@\
@@\
includes:: src @@\
@@\
depends:: src @@\
@@\
clean:: @@\
RemoveFile(src)
#define LinkFile(tofile,fromfile) @@\
tofile:: fromfile @@\
ImakeHelper 7 fromfile tofile @@\
@@\
includes:: tofile @@\
@@\
depend:: tofile @@\
@@\
clean:: @@\
RemoveFile(tofile)
#ifndef UseInstalled
#define ImakeDependency(target) @@\
target:: ProgramTargetName($(IMAKE)) @@\
@@\
ProgramTargetName($(IMAKE)): @@\
@ImakeIndir $(IMAKESRC) if exist Makefile $(MAKE) SHELL= MAKE=x11make all @@\
@ImakeIndir $(IMAKESRC) if not exist Makefile $(MAKE) SHELL= MAKE=x11make -f Makefile.ini BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"
#endif
#ifndef UseInstalled
#define DependDependency() @@\
depend:: ProgramTargetName($(DEPEND)) @@\
@@\
ProgramTargetName($(DEPEND)): @@\
@ImakeIndir $(DEPENDSRC) $(MAKE) SHELL= MAKE=x11make
#endif
#define DependTarget() @@\
DependDependency() @@\
@@\
depend:: @@\
$(subst /,\,$(DEPEND)) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- $(SRCS)
#define DependTarget3(srcs1,srcs2,srcs3) @@\
DependDependency() @@\
/* Currently this stuff doesn't work correctly for libX11
depend:: @@\
$(subst /,\,$(DEPEND)) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- srcs1 @@\
$(subst /,\,$(DEPEND)) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- srcs2 @@\
$(subst /,\,$(DEPEND)) $(DEPENDFLAGS) -- $(ALLDEFINES) $(DEPEND_DEFINES) -- srcs3
*/
#define ForceSubdirs(dirs) @@\
dirs: DONE @@\
@@\
DONE: @@\
@for %i in (dirs) do ImakeIndir %i $(MAKE) SHELL= MAKE=x11make $(MFLAGS) PassCDebugFlags all @@\
touch DONE @@\
@@\
clean:: @@\
RemoveFile(DONE)
#define MakeMakeSubdirs(dirs,target) @@\
MMSDIRS = dirs @@\
MMSTOP = $(TOP) @@\
MMSRULES = $(IRULESRC) @@\
MMSCUR = $(CURRENT_DIR) @@\
target:: @@\
@for %i in ($(subst /,\,$(MMSDIRS))) do ImakeHelper 1 IMmode %i $(MMSRULES) $(MMSTOP) $(MMSCUR)
#define NamedTargetSubdirs(name,dirs,verb,flags,subname) @@\
Concat(SUBST,name) = dirs @@\
name:: @@\
@for %i in ($(subst /,\,$(Concat(SUBST,name)))) do ImakeIndir %i $(MAKE) SHELL= MAKE=x11make $(MFLAGS) flags subname
#define InstallNamedTarget(step,srcname,flags,dest,dstname) @@\
step:: srcname @@\
MakeDir($(DESTDIR)dest) @@\
$(INSTALL) $(INSTALLFLAGS) flags srcname $(subst \,/,$(DESTDIR)dest)/dstname
#define BuildMakefileTarget(notused,imakeflags) @@\
ImakeDependency(Makefile) @@\
@@\
Makefile:: @@\
RMoveToBakFile(Makefile) @@\
ImakeSubCmdHelper -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR) imakeflags
#define AssembleObject(flags) $(RM) $@ @@\
$(CPP) AsmDefines $(DEFINES) $(INCLUDES) flags $*.s | grep -v '^\#' > _tmp_.s @@\
$(CC) $(CFLAGS) -o $*.Osuf -c _tmp_.s @@\
$(RM) _tmp_.s
#define NormalAsmObjectRule() @@\
.s.Osuf: @@\
AssembleObject($(_NOOP_))
#define ObjectMapIncludeFromSpecialSource(dst,src,flags) @@\
dst.c: src.c @@\
ImakeHelper 9 $@ mfbmap.h $? @@\
@@\
SpecialCObjectRule(dst,NullParameter,flags) @@\
@@\
depend:: dst.c @@\
@@\
clean:: @@\
RemoveFile(dst.c)
#define FontBaseObj(basename)basename.pcf
/*
* UncompressedFontTarget
*/
#define UncompressedFontTarget(basename) @@\
FontBaseObj(basename): FontSrc(basename) @@\
Fontc $(FONTCFLAGS) $? -o $@
/*
* CompressedFontTarget
*/
#ifndef CompressedFontTarget
#if GzipFontCompression
#define CompressedFontTarget(basename) @@\
FontBaseObj(basename).gz: FontSrc(basename) @@\
Fontc $(FONTCFLAGS) $? | $(GZIPCMD) > $@
#else
#define CompressedFontTarget(basename) @@\
FontBaseObj(basename).Z: FontSrc(basename) @@\
Fontc $(FONTCFLAGS) $? | $(COMPRESS) > $@
#endif
#endif
/*
* MakeFontsDir - generate rules to build fonts.dir database.
*/
#define MakeFontsDir(deplist) @@\
all:: fonts.dir @@\
@@\
fonts.dir: deplist @@\
MkFontDir . @@\
@@\
clean:: @@\
RemoveFile(fonts.dir)
/* OS/2 scripts are based on REXX
* it is just the SHELL variable that is messed up that forces me to
* modify this rule
*/
#define ConfigTargetLong(target,dep,script,args,extra) @@\
all:: Configure @@\
@@\
Configure:: target.o @@\
@@\
target.c: script dep @@\
$(MAKE) SHELL= MAKE=x11make $(MFLAGS) extra Concat(Build,target) @@\
@@\
Concat(Build,target): @@\
$(RM) target.c @@\
script args @@\
@@\
clean:: @@\
$(RM) target.c
#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) @@\
emxbind -a ProgramTargetName(server) -h255 @@\
@@\
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 */
/*
* ServerTarget - rules to compile, link, and relink a normal server
* Need a .def file for OS/2
*/
#ifndef ServerTarget
#define ServerTarget(server,subdirs,objects,libs,syslibs) @@\
ServerTargetWithFlags(server,subdirs,objects,libs,syslibs server.def,$(_NOOP_)) @@\
@@\
ProgramTargetName(server): server.def
#endif /* ServerTarget */
/*
* 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.
*/
#ifndef ToolkitMakeStrings
#define ToolkitMakeStrings(files,source,options,depends,dest) @@\
MAKESTRS = $(CONFIGSRC)/util/makestrs @@\
MAKESTRS1 = /makestrs.exe @@\
@@\
ProgramTargetName($(MAKESTRS)): $(MAKESTRS).c @@\
ImakeIndir $(CONFIGSRC)/util make SHELL= ProgramTargetName(makestrs) @@\
ImakeHelper 7 $(CONFIGSRC)/util/makestrs.exe / @@\
@@\
files: ProgramTargetName($(MAKESTRS)) source depends @@\
RemoveFiles(files) @@\
RunProgram(MAKESTRS1,options < source > dest) @@\
@@\
AllTarget(files) @@\
@@\
includes:: files @@\
@@\
depend:: files @@\
@@\
clean:: @@\
RemoveFiles(files)
#endif /* ToolkitMakeStrings */
/*#define CppSedMagic SedMagic*/
#define CppSedMagic sed -e '/^# *[0-9][0-9]* *.*$$/d' -e 's/^XCOMM/#/g' -e 's/^XCOMM[^a-zA-Z0-9_]/#/g'
#ifndef InstallNamedTargetNoClobber
#define InstallNamedTargetNoClobber(step,srcname,flags,dest,dstname) @@\
step:: srcname @@\
MakeDir($(DESTDIR)dest) @@\
if not exist $(subst /,\,$(DESTDIR)dest)\dstname $(INSTALL) $(INSTALLFLAGS) flags srcname $(DESTDIR)dest/dstname
#endif /* InstallNamedTargetNoClobber */
#if CompressManPages
#ifndef InstallManPageLong
#define InstallManPageLong(file,destdir,dest) @@\
install.man:: file.man @@\
MakeDir($(DESTDIR)destdir) @@\
ImakeHelper 12 file $(DESTDIR)destdir dest
#endif
#ifndef InstallManPageAliases
#define InstallManPageAliases(file,destdir,aliases) @@\
install.man:: @@\
MakeDir($(DESTDIR)destdir) @@\
for %i in (aliases) do $(INSTALL) $(DESTDIR)destdir/file.gz $(DESTDIR)destdir/%i.gz
#endif
#ifndef InstallGenManPageLong
#define InstallGenManPageLong(file,destdir,dest,suffix) @@\
install.man:: file.man @@\
MakeDir($(DESTDIR)destdir) @@\
ImakeHelper 12 file $(DESTDIR)destdir dest
#endif
#ifndef InstallMultipleMan
#define InstallMultipleMan(list,dest) @@\
install.man:: list @@\
MakeDir($(DESTDIR)dest) @@\
for %i in (list) do ImakeHelper 12 %i $(DESTDIR)dest %i
#endif
#else /* CompressManPages */
#ifndef InstallManPageLong
#define InstallManPageLong(file,destdir,dest) @@\
install.man:: file.man @@\
MakeDir($(DESTDIR)destdir) @@\
ImakeHelper 10 file $(DESTDIR)destdir dest $(MANSUFFIX)
#endif
#ifndef InstallManPageAliases
#define InstallManPageAliases(file,destdir,aliases) @@\
install.man:: @@\
MakeDir($(DESTDIR)destdir) @@\
for %i in (aliases) do $(INSTALL) $(DESTDIR)destdir/file.$(MANSUFFIX) $(DESTDIR)destdir/%i.$(MANSUFFIX)
#endif
#ifndef InstallGenManPageLong
#define InstallGenManPageLong(file,destdir,dest,suffix) @@\
install.man:: file.man @@\
MakeDir($(DESTDIR)destdir) @@\
ImakeHelper 10 file $(DESTDIR)destdir dest suffix
#endif
#ifndef InstallMultipleMan
#define InstallMultipleMan(list,dest) @@\
install.man:: list @@\
MakeDir($(DESTDIR)dest) @@\
for %i in (list) do ImakeHelper 10 %i $(DESTDIR)dest %i $(MANSUFFIX)
#endif
#endif
#ifndef NormalLintTarget
#define NormalLintTarget(srclist)
#endif /* NormalLintTarget */
#ifndef MakeDirectories
#define MakeDirectories(step,dirs) @@\
step:: @@\
-for %i in (dirs) do $(MKDIRHIER) $(DESTDIR)%i
#endif /* MakeDirectories */
#ifndef YaccFile
#define YaccFile(file,flags) @@\
depend:: file.c @@\
@@\
file.h file.c: file.y @@\
$(YACC) flags file.y @@\
$(MV) y.tab.c file.c @@\
@if exist y.tab.h $(MV) y.tab.h file.h @@\
@@\
clean:: @@\
RemoveFiles(y.tab.c y.tab.h file.h file.c)
#endif /* YaccFile */
#ifndef StaticLibrary
#define StaticLibrary(libpath,libname) Concat4(libpath,/,libname,_s.a)
#endif
#ifndef MakeXkbDir
#define MakeXkbDir(basedir,subdir) @@\
all:: Concat(subdir,.dir) @@\
@@\
Concat(subdir,.dir): @@\
$(XKBCOMPCMD) -lfhlpR -o Concat(subdir,.dir) * @@\
@@\
InstallTarget(install,Concat(subdir,.dir),$(INSTDATFLAGS),basedir)
#endif
/* This is to replace an ugly hack in /xc/nls/XLC_LOCALE */
/* the corresponding Imake.rules rule would be:
define LinkFileSpecial(gotodir,tofile,fromfile) @@\
@MakeFlagsToShellFlags(i,set +e); \ @@\
cd dir && (set -x; RemoveFile(tofile); $(LN) fromfile tofile)
*/
#ifndef LinkFileSpecial
#define LinkFileSpecial(gotodir,tofile,fromfile) @@\
ImakeHelper 13 gotodir fromfile tofile
#endif
#ifndef LinkBuildBinary
#define LinkBuildBinary(binary) @@\
all:: $(BUILDBINDIR)/binary binary @@\
@@\
$(BUILDBINDIR)/binary: binary @@\
ImakeHelper 13 $(BUILDBINDIR) $(BUILDBINTOP)/$(CURRENT_DIR)/binary binary @@\
$(CP) binary /
#endif /* LinkBuildBinary */