bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

default.c - Need help in crafting fixed archive rules for VMS


From: John E. Malmberg
Subject: default.c - Need help in crafting fixed archive rules for VMS
Date: Sun, 13 Apr 2014 22:31:19 -0500
User-agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130215 Thunderbird/17.0.3

I was able to get one type of archive rules working for VMS, but have not been able to figure how to translate code from the makefiles into the internal default pattern rules for a more general case.

The rule below works for object libraries suffixes ".a" and ".olb" only. For VMS I have to use slightly different rules for different library types, something like:

.a(%) : %
<tab>if f$$search("@$") .eqs. "" then $(LIBRARY)/CREA/OBJ
<tab>($LIBRARY)$(LIBFLAGS) $@ $<

.hlb(%) : %
<tab>if f$$search("@$") .eqs. "" then $(LIBRARY)/CREA/TEXT
<tab>($LIBRARY)$(LIBFLAGS) $@ $<

.mlb(%) : %
<tab>if f$$search("@$") .eqs. "" then $(LIBRARY)/CREA/MACR
<tab>($LIBRARY)$(LIBFLAGS) $@ $<


If I try to put the library suffix in a compiled rule, the rule is ignored.

Below is what I could get to work:
(Slightly modified to avoid text wrapping)

@@ -53,9 +55,15 @@

 static struct pspec default_pattern_rules[] =
   {
+#ifdef VMS
     { "(%)", "%",
-        "$(AR) $(ARFLAGS) $@ $<" },
+        "if f$$search(\"address@hidden") .eqs. \"\" then $(LIBRARY)/CRE/OBJ 
address@hidden \
+$(LIBRARY) $(ARFLAGS) $@ $<" },

+#else
+    { "(%)", "%",
+        "$(AR) $(ARFLAGS) $@ $<" },
+#endif
     /* The X.out rules are only in BSD's default set because
        BSD Make has no null-suffix rules, so 'foo.out' and
        'foo' are the same thing.  */
@@ -78,6 +86,7 @@

So I do not understand how to get something like the above rules added to default.c.

Regards,
-John




reply via email to

[Prev in Thread] Current Thread [Next in Thread]