Page 216 - DCAP507_SYSTEM_SOFTWARE
P. 216
System Software
Notes The most basic autoconf based build systems won't need to know any of these values, at least
directly. Some other tools, such as libtool, will require discovery of canonic systems by
themselves. Since adding these macros unconditionally adds direct and indirect code to the
configure script (and a dependency on the two support files config.sub and config.guess); it is
recommended not to call them unconditionally.
It is actually quite easy to decide whether canonic system definitions are needed or not. We just
have to look for the use of the related actor variable. For instance, if the configure.ac script uses
the $build variable, we would need to call AC_CANONIC_BUILD to discover its value. If the
system definition variables are used in a macro instead, we should use the AC_REQUIRE macro
to ensure that they are executed before entering. Don't fear calling them in more than one place.
One common mistake is to "go all the way" and always use the AC_CANONIC_TARGET macro,
or its misnamed predecessor AC_CANONIC_SYSTEM. This is particularly a problem; because
most of the software will not have a target actor at all. This actor is only meaningful when the
software that is being built manages data that is specific to a different system than the one it is
being executed on (the host system).
Notes In practice, the only places where the target actor is meaningful are to the parts of
a compile toolchain: assemblers, linkers, compilers, debuggers, profilers, analysers, etc.
For the rest of the software, the presence of an extraneous – target option to configure is
likely to just be confusing. Especially for software that processes the output of the script to
identify some information about the package being built.
14.1 Syntax Specification
Advanced Query Syntax (AQS) is the default query syntax used by Windows Search to query the
index and to refine and narrow search parameters. AQS is employed by developers to build
queries programmatically (and by users to narrow their search parameters). Canonic AQS was
introduced in Windows 7 and must be used in Windows 7 and later to programmatically generate
AQS queries.
Canonic syntax was introduced for keywords in Windows 7. An example of a query with a
canonic property is System.Message.FromAddress:=me@microsoft.com. When coding queries
in applications running on Windows 7 and later, you must use canonic syntax to
programmatically generate AQS queries. If you do not use canonic syntax and your application
is deployed in a locale or UI language different from the language in the application code, your
queries will not be interpreted correctly.
The conventions for canonic keyword syntax are as follows:
The canonic syntax for a property is its canonic name, such as System.Photo.LightSource.
Canonic names are not case sensitive.
The canonic syntax for the Boolean operators consists of the keywords AND, OR, and
NOT, in all uppercase.
The operators <, >, =, and so forth, are not localized and are thus also part of the canonic
syntax.
If a property P has enumerated values or ranges named N1 through Nk, the canonic syntax
for the Ith value or range is the canonic name for P, followed by the character #, followed
by NI, as illustrated in the following example:
System.Photo.LightSource#Daylight, System.Photo.LightSource#StandardA, and so forth.
210 LOVELY PROFESSIONAL UNIVERSITY