diff options
Diffstat (limited to 'build/spec.h')
-rw-r--r-- | build/spec.h | 130 |
1 files changed, 117 insertions, 13 deletions
diff --git a/build/spec.h b/build/spec.h index d6d967c0e..28d73697a 100644 --- a/build/spec.h +++ b/build/spec.h @@ -1,23 +1,127 @@ -/* RPM - Copyright (C) 1995 Red Hat Software - * - * spec.h - routines for parsing are looking up info in a spec file - */ - #ifndef _SPEC_H_ #define _SPEC_H_ -#include <stdio.h> +#include "header.h" +#include "stringbuf.h" +#include "macro.h" + +#if 0 +struct ReqProvTrigger { + int flags; + char *name; + char *version; + int index; /* Only used for triggers */ + struct ReqProvTrigger *next; +}; +#endif + +#define RPMBUILD_ISSOURCE 1 +#define RPMBUILD_ISPATCH (1 << 1) +#define RPMBUILD_ISICON (1 << 2) +#define RPMBUILD_ISNO (1 << 3) + +#define RPMBUILD_DEFAULT_LANG "C" + +struct Source { + char *fullSource; + char *source; /* Pointer into fullSource */ + int flags; + int num; + struct Source *next; +}; + +struct ReadLevelEntry { + int reading; + struct ReadLevelEntry *next; +}; + +struct SpecStruct { + char *specFile; + char *sourceRpmName; + + FILE *file; + char readBuf[BUFSIZ]; + char *readPtr; + char line[BUFSIZ]; + int lineNum; + + struct ReadLevelEntry *readStack; + + Header buildRestrictions; + struct SpecStruct **buildArchitectureSpecs; + char ** buildArchitectures; + int buildArchitectureCount; + int inBuildArchitectures; + + int gotBuildRoot; + char *buildRoot; + char *buildSubdir; + + char *docDir; + + char *passPhrase; + int timeCheck; + char *cookie; + + struct Source *sources; + int numSources; + int noSource; + + Header sourceHeader; + int sourceCpioCount; + struct cpioFileMapping *sourceCpioList; + + struct MacroContext macros; + + int autoReqProv; + + StringBuf prep; + StringBuf build; + StringBuf install; + StringBuf clean; + + struct PackageStruct *packages; +}; + +struct PackageStruct { + Header header; + + int cpioCount; + struct cpioFileMapping *cpioList; + + struct Source *icon; + + int autoReqProv; + + char *preInFile; + char *postInFile; + char *preUnFile; + char *postUnFile; + char *verifyFile; -typedef struct SpecRec *Spec; + StringBuf specialDoc; + +#if 0 + struct ReqProvTrigger *triggers; + char *triggerScripts; +#endif + + char *fileFile; + StringBuf fileList; /* If NULL, package will not be written */ -Spec *parseSpec(FILE *f, char *specfile, char *buildRootOverride); -void freeSpec(Spec s); + struct PackageStruct *next; +}; -void dumpSpec(Spec s, FILE *f); +typedef struct SpecStruct *Spec; +typedef struct PackageStruct *Package; -char *getSource(Spec s, int ispatch, int num); -char *getFullSource(Spec s, int ispatch, int num); +Spec newSpec(void); +void freeSpec(Spec spec); -int verifySpec(Spec s); +int addSource(Spec spec, Package pkg, char *field, int tag); +char *getSource(Spec spec, int num, int flag); +char *getFullSource(Spec spec, int num, int flag); +void freeSources(Spec spec); +int parseNoSource(Spec spec, char *field, int tag); #endif _SPEC_H_ |