blob: f3491e76d6e405f16df9c86fc8725b190abf57f4 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<head>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
<TITLE></TITLE>
<META NAME="GENERATOR" CONTENT="StarOffice 7 (Win32)">
<META NAME="AUTHOR" CONTENT="Ingo Schmidt">
<META NAME="CREATED" CONTENT="20020419;13085671">
<META NAME="CHANGED" CONTENT="20040205;14595847">
</head>
<body LANG="de-DE" DIR="LTR">
<P ALIGN=LEFT STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><FONT SIZE=6>Definition
of a File </FONT></FONT>
</P>
<P><BR><BR>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">The
keyword for a file definition is <B>File</B>. A global ID of a file
should begin with <B>gid_File_ </B>. Files have to be assigned to
modules in the definition block of the module. If a file is not
assigned to any module, it is automatically assigned to the root
module by the scplinker. A typical definition of a file in the scp
projects looks like:</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">File
gid_File_Lib_Dbp<BR>BIN_FILE_BODY;<BR>Name = LIBNAME(dbp);<BR>Dir =
gid_Dir_Program;<BR>Styles = (PACKED, UNO_COMPONENT);<BR>RegistryID =
gid_Starregistry_Applicat_Rdb;<BR>End</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">This
definition describes the library dbp. The macro LIBNAME is defined in
the included file macros.inc. You find there some very important
macro definitions:</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">#ifdef
UNX<BR>#define LIBNAME(name)
STRING(CONCAT5(lib,name,OFFICEUPD,DLLSUFFIX,.so))<BR>#define
LIBSHORTNAME(name) STRING(CONCAT4(lib,name,DLLSUFFIX,.so))<BR>#define
LIBVERYSHORTNAME(name) STRING(CONCAT3(lib,name,.so))<BR>#define
FILTER_LIBNAME(name) LIBNAME(name)<BR>#define EXENAME(name)
STRING(name)<BR>#define PROFILENAME(name)
STRING(CONCAT2(name,rc))<BR>#else<BR>#define LIBNAME(name)
STRING(CONCAT4(name,OFFICEUPD,DLLSUFFIX,.dll))<BR>#define
LIBSHORTNAME(name) STRING(CONCAT3(name,DLLSUFFIX,.dll))<BR>#define
LIBVERYSHORTNAME(name) STRING(CONCAT2(name,.dll))<BR>#define
FILTER_LIBNAME(name) LIBNAME(name)<BR>#define EXENAME(name)
STRING(CONCAT2(name,.exe))<BR>#define PROFILENAME(name)
STRING(CONCAT2(name,.ini))<BR>#endif</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">You
can see, that for many different kinds of names exist different
macros. <B>LIBNAME(dbp)</B> will be expanded for Solaris-Sparc in a
src641 to <B>libdbp641ss.so</B>, but for Windows to <B>dbp641mi.dll</B>.
If there is a language dependent name, like for resource files, there
are other macro definitions: </FONT>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">File
gid_File_Res_Dba<BR>TXT_FILE_BODY;<BR>RESFILE_ALL_LANG(dba);<BR>Dir =
gid_Dir_Resource;<BR>Styles = (PACKED);</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">End</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">RESFILE_ALL_LANG
is also defined in macros.inc. You find there:</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">#define
RESFILE_ALL_LANG(name) \<BR>Name (01) = RESFILENAME(name,01); \<BR>Name
(03) = RESFILENAME(name,03); \<BR>Name (07) = RESFILENAME(name,07);
\<BR>Name (30) = RESFILENAME(name,30); \<BR>Name (31) =
RESFILENAME(name,31); \<BR>Name (33) = RESFILENAME(name,33); \<BR>Name
(34) = RESFILENAME(name,34); \<BR>Name (35) = RESFILENAME(name,35);
\<BR>Name (37) = RESFILENAME(name,37); \<BR>Name (39) =
RESFILENAME(name,39); \<BR>Name (45) = RESFILENAME(name,45); \<BR>Name
(46) = RESFILENAME(name,46); \<BR>Name (48) = RESFILENAME(name,48);
\<BR>Name (49) = RESFILENAME(name,49); \<BR>Name (81) =
RESFILENAME(name,81); \<BR>Name (82) = RESFILENAME(name,82); \<BR>Name
(86) = RESFILENAME(name,86); \<BR>Name (88) = RESFILENAME(name,88);
\<BR>Name (90) = RESFILENAME(name,90); \<BR>Name (96) =
RESFILENAME(name,96); \<BR>Name (99) = RESFILENAME(name,99)</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">and
also RESFILENAME is a macro defined in macros.inc:</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">#define
RESFILENAME(name,lang) STRING(CONCAT4(name,OFFICEUPD,lang,.res))</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">At
the moment there are many macros for different file names, that is
would be too much, to desribe here. Take a look into the macros.inc
file, and you will find the macro you need. </FONT>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Back
to the definition of File gid_File_Lib_Dbp. Another entry in the
definition block defines the directory. In this case the library
shall be intalled into gid_Dir_Program. As you can see, this is also
a global ID, which has to be defined in the script before the
definition of this file. You see, everything in the setup script is
defined in these definition blocks. </FONT>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">The
next two lines in the definition of gid_File_Lib_Dbp are important
for registering the services inside this library to the internal
registry:</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">Styles
= (PACKED, UNO_COMPONENT);<BR>RegistryID =
gid_Starregistry_Applicat_Rdb;<BR></FONT><BR><BR>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">The
second line describes, in which internal registry file, the service
shall be registered. This is the global ID
gid_Starregistry_Applicat_Rdb, which again has to be defined in this
setup script, before the definition of this file. That there is a
service to register, shows the style UNO_COMPONENT. All libraries,
that want to register a service need this flag. </FONT>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif">At
the moment there are many flags for files and very often new flags
are created or some that are no longer needed are deleted. Here a
short description of the available flags:</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>PACKED</B>:
This is the mostly used flag. It says, that the file is zipped into
the file f_xyz in the installation set.</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>ARCHIVE</B>:
This is important for files, that are already zipped in the output
tree. In the packing process, these files must not be zipped once
more, therefore they have to get the flag ARCHIVE.</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>UNO_COMPONENT</B>:
This flag is important for all libraries, that want to register a
service. If this flag is set, you also have to define the RegistryID,
as shown in the example above.</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>FONT</B>:
This flag marks all font files.</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>DONT_DELETE</B>:
This flag shows, that the file is not deleted, if the Office
installation is removed. This is for example important for all fonts.
</FONT>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>FONT_WARN_IF_EXISTS</B>:
Also a typical font flag. If there is already a font defined with the
same name, a dialog box must appear during setup, to ask the user,
whether he wants to overwrite the existing font. </FONT>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>OVERWRITE</B>:
Overwrite the file, if it already exists, without warning. For
example the Shellnew files have this flag.</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>DONT_OVERWRITE</B>:
Do not overwrite the file, if it already exists, for example in one
of the Windows system directories.</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>DELETE_ONLY</B>:
This is important for a deinstallation of the Office. This file
definition block describes a file, that does not exist during setup,
but is created by the Office. This flag shows, that this new created
file, shall also be deleted during the deinstallation. </FONT>
</P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>CHECK_TIMESTAMP</B>:
This flag is also only important for the deinstallation and the
DELETE_ONLY flag. If this flag is set, the installation date is also
controlled before deleting the file.</FONT></P>
<P STYLE="font-weight: medium"><FONT FACE="Verdana, sans-serif"><B>PATCH</B>:
Files containing this flag are included into a patch product. For more information please look at
<A HREF="understanding_the_patch_flag.html">Understanding the PATCH flag</A>.
</P>
<P STYLE="font-weight: medium"><BR><BR>
</P>
</body>
</HTML>