149 lines
2.6 KiB
C
149 lines
2.6 KiB
C
#ifndef _H_SPEC_
|
|
#define _H_SPEC_
|
|
|
|
typedef struct SpecStruct *Spec;
|
|
#include "rpmmacro.h"
|
|
|
|
#if 0
|
|
struct ReqProvTrigger {
|
|
int flags;
|
|
char *name;
|
|
char *version;
|
|
int index; /* Only used for triggers */
|
|
struct ReqProvTrigger *next;
|
|
};
|
|
#endif
|
|
|
|
struct TriggerFileEntry {
|
|
int index;
|
|
char *fileName;
|
|
char *script;
|
|
char *prog;
|
|
struct TriggerFileEntry *next;
|
|
};
|
|
|
|
#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 OpenFileInfo {
|
|
char *fileName;
|
|
FILE *file;
|
|
int lineNum;
|
|
char readBuf[BUFSIZ];
|
|
char *readPtr;
|
|
struct OpenFileInfo *next;
|
|
};
|
|
|
|
struct SpecStruct {
|
|
char *specFile;
|
|
char *sourceRpmName;
|
|
|
|
struct OpenFileInfo *fileStack;
|
|
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 *passPhrase;
|
|
int timeCheck;
|
|
char *cookie;
|
|
|
|
struct Source *sources;
|
|
int numSources;
|
|
int noSource;
|
|
|
|
Header sourceHeader;
|
|
int sourceCpioCount;
|
|
struct cpioFileMapping *sourceCpioList;
|
|
|
|
struct MacroContext *macros;
|
|
|
|
int autoReq;
|
|
int autoProv;
|
|
|
|
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;
|
|
|
|
StringBuf specialDoc;
|
|
|
|
#if 0
|
|
struct ReqProvTrigger *triggers;
|
|
char *triggerScripts;
|
|
#endif
|
|
|
|
struct TriggerFileEntry *triggerFiles;
|
|
|
|
char *fileFile;
|
|
StringBuf fileList; /* If NULL, package will not be written */
|
|
|
|
struct PackageStruct *next;
|
|
};
|
|
|
|
typedef struct PackageStruct *Package;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
Spec newSpec(void);
|
|
void freeSpec(Spec spec);
|
|
|
|
struct OpenFileInfo * newOpenFileInfo(void);
|
|
|
|
int addSource(Spec spec, Package pkg, char *field, int tag);
|
|
int parseNoSource(Spec spec, char *field, int tag);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _H_SPEC_ */
|