acpica/source/compiler
Robert Moore 858f7beecf iASL: Fix some VarPackage issues.
1) properly handle constants like One,Ones,Zero. Do not make a
var_package when these are used as a package length.
2) Allow VAR_PACKAGE (in addition to PACKAGE) opcode when validating
object types for predifined names.
2011-09-16 13:11:24 -07:00
..
aslanalyze.c iASL: Check if _REG has a corresponding Operation Region. 2011-03-28 14:34:12 -07:00
aslbtypes.c iASL: Split large file aslanalyze.c into three files. 2011-02-01 13:10:47 -08:00
aslcodegen.c Update all ACPICA copyrights and signons to 2011. 2011-01-03 14:02:13 -08:00
aslcompile.c iASL: Add error message for root parse node failure. 2011-08-19 08:01:42 -07:00
aslcompiler.h iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslcompiler.l iASL: Add predefined macros __LINE__, __FILE__, and __DATE__ 2011-01-13 12:08:26 -08:00
aslcompiler.y iASL: Changes to cleanup support for Berkeley yacc. 2011-04-15 10:03:35 -07:00
asldefine.h iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslerror.c iASL: Update yyerrror/AslCompilerError for "const" errors. 2011-06-01 14:00:02 -07:00
aslfiles.c iASL: Emit statistics for all optional output files. 2011-08-23 15:12:26 -07:00
aslfold.c Update all ACPICA copyrights and signons to 2011. 2011-01-03 14:02:13 -08:00
aslglobal.h iASL/DTC: Add -G option to compile custom/generic tables. 2011-09-09 12:48:01 -07:00
asllength.c Update all ACPICA copyrights and signons to 2011. 2011-01-03 14:02:13 -08:00
asllisting.c iASL: Fix to seek to zero on AML file for listings. 2011-08-25 12:52:17 -07:00
aslload.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
asllookup.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslmain.c iASL/DTC: Add -G option to compile custom/generic tables. 2011-09-09 12:48:01 -07:00
aslmap.c Update internal address SpaceID for DataTable regions. 2011-03-25 13:27:50 -07:00
aslmessages.h iASL: Alphabetize error messages, no functional change. 2011-09-02 14:06:20 -07:00
aslopcodes.c iASL: Merge duplicate UUID support code into single module. 2011-01-11 14:44:08 -08:00
asloperands.c iASL: Fix some VarPackage issues. 2011-09-16 13:11:24 -07:00
aslopt.c Update all ACPICA copyrights and signons to 2011. 2011-01-03 14:02:13 -08:00
aslpredef.c iASL: Fix some VarPackage issues. 2011-09-16 13:11:24 -07:00
aslresource.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslrestype1.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslrestype1i.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslrestype2.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslrestype2d.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslrestype2e.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslrestype2q.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslrestype2w.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslstartup.c Update all ACPICA copyrights and signons to 2011. 2011-01-03 14:02:13 -08:00
aslstubs.c Service Layers: Make multi-thread support configurable. 2011-06-08 09:42:47 -07:00
asltransform.c Update all ACPICA copyrights and signons to 2011. 2011-01-03 14:02:13 -08:00
asltree.c iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
asltypes.h iASL: Check access length for ResourceTag references. 2011-09-02 13:53:35 -07:00
aslutils.c iASL: Emit statistics for all optional output files. 2011-08-23 15:12:26 -07:00
asluuid.c iASL: Merge duplicate UUID support code into single module. 2011-01-11 14:44:08 -08:00
aslwalks.c iASL: Check if _REG has a corresponding Operation Region. 2011-03-28 14:34:12 -07:00
dtcompile.c iASL/DTC: Add -G option to compile custom/generic tables. 2011-09-09 12:48:01 -07:00
dtcompiler.h iASL/DTC: Finish support for expression evaluation. 2011-04-08 12:27:17 -07:00
dtexpress.c iASL/DTC: Finish support for expression evaluation. 2011-04-08 12:27:17 -07:00
dtfield.c iASL/DTC: Do not abort compiler on fatal errors. 2011-03-17 12:24:42 -07:00
dtio.c Disassembler/DTC: Remove () and <> style comments in data tables. 2011-04-08 13:59:07 -07:00
dtparser.l iASL: Changes to cleanup support for Berkeley yacc. 2011-04-15 10:03:35 -07:00
dtparser.y iASL: Changes to cleanup support for Berkeley yacc. 2011-04-15 10:03:35 -07:00
dtsubtable.c iASL/DTC: Update for new grammar features. 2011-03-31 10:08:52 -07:00
dttable.c iASL/DTC: Update for new grammar features. 2011-03-31 10:08:52 -07:00
dttemplate.c iASL: Add * option to generate all template files. 2011-03-17 12:40:17 -07:00
dttemplate.h iASL/DTC: Update template for SLIT table. 2011-03-31 13:15:34 -07:00
dtutils.c iASL/DTC: Update for new grammar features. 2011-03-31 10:08:52 -07:00
readme.txt Source gen instructions 2005-06-29 16:15:45 +00:00

Instructions for integrating iASL compiler into MS VC++ 6.0 environment.

Part 1.  Integration as a custom tool

This procedure adds the iASL compiler as a custom tool that can be used
to compile ASL source files.  The output is sent to the VC output 
window.

a) Select Tools->Customize.

b) Select the "Tools" tab.

c) Scroll down to the bottom of the "Menu Contents" window.  There you
   will see an empty rectangle.  Click in the rectangle to enter a 
   name for this tool.

d) Type "iASL Compiler" in the box and hit enter.  You can now edit
   the other fields for this new custom tool.

e) Enter the following into the fields:

   Command:             C:\Acpi\iasl.exe
   Arguments:           -e "$(FilePath)"
   Initial Directory    "$(FileDir)"
   Use Output Window    <Check this option>

   "Command" must be the path to wherever you copied the compiler.
   "-e" instructs the compiler to produce messages appropriate for VC.
   Quotes around FilePath and FileDir enable spaces in filenames.

f) Select "Close".

These steps will add the compiler to the tools menu as a custom tool.
By enabling "Use Output Window", you can click on error messages in
the output window and the source file and source line will be
automatically displayed by VC.  Also, you can use F4 to step through
the messages and the corresponding source line(s).


Part 2.  Integration into a project build

This procedure creates a project that compiles ASL files to AML.

a) Create a new, empty project and add your .ASL files to the project

b) For all ASL files in the project, specify a custom build (under
Project/Settings/CustomBuild with the following settings (or similar):

Commands:
c:\acpi\libraries\iasl.exe -vs -vi "$(InputPath)"

Output:
$(InputDir)\$(InputPath).aml



Compiler Generation From Source

Generation of the ASL compiler from source code requires these items:


Required Tools
1) The Flex (or Lex) lexical analyzer generator.
2) The Bison (or Yacc) parser generator.
3) An ANSI C compiler.


Required Source Code.

There are three major source code components that are required to 
generate the compiler:

1) The ASL compiler source.
2) The ACPI CA Core Subsystem source.  In particular, the Namespace Manager
     component is used to create an internal ACPI namespace and symbol table,
     and the AML Interpreter is used to evaluate constant expressions.
3) The Common source for all ACPI components.