/* Copyright (C) 1990, Digital Equipment Corporation.         */
/* All rights reserved.                                       */
/* See the file COPYRIGHT for a full description.             */

/* Last modified on Sun Jun  3 07:03:40 1990 by muller        */


/* This file provides default definitions for the description
   macros. It should be included in the templates, AFTER the definitions
   of the macros pertinent for that template. Thus, a template that wants
   the default action for a  macro does not need to define it.

   Generally, the default for a file comes down to source(), which does
   nothing. The default for a composite or constructed object is the default
   for its components or its origin. */


#if !defined (source)
#define source(f)
#endif

#if !defined (interface)
#define interface(i)                                                        @@\
source (i.i3)
#endif

#if !defined (implementation)
#define implementation(m)                                                   @@\
source (m.m3)
#endif

#if !defined (module)
#define module(m)                                                           @@\
interface(m)                                                                @@\
implementation(m)
#endif

#if !defined (derived_module)
#define derived_module(m)                                                   @@\
module(m)
#endif

#if !defined (derived_implementation)
#define derived_implementation(m)                                           @@\
implementation(m)
#endif

#if !defined (C_object)
#define C_object(f)                                                         @@\
source (f.c)
#endif 

#if !defined (derived_C_object)
#define derived_C_object(f)                                                 @@\
C_object(f)
#endif

#if !defined (S_object)
#define S_object(f)                                                         @@\
source (f.s)
#endif

#if !defined (derived_S_object)
#define derived_S_object(f)                                                 @@\
S_object(f)
#endif

#if !defined (prepare_lib_install)
#define prepare_lib_install
#endif

#if !defined (library)
#define library
#endif

#if !defined (executable)
#define executable(n,libs)
#endif

#if !defined (public_interface)
#define public_interface(i)                                                 @@\
interface(i)
#endif

#if !defined (public_module)
#define public_module(m)                                                    @@\
module(m)
#endif

#if !defined (project_interface)
#define project_interface(i)                                                @@\
interface(i)
#endif

#if !defined (project_module)
#define project_module(m)                                                   @@\
module(m)
#endif

#if !defined (man_page)
#define man_page(p,sec)                                                     @@\
source (p.man-sec)
#endif

#if !defined (Script)
#define Script(name)                                                        @@\
source (name.script)
#endif

#if !defined (C_program)
#define C_program(name)                                                     @@\
source (name.c)
#endif

#if !defined (M3_program)
#define M3_program(name,libs)                                               @@\
source (name.m3)
#endif

#if !defined (subdir)
#define subdir(d)                                                           @@\
$(TARGET):: FRC                                                             @@\
	@echo $(PF) d starting on `date`                                    @@\
	@(cd d; .ROOT/util/imake -I.ROOT/util -I. -e -Tm3$(TARGET).tmpl \   @@\
			PF=---$(PF))                                        @@\
	@echo $(PF) d done on `date`
#endif

#if !defined (link)
#define link(name, dir)
#endif

#if !defined (do_install)
#define do_install(file,dir,prot)
#endif


