summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@sun.com>2009-03-24 16:34:45 -0700
committerAlan Coopersmith <alan.coopersmith@sun.com>2009-03-24 19:52:10 -0700
commitcc3112b6d0434d8e7ecbe3832a5aa48cd0f5185d (patch)
treea11ed4903ab92d146eaa314f07e7c1fe61b32db4
parentf871e026bedc296c235dae02e533617fe9a4d3f2 (diff)
Add additional predefines needed to match Solaris compilers
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
-rw-r--r--imakemdep.h12
-rw-r--r--main.c23
2 files changed, 35 insertions, 0 deletions
diff --git a/imakemdep.h b/imakemdep.h
index 99d4c62..c4533e1 100644
--- a/imakemdep.h
+++ b/imakemdep.h
@@ -79,6 +79,15 @@ struct symtab predefs[] = {
#ifdef sun4
{"sun4", "1"},
#endif
+#ifdef __sun
+ {"__sun", "1"},
+#endif
+#ifdef __SunOS
+ {"__SunOS", "1"},
+#endif
+#ifdef __SVR4
+ {"__SVR4", "1"},
+#endif
#ifdef sparc
{"sparc", "1"},
#endif
@@ -250,6 +259,9 @@ struct symtab predefs[] = {
#ifdef __decc
{"__decc", "1"},
#endif
+#ifdef __unix
+ {"__unix", "1"},
+#endif
#ifdef __unix__
{"__unix__", "1"},
#endif
diff --git a/main.c b/main.c
index a962ba5..6ae60f0 100644
--- a/main.c
+++ b/main.c
@@ -48,6 +48,10 @@ in this Software without prior written authorization from The Open Group.
#include <stdarg.h>
+#ifdef __sun
+# include <sys/utsname.h>
+#endif
+
#ifdef DEBUG
int _debugmask;
#endif
@@ -170,6 +174,25 @@ main(int argc, char *argv[])
define2(psymp->s_name, psymp->s_value, &maininclist);
psymp++;
}
+#ifdef __sun
+ /* Solaris predefined values that are computed, not hardcoded */
+ {
+ struct utsname name;
+
+ if (uname(&name) >= 0) {
+ char osrevdef[SYS_NMLN + SYS_NMLN + 5];
+ snprintf(osrevdef, sizeof(osrevdef), "__%s_%s",
+ name.sysname, name.release);
+
+ for (p = osrevdef; *p != '\0'; p++) {
+ if (!isalnum(*p)) {
+ *p = '_';
+ }
+ }
+ define2(osrevdef, "1", &maininclist);
+ }
+ }
+#endif
if (argc == 2 && argv[1][0] == '@') {
struct stat ast;
int afd;