home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Source / GNU / cctools / as / as.h < prev    next >
Text File  |  1993-09-09  |  3KB  |  97 lines

  1. /* as.h - global header file
  2.    Copyright (C) 1987 Free Software Foundation, Inc.
  3.  
  4. This file is part of GAS, the GNU Assembler.
  5.  
  6. GAS is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GAS is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GAS; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. /*
  21.  * CAPITALISED names are #defined.
  22.  * "lowercaseT" is a typedef of "lowercase" objects.
  23.  * "lowercaseP" is type "pointer to object of type 'lowercase'".
  24.  * "lowercaseS" is typedef struct ... lowercaseS.
  25.  *
  26.  * #define SUSPECT when debugging.
  27.  * If TEST is #defined, then we are testing a module.
  28.  */
  29.  
  30. /* These #defines are for parameters of entire assembler. */
  31.  
  32. /*
  33.  * asserts() from <assert.h> are DISabled when NDEBUG is defined and
  34.  * asserts() from <assert.h> are ENabled  when NDEBUG is undefined.
  35.  * For speed NDEBUG is defined so assert()'s are left out.
  36. #undef NDEBUG
  37.  */
  38. #define NDEBUG
  39.  
  40. /*
  41.  * For speed SUSPECT is undefined.
  42. #define SUSPECT
  43.  */
  44. #undef SUSPECT
  45.  
  46. /* These #imports are for type definitions etc. */
  47. #import <stdio.h>
  48. #import <assert.h>
  49. #import <mach/machine.h>
  50.  
  51. /* These defines are potentially useful */
  52. #undef FALSE
  53. #define FALSE    (0)
  54. #undef TRUE
  55. #define TRUE    (!FALSE)
  56. #define ASSERT    assert
  57.  
  58. #define BAD_CASE(value)                            \
  59. {                                    \
  60.   as_fatal ("Case value %d unexpected at line %d of file \"%s\"\n",    \
  61.        value, __LINE__, __FILE__);                    \
  62. }
  63.  
  64. /* These are assembler-wide concepts */
  65. #ifdef SUSPECT
  66. #define register        /* no registers: helps debugging */
  67. #define know(p) ASSERT(p)    /* know() is less ugly than #ifdef SUSPECT/ */
  68.                 /* assert()/#endif. */
  69. #else
  70. #define know(p)            /* know() checks are no-op.ed */
  71. #endif
  72.  
  73.  
  74. /*
  75.  * main program "as.c" (command arguments etc)
  76.  */
  77.  
  78. /* ['x'] TRUE if "-x" seen. */
  79. extern char flagseen[128];
  80.  
  81. /* name of emitted object file, argument to -o if specified */
  82. extern char *out_file_name;
  83.  
  84. /* TRUE if -force_cpusubtype_ALL is specified */
  85. extern int force_cpusubtype_ALL;
  86.  
  87. /* set to the corresponding cpusubtype if -arch flag is specified */
  88. extern cpu_subtype_t archflag_cpusubtype;
  89.  
  90. /* -I path options for .includes */
  91. struct directory_stack {
  92.     struct directory_stack *next;
  93.     char *fname;
  94. };
  95. extern struct directory_stack include_defaults[];
  96. extern struct directory_stack *include;
  97.