pragma Source_File_Name (ada_main, Spec_File_Name => "b~gnatmake.ads");
pragma Source_File_Name (ada_main, Body_File_Name => "b~gnatmake.adb");

package body ada_main is
   pragma Warnings (Off);

   procedure Do_Finalize;
   pragma Import (C, Do_Finalize, "system__standard_library__adafinal");

   procedure adainit is
      E063 : Boolean; pragma Import (Ada, E063, "gnat__strings_E");
      E004 : Boolean; pragma Import (Ada, E004, "system__standard_library_E");
      E008 : Boolean; pragma Import (Ada, E008, "system__secondary_stack_E");
      E021 : Boolean; pragma Import (Ada, E021, "ada__exceptions_E");
      E038 : Boolean; pragma Import (Ada, E038, "system__exceptions_E");
      E013 : Boolean; pragma Import (Ada, E013, "system__soft_links_E");
      E028 : Boolean; pragma Import (Ada, E028, "system__exception_table_E");
      E192 : Boolean; pragma Import (Ada, E192, "ada__io_exceptions_E");
      E168 : Boolean; pragma Import (Ada, E168, "ada__strings_E");
      E187 : Boolean; pragma Import (Ada, E187, "ada__tags_E");
      E185 : Boolean; pragma Import (Ada, E185, "ada__streams_E");
      E026 : Boolean; pragma Import (Ada, E026, "system__assertions_E");
      E184 : Boolean; pragma Import (Ada, E184, "system__finalization_root_E");
      E170 : Boolean; pragma Import (Ada, E170, "ada__strings__maps_E");
      E174 : Boolean; pragma Import (Ada, E174, "ada__strings__maps__constants_E");
      E189 : Boolean; pragma Import (Ada, E189, "system__finalization_implementation_E");
      E182 : Boolean; pragma Import (Ada, E182, "ada__finalization_E");
      E180 : Boolean; pragma Import (Ada, E180, "ada__finalization__list_controller_E");
      E163 : Boolean; pragma Import (Ada, E163, "gnat__directory_operations_E");
      E002 : Boolean; pragma Import (Ada, E002, "gnatmake_E");
      E006 : Boolean; pragma Import (Ada, E006, "gnatvsn_E");
      E194 : Boolean; pragma Import (Ada, E194, "makeusg_E");
      E161 : Boolean; pragma Import (Ada, E161, "sfn_scan_E");
      E065 : Boolean; pragma Import (Ada, E065, "types_E");
      E110 : Boolean; pragma Import (Ada, E110, "binderr_E");
      E048 : Boolean; pragma Import (Ada, E048, "butil_E");
      E103 : Boolean; pragma Import (Ada, E103, "casing_E");
      E116 : Boolean; pragma Import (Ada, E116, "elists_E");
      E089 : Boolean; pragma Import (Ada, E089, "fmap_E");
      E085 : Boolean; pragma Import (Ada, E085, "fname_E");
      E155 : Boolean; pragma Import (Ada, E155, "fname__sf_E");
      E157 : Boolean; pragma Import (Ada, E157, "fname__uf_E");
      E118 : Boolean; pragma Import (Ada, E118, "nlists_E");
      E075 : Boolean; pragma Import (Ada, E075, "opt_E");
      E105 : Boolean; pragma Import (Ada, E105, "csets_E");
      E087 : Boolean; pragma Import (Ada, E087, "osint_E");
      E224 : Boolean; pragma Import (Ada, E224, "mlib_E");
      E228 : Boolean; pragma Import (Ada, E228, "mlib__fil_E");
      E226 : Boolean; pragma Import (Ada, E226, "mlib__utl_E");
      E242 : Boolean; pragma Import (Ada, E242, "osint__m_E");
      E093 : Boolean; pragma Import (Ada, E093, "sdefault_E");
      E134 : Boolean; pragma Import (Ada, E134, "snames_E");
      E138 : Boolean; pragma Import (Ada, E138, "stringt_E");
      E151 : Boolean; pragma Import (Ada, E151, "styleg_E");
      E214 : Boolean; pragma Import (Ada, E214, "errutil_E");
      E144 : Boolean; pragma Import (Ada, E144, "scng_E");
      E147 : Boolean; pragma Import (Ada, E147, "stylesw_E");
      E238 : Boolean; pragma Import (Ada, E238, "switch_E");
      E258 : Boolean; pragma Import (Ada, E258, "switch__m_E");
      E218 : Boolean; pragma Import (Ada, E218, "targparm_E");
      E210 : Boolean; pragma Import (Ada, E210, "tempdir_E");
      E071 : Boolean; pragma Import (Ada, E071, "tree_io_E");
      E046 : Boolean; pragma Import (Ada, E046, "ali_E");
      E108 : Boolean; pragma Import (Ada, E108, "ali__util_E");
      E216 : Boolean; pragma Import (Ada, E216, "erroutc_E");
      E112 : Boolean; pragma Import (Ada, E112, "lib_E");
      E042 : Boolean; pragma Import (Ada, E042, "make_E");
      E051 : Boolean; pragma Import (Ada, E051, "namet_E");
      E126 : Boolean; pragma Import (Ada, E126, "sinput_E");
      E153 : Boolean; pragma Import (Ada, E153, "sinput__c_E");
      E122 : Boolean; pragma Import (Ada, E122, "uintp_E");
      E145 : Boolean; pragma Import (Ada, E145, "err_vars_E");
      E140 : Boolean; pragma Import (Ada, E140, "uname_E");
      E124 : Boolean; pragma Import (Ada, E124, "urealp_E");
      E130 : Boolean; pragma Import (Ada, E130, "einfo_E");
      E142 : Boolean; pragma Import (Ada, E142, "scans_E");
      E200 : Boolean; pragma Import (Ada, E200, "prj_E");
      E198 : Boolean; pragma Import (Ada, E198, "makeutl_E");
      E232 : Boolean; pragma Import (Ada, E232, "mlib__prj_E");
      E230 : Boolean; pragma Import (Ada, E230, "mlib__tgt_E");
      E202 : Boolean; pragma Import (Ada, E202, "prj__attr_E");
      E204 : Boolean; pragma Import (Ada, E204, "prj__com_E");
      E206 : Boolean; pragma Import (Ada, E206, "prj__env_E");
      E212 : Boolean; pragma Import (Ada, E212, "prj__err_E");
      E220 : Boolean; pragma Import (Ada, E220, "prj__ext_E");
      E256 : Boolean; pragma Import (Ada, E256, "prj__nmsc_E");
      E244 : Boolean; pragma Import (Ada, E244, "prj__pars_E");
      E252 : Boolean; pragma Import (Ada, E252, "prj__tree_E");
      E248 : Boolean; pragma Import (Ada, E248, "prj__dect_E");
      E246 : Boolean; pragma Import (Ada, E246, "prj__part_E");
      E254 : Boolean; pragma Import (Ada, E254, "prj__proc_E");
      E250 : Boolean; pragma Import (Ada, E250, "prj__strt_E");
      E222 : Boolean; pragma Import (Ada, E222, "prj__util_E");
      E120 : Boolean; pragma Import (Ada, E120, "sinfo_E");
      E114 : Boolean; pragma Import (Ada, E114, "atree_E");
      E236 : Boolean; pragma Import (Ada, E236, "sinput__p_E");
      E196 : Boolean; pragma Import (Ada, E196, "usage_E");
      E073 : Boolean; pragma Import (Ada, E073, "widechar_E");
      E132 : Boolean; pragma Import (Ada, E132, "stand_E");

      Restrictions : constant String :=
        "nnvvnnnvvnnvnnvnvvvvnvvvvnvnnnnvnnnvnvvnnnnnnvvvvnnnvvnv" &
        "nnnnnnnnnnnnnn" & ASCII.Nul;

      Interrupt_States : constant String :=
        "";

      procedure Set_Globals
        (Main_Priority            : Integer;
         Time_Slice_Value         : Integer;
         WC_Encoding              : Character;
         Locking_Policy           : Character;
         Queuing_Policy           : Character;
         Task_Dispatching_Policy  : Character;
         Restrictions             : System.Address;
         Interrupt_States         : System.Address;
         Num_Interrupt_States     : Integer;
         Unreserve_All_Interrupts : Integer;
         Exception_Tracebacks     : Integer;
         Zero_Cost_Exceptions     : Integer);
      pragma Import (C, Set_Globals, "__gnat_set_globals");

      procedure Install_Handler;
      pragma Import (C, Install_Handler, "__gnat_install_handler");

      Handler_Installed : Integer;
      pragma Import (C, Handler_Installed, "__gnat_handler_installed");
   begin
      Set_Globals
        (Main_Priority            => -1,
         Time_Slice_Value         => -1,
         WC_Encoding              => 'b',
         Locking_Policy           => ' ',
         Queuing_Policy           => ' ',
         Task_Dispatching_Policy  => ' ',
         Restrictions             => Restrictions'Address,
         Interrupt_States         => Interrupt_States'Address,
         Num_Interrupt_States     => 0,
         Unreserve_All_Interrupts => 0,
         Exception_Tracebacks     => 0,
         Zero_Cost_Exceptions     => 0);

      if Handler_Installed = 0 then
         Install_Handler;
      end if;

      E063 := True;
      System.Standard_Library'Elab_Spec;
      Ada.Exceptions'Elab_Spec;
      System.Exceptions'Elab_Spec;
      E038 := True;
      System.Soft_Links'Elab_Body;
      E013 := True;
      System.Secondary_Stack'Elab_Body;
      E008 := True;
      System.Exception_Table'Elab_Body;
      E028 := True;
      Ada.Io_Exceptions'Elab_Spec;
      E192 := True;
      Ada.Strings'Elab_Spec;
      E168 := True;
      Ada.Tags'Elab_Spec;
      Ada.Tags'Elab_Body;
      E187 := True;
      Ada.Streams'Elab_Spec;
      E185 := True;
      System.Assertions'Elab_Spec;
      E026 := True;
      System.Finalization_Root'Elab_Spec;
      E184 := True;
      E004 := True;
      Ada.Exceptions'Elab_Body;
      E021 := True;
      Ada.Strings.Maps'Elab_Spec;
      E170 := True;
      Ada.Strings.Maps.Constants'Elab_Spec;
      E174 := True;
      System.Finalization_Implementation'Elab_Spec;
      System.Finalization_Implementation'Elab_Body;
      E189 := True;
      Ada.Finalization'Elab_Spec;
      E182 := True;
      Ada.Finalization.List_Controller'Elab_Spec;
      E180 := True;
      Gnat.Directory_Operations'Elab_Spec;
      E163 := True;
      E006 := True;
      Sfn_Scan'Elab_Spec;
      E161 := True;
      Types'Elab_Spec;
      E065 := True;
      Opt'Elab_Spec;
      Csets'Elab_Body;
      E105 := True;
      Osint'Elab_Spec;
      Osint.M'Elab_Body;
      E242 := True;
      Sdefault'Elab_Body;
      E093 := True;
      E147 := True;
      Switch'Elab_Spec;
      E238 := True;
      Targparm'Elab_Spec;
      Tree_Io'Elab_Spec;
      E071 := True;
      E075 := True;
      Switch.M'Elab_Body;
      E258 := True;
      Elists'Elab_Body;
      E116 := True;
      ALI'ELAB_SPEC;
      ALI.UTIL'ELAB_SPEC;
      Erroutc'Elab_Spec;
      Lib'Elab_Spec;
      Make'Elab_Spec;
      E002 := True;
      Namet'Elab_Spec;
      ALI'ELAB_BODY;
      E046 := True;
      Tempdir'Elab_Body;
      E210 := True;
      Targparm'Elab_Body;
      E218 := True;
      Stringt'Elab_Body;
      E138 := True;
      Snames'Elab_Body;
      E134 := True;
      Mlib'Elab_Body;
      E224 := True;
      Osint'Elab_Body;
      E087 := True;
      E155 := True;
      Fname'Elab_Body;
      E085 := True;
      Fmap'Elab_Body;
      E089 := True;
      E048 := True;
      E110 := True;
      Sinput'Elab_Spec;
      E126 := True;
      E153 := True;
      Uintp'Elab_Spec;
      Uintp'Elab_Body;
      E122 := True;
      Err_Vars'Elab_Spec;
      E145 := True;
      E216 := True;
      Urealp'Elab_Body;
      E124 := True;
      Scans'Elab_Spec;
      E142 := True;
      ALI.UTIL'ELAB_BODY;
      E108 := True;
      E214 := True;
      E151 := True;
      Prj'Elab_Spec;
      E230 := True;
      E226 := True;
      E228 := True;
      Prj.Attr'Elab_Spec;
      E202 := True;
      Prj.Com'Elab_Spec;
      E204 := True;
      Prj.Env'Elab_Body;
      E206 := True;
      Prj.Err'Elab_Spec;
      E212 := True;
      Prj'Elab_Body;
      E200 := True;
      Prj.Ext'Elab_Body;
      E220 := True;
      Prj.Tree'Elab_Spec;
      Prj.Tree'Elab_Body;
      E252 := True;
      Prj.Proc'Elab_Body;
      E254 := True;
      E244 := True;
      Prj.Strt'Elab_Body;
      E250 := True;
      E248 := True;
      E222 := True;
      Makeutl'Elab_Body;
      E198 := True;
      Atree'Elab_Spec;
      Atree'Elab_Body;
      E114 := True;
      E120 := True;
      E140 := True;
      Nlists'Elab_Body;
      E118 := True;
      E236 := True;
      Prj.Part'Elab_Body;
      E246 := True;
      Prj.Nmsc'Elab_Body;
      E256 := True;
      Mlib.Prj'Elab_Body;
      E232 := True;
      Make'Elab_Body;
      E042 := True;
      E196 := True;
      E194 := True;
      E073 := True;
      E051 := True;
      E144 := True;
      Fname.Uf'Elab_Body;
      E157 := True;
      E103 := True;
      E132 := True;
      E130 := True;
      E112 := True;
   end adainit;

   procedure adafinal is
   begin
      Do_Finalize;
   end adafinal;

   function main
     (argc : Integer;
      argv : System.Address;
      envp : System.Address)
      return Integer
   is
      procedure initialize;
      pragma Import (C, initialize, "__gnat_initialize");

      procedure finalize;
      pragma Import (C, finalize, "__gnat_finalize");


      procedure Ada_Main_Program;
      pragma Import (Ada, Ada_Main_Program, "_ada_gnatmake");

      Ensure_Reference : System.Address := Ada_Main_Program_Name'Address;

   begin
      gnat_argc := argc;
      gnat_argv := argv;
      gnat_envp := envp;

      Initialize;
      adainit;
      Break_Start;
      Ada_Main_Program;
      Do_Finalize;
      Finalize;
      return (gnat_exit_status);
   end;

--  BEGIN Object file/option list
   --   .\ada.o
   --   .\a-charac.o
   --   .\a-chlat1.o
   --   .\gnat.o
   --   .\g-hesora.o
   --   .\g-string.o
   --   .\interfac.o
   --   .\system.o
   --   .\s-addope.o
   --   .\s-casuti.o
   --   .\g-casuti.o
   --   .\s-crc32.o
   --   .\s-htable.o
   --   .\g-htable.o
   --   .\s-maccod.o
   --   .\s-parame.o
   --   .\s-crtl.o
   --   .\i-cstrea.o
   --   .\s-purexc.o
   --   .\s-stoele.o
   --   .\s-carun8.o
   --   .\s-imgint.o
   --   .\s-imgenu.o
   --   .\a-comlin.o
   --   .\s-stache.o
   --   .\s-strops.o
   --   .\s-sopco3.o
   --   .\s-sopco4.o
   --   .\s-sopco5.o
   --   .\s-traceb.o
   --   .\s-traent.o
   --   .\s-except.o
   --   .\s-soflin.o
   --   .\a-elchha.o
   --   .\s-secsta.o
   --   .\s-exctab.o
   --   .\a-ioexce.o
   --   .\a-string.o
   --   .\a-tags.o
   --   .\a-stream.o
   --   .\g-os_lib.o
   --   .\s-assert.o
   --   .\s-finroo.o
   --   .\s-memory.o
   --   .\s-mastop.o
   --   .\s-stalib.o
   --   .\s-unstyp.o
   --   .\a-except.o
   --   .\s-bitops.o
   --   .\a-strmap.o
   --   .\a-stmaco.o
   --   .\a-chahan.o
   --   .\a-strsea.o
   --   .\a-strfix.o
   --   .\s-stratt.o
   --   .\s-finimp.o
   --   .\a-finali.o
   --   .\a-filico.o
   --   .\g-dirope.o
   --   .\s-wchcon.o
   --   .\s-wchjis.o
   --   .\s-wchcnv.o
   --   .\alloc.o
   --   .\debug.o
   --   .\gnatvsn.o
   --   .\hostparm.o
   --   .\krunch.o
   --   .\rident.o
   --   .\sfn_scan.o
   --   .\types.o
   --   .\csets.o
   --   .\osint-m.o
   --   .\output.o
   --   .\sdefault.o
   --   .\stylesw.o
   --   .\switch.o
   --   .\tree_io.o
   --   .\opt.o
   --   .\table.o
   --   .\switch-m.o
   --   .\elists.o
   --   .\gnatmake.o
   --   .\ali.o
   --   .\tempdir.o
   --   .\targparm.o
   --   .\stringt.o
   --   .\snames.o
   --   .\mlib.o
   --   .\osint.o
   --   .\fname-sf.o
   --   .\fname.o
   --   .\fmap.o
   --   .\butil.o
   --   .\binderr.o
   --   .\sinput.o
   --   .\sinput-c.o
   --   .\uintp.o
   --   .\err_vars.o
   --   .\erroutc.o
   --   .\urealp.o
   --   .\scans.o
   --   .\ali-util.o
   --   .\errutil.o
   --   .\styleg.o
   --   .\mlib-tgt.o
   --   .\mlib-utl.o
   --   .\mlib-fil.o
   --   .\prj-attr.o
   --   .\prj-com.o
   --   .\prj-env.o
   --   .\prj-err.o
   --   .\prj.o
   --   .\prj-ext.o
   --   .\prj-tree.o
   --   .\prj-proc.o
   --   .\prj-pars.o
   --   .\prj-strt.o
   --   .\prj-dect.o
   --   .\prj-util.o
   --   .\makeutl.o
   --   .\atree.o
   --   .\sinfo.o
   --   .\uname.o
   --   .\nlists.o
   --   .\sinput-p.o
   --   .\prj-part.o
   --   .\prj-nmsc.o
   --   .\mlib-prj.o
   --   .\make.o
   --   .\usage.o
   --   .\makeusg.o
   --   .\widechar.o
   --   .\namet.o
   --   .\scng.o
   --   .\fname-uf.o
   --   .\casing.o
   --   .\stand.o
   --   .\einfo.o
   --   .\lib.o
   --   -L.\
   --   -LC:\gnatpro\bindings\GNATCOM\bindings\
   --   -LC:\gnatpro\adagraph\
   --   -LC:\gnatpro\cs110\
   --   -LC:\gnatpro\feldman\
   --   -Lc:\GNATPRO\lib\gcc-lib\pentium-mingw32msv\3.2.3\adalib\
   --   -LC:\GNATPRO\Bindings\Win32Ada\
   --   -LC:\GNATPRO\lib\win32\
   --   -Lc:\gnatpro\bindings\gnatcom\
   --   -Lc:\gnatpro\adagraph\
   --   -static
   --   -lgnat
   --   -Wl,--stack=0x2000000
--  END Object file/option list   

end ada_main;
