minimal git-friendly features - fetch code before specs
[build.git] / spec2make.c
index 5b405ed..30af6d0 100644 (file)
 #include <rpm/rpmbuild.h>
 #include <rpm/rpmspec.h>
 
+/* from f10 and up, Spec is renamed rpmSpec */
+#ifndef _RPMTYPES_H
+#define rpmSpec Spec
+#endif
+
+#ifndef PATH_MAX
+#include <linux/limits.h>
+#endif
+
 extern size_t strnlen(const char *s, size_t maxlen);
 
 /* the structure describing the options we take and the defaults */
@@ -34,7 +43,7 @@ static struct poptOption optionsTable[] = {
 };
 
 /* Stolen from rpm/build/spec.c:rpmspecQuery() */
-Spec
+rpmSpec
 rpmspecGet(rpmts ts, const char * arg)
 {
   char * buildRoot = NULL;
@@ -59,7 +68,7 @@ main(int argc, char *argv[])
   poptContext context;
   rpmts ts = NULL;
   int ec = 0;
-  Spec spec;
+  rpmSpec spec;
   struct Source *source;
   Package pkg;
   const char *name, *version, *release, *arch, *unused;
@@ -139,7 +148,6 @@ main(int argc, char *argv[])
          strncpy(sourcename,fullSource,len);
          sourcename[len]='\0';
          printf ("%s.source := SOURCES/%s\n",package_name,basename(sourcename));
-         printf ("%s.codebase := CODEBASES/%s\n",package_name,package_name);
          break;
        }
       }
@@ -184,8 +192,9 @@ main(int argc, char *argv[])
   }
 
   /* export some macros to make */
+  /* note : this relies on pl-specific conventions and might be wrong */
   { 
-    char *macros[] = { "release" , "name" , "version" , "subversion" , NULL } ;
+    char *macros[] = { "release" , "name" , "version" , "taglevel" , NULL } ;
     char **nav;
     char *macro=malloc(32);
     for (nav=macros; *nav; nav++) {
@@ -195,6 +204,9 @@ main(int argc, char *argv[])
     }
   }
   
+  /* export arch */
+  printf ("%s.rpm-arch := %s\n",package_name,target);
+
   spec = freeSpec(spec);
 
  done: