diff options
Diffstat (limited to 'dmake/imacs.c')
-rw-r--r-- | dmake/imacs.c | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/dmake/imacs.c b/dmake/imacs.c deleted file mode 100644 index 04feb0975..000000000 --- a/dmake/imacs.c +++ /dev/null @@ -1,206 +0,0 @@ -/* RCS $Id: imacs.c,v 1.9 2008-03-05 18:29:01 kz Exp $ --- --- SYNOPSIS --- Define default internal macros. --- --- DESCRIPTION --- This file adds to the internal macro tables the set of default --- internal macros, and for those that are accessible internally via --- variables creates these variables, and initializes them to point --- at the default values of these macros. --- --- AUTHOR --- Dennis Vadura, dvadura@dmake.wticorp.com --- --- WWW --- http://dmake.wticorp.com/ --- --- COPYRIGHT --- Copyright (c) 1996,1997 by WTI Corp. All rights reserved. --- --- This program is NOT free software; you can redistribute it and/or --- modify it under the terms of the Software License Agreement Provided --- in the file <distribution-root>/readme/license.txt. --- --- LOG --- Use cvs log to obtain detailed change logs. -*/ - -#include "extern.h" - -static void _set_int_var ANSI((char *, char *, int, int *)); -static void _set_string_var ANSI((char *, char *, int, char **)); -static void _set_bit_var ANSI((char *, char *, int)); - - -PUBLIC void -Make_rules()/* -============== - Parse the strings stored in Rule_tab (from ruletab.c). */ -{ - Parse(NIL(FILE)); -} - - -#define M_FLAG M_DEFAULT | M_EXPANDED - -/* -** Add to the macro table all of the internal macro variables plus -** create secondary variables which will give access to their values -** easily, both when needed and when the macro value is modified. -** The latter is accomplished by providing a flag in the macro and a field -** which gives a pointer to the value if it is a char or string macro value -** and a mask representing the bit of the global flag register that is affected -** by this macro's value. -*/ -PUBLIC void -Create_macro_vars() -{ - static char* switchar; - static char* version; - char swchar[2]; - char buf[20]; - - swchar[0] = Get_switch_char(), swchar[1] = '\0'; - _set_string_var("SWITCHAR", swchar, M_PRECIOUS, &switchar); - if (*swchar == '/') - DirSepStr = "\\"; - else -#if (_MPW) - DirSepStr = ":"; -#elif defined( __EMX__) - /* Use '\' for OS/2 port. */ - DirSepStr = "\\"; -#else - DirSepStr = "/"; -#endif - _set_string_var("DIRSEPSTR", DirSepStr, M_DEFAULT,&DirSepStr); - _set_string_var("DIRBRKSTR", DirBrkStr, M_DEFAULT, &DirBrkStr); - swchar[0] = DEF_ESCAPE_CHAR, swchar[1] = '\0'; - _set_string_var(".ESCAPE_PREFIX", swchar, M_FLAG, &Escape_char); - - /* Each one the following attributes corresponds to a bit of - * Glob_attr. */ - _set_bit_var(".SILENT", "", A_SILENT ); - _set_bit_var(".IGNORE", "", A_IGNORE ); - _set_bit_var(".PRECIOUS", "", A_PRECIOUS); - _set_bit_var(".EPILOG", "", A_EPILOG ); - _set_bit_var(".PROLOG", "", A_PROLOG ); - _set_bit_var(".NOINFER", "", A_NOINFER ); - _set_bit_var(".SEQUENTIAL","",A_SEQ ); - _set_bit_var(".USESHELL", "", A_SHELL ); - /* .SWAP (MSDOS) and .WINPATH (cygwin) share the same bit. */ - _set_bit_var(".SWAP", "", A_SWAP ); - _set_bit_var(".WINPATH", "", A_WINPATH ); - _set_bit_var(".MKSARGS", "", A_MKSARGS ); - _set_bit_var(".IGNOREGROUP","",A_IGNOREGROUP); - - Glob_attr = A_DEFAULT; /* set all flags to NULL */ - - _set_string_var("SHELL", "", M_DEFAULT, &Shell ); - _set_string_var("SHELLFLAGS", " ", M_DEFAULT, &Shell_flags ); - _set_string_var("SHELLCMDQUOTE","", M_DEFAULT, &Shell_quote ); - _set_string_var("GROUPSHELL", "", M_DEFAULT, &GShell ); - _set_string_var("GROUPFLAGS", " ", M_DEFAULT, &GShell_flags); - _set_string_var("SHELLMETAS", "", M_DEFAULT, &Shell_metas ); - _set_string_var("GROUPSUFFIX", "", M_DEFAULT, &Grp_suff ); - _set_string_var("AUGMAKE",NIL(char), M_DEFAULT, &Augmake ); - _set_string_var("OOODMAKEMODE", "", M_DEFAULT, &OOoDmMode ); - _set_string_var(".KEEP_STATE", "", M_DEFAULT, &Keep_state ); - _set_string_var(".NOTABS", "", M_MULTI, &Notabs ); - _set_string_var(".DIRCACHE", "y", M_DEFAULT, &UseDirCache ); - -#if CASE_INSENSITIVE_FS -#define DIRCACHERESPCASEDEFAULT "" -#else -#define DIRCACHERESPCASEDEFAULT "y" -#endif - _set_string_var(".DIRCACHERESPCASE", DIRCACHERESPCASEDEFAULT, M_DEFAULT, &DcacheRespCase); - - _set_string_var("MAKEDIR",Get_current_dir(),M_PRECIOUS|M_NOEXPORT, - &Makedir_macval); - Makedir = DmStrDup(Makedir_macval); /* Later done by Def_macro(). */ - _set_string_var("MAKEVERSION", VERSION, M_PRECIOUS, &version); - _set_string_var("PWD", Makedir, M_PRECIOUS|M_NOEXPORT, &Pwd_macval); - Pwd = DmStrDup(Pwd_macval); /* Later done by Def_macro(). */ - _set_string_var("TMD", ".", M_PRECIOUS|M_NOEXPORT, &Tmd_macval); - Tmd = DmStrDup(Tmd_macval); /* Later done by _set_tmd(). */ - - Def_macro("NULL", "", M_PRECIOUS|M_NOEXPORT|M_FLAG); - - /* Initialize a macro that contains a space. As leading and trailing - * spaces are stripped by Def_macro a little cheating is necessary. */ - _set_string_var("SPACECHAR", "x", M_PRECIOUS|M_NOEXPORT|M_FLAG, &Spacechar ); - Spacechar[0] = ' '; - - _set_int_var( "MAXLINELENGTH", "0", M_DEFAULT|M_NOEXPORT, &Buffer_size ); - _set_int_var( "PREP", "0", M_DEFAULT, &Prep ); - (void) Def_macro("MAXLINELENGTH", "1024", M_FLAG | M_DEFAULT); - - /* MAXPROCESSLIMIT is overwritten by the ruletab.c settings. Set its - * initial value high so that it allows MAXPROCESS to be changed - * from the command line. */ - _set_int_var( "MAXPROCESSLIMIT", "100", M_DEFAULT|M_NOEXPORT,&Max_proclmt ); -#if defined(USE_CREATEPROCESS) - /* Set the OS early enough. */ - Max_proclmt = MAXIMUM_WAIT_OBJECTS; -#endif - _set_int_var( "MAXPROCESS", "1", M_DEFAULT|M_NOEXPORT, &Max_proc ); - sprintf(buf,"%d",NAME_MAX); - _set_int_var( "NAMEMAX", buf, M_DEFAULT|M_NOEXPORT, &NameMax); -} - - -/* -** Define an integer variable value, and set up the macro. -*/ -static void -_set_int_var(name, val, flag, var) -char *name; -char *val; -int flag; -int *var; -{ - HASHPTR hp; - - hp = Def_macro(name, val, M_FLAG | flag); - hp->ht_flag |= M_VAR_INT | M_MULTI | M_INIT; - hp->MV_IVAR = var; - *var = atoi(val); -} - - -/* -** Define a string variables value, and set up the macro. -*/ -static void -_set_string_var(name, val, flag, var) -char *name; -char *val; -int flag; -char **var; -{ - HASHPTR hp; - - hp = Def_macro(name, val, M_FLAG | flag); - hp->ht_flag |= M_VAR_STRING | M_MULTI | M_INIT; - hp->MV_SVAR = var; - *var = hp->ht_value; -} - - -/* Define a bit variable value, and set up the macro. Each of the bits - * corresponds to an attribute bit of Glob_attr. */ -static void -_set_bit_var(name, val, mask) -char *name; -char *val; -int mask; -{ - HASHPTR hp; - - hp = Def_macro(name, val, M_FLAG); - hp->ht_flag |= M_VAR_BIT | M_MULTI | M_INIT; - hp->MV_MASK = mask; - hp->MV_BVAR = &Glob_attr; -} |