[BACK]Return to suff.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / make

Annotation of src/usr.bin/make/suff.h, Revision 1.12

1.1       espie       1: #ifndef SUFF_H
                      2: #define SUFF_H
1.12    ! espie       3: /*     $OpenBSD: suff.h,v 1.11 2020/01/13 14:03:12 espie Exp $ */
1.1       espie       4:
                      5: /*
1.11      espie       6:  * Copyright (c) 2001-2019 Marc Espie.
1.1       espie       7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  *
                     17:  * THIS SOFTWARE IS PROVIDED BY THE OPENBSD PROJECT AND CONTRIBUTORS
                     18:  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
                     19:  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
                     20:  * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OPENBSD
                     21:  * PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
                     22:  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
                     23:  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     24:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     25:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     26:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
                     27:  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     28:  */
                     29:
1.11      espie      30: extern void Suff_Init(void);
                     31:
                     32: /* Suff_DisableAllSuffixes():
                     33:  *     disable current suffixes and the corresponding rules.
                     34:  *     They may be re-activated by adding a suffix anew.  */
                     35: extern void Suff_DisableAllSuffixes(void);
                     36: /* gn = Suff_ParseAsTransform(line, eline):
                     37:  *     Try parsing a [line,eline[ as a suffix transformation
                     38:  *     (.a.b or .a). If successful, returns a gn we can add
                     39:  *     commands to (this is actually a transform kept on a
                     40:  *     separate hash from normal targets).  Otherwise returns NULL. */
1.3       espie      41: extern GNode *Suff_ParseAsTransform(const char *, const char *);
1.11      espie      42: /* Suff_AddSuffixi(name, ename):
                     43:  *     add the passed string interval [name,ename[ as a known
                     44:  *     suffix. */
1.3       espie      45: extern void Suff_AddSuffixi(const char *, const char *);
1.11      espie      46: /* process_suffixes_after_makefile_is_read():
                     47:  *     finish setting up the transformation graph for Suff_FindDep
                     48:  *     and the .PATH.sfx paths get the default path appended for
                     49:  *     find_suffix_path().  */
                     50: extern void process_suffixes_after_makefile_is_read(void);
                     51: /* Suff_FindDeps(gn):
                     52:  *     find implicit dependencies for gn and fill out corresponding
                     53:  *     fields. */
1.1       espie      54: extern void Suff_FindDeps(GNode *);
1.11      espie      55: /* l = find_suffix_path(gn):
                     56:  *     returns the path associated with a gn, either because of its
                     57:  *     suffix, or the default path.  */
1.3       espie      58: extern Lst find_suffix_path(GNode *);
1.11      espie      59: /* Suff_PrintAll():
                     60:  *     displays all suffix information. */
1.1       espie      61: extern void Suff_PrintAll(void);
1.12    ! espie      62: /* path = find_best_path(name):
        !            63:  *     find the best path for the name, according to known suffixes.
1.11      espie      64:  */
1.12    ! espie      65: extern Lst find_best_path(const char *name);
1.1       espie      66: #endif