summaryrefslogtreecommitdiff
path: root/mkspecs/solaris-kcc
Unidiff
Diffstat (limited to 'mkspecs/solaris-kcc') (more/less context) (ignore whitespace changes)
-rw-r--r--mkspecs/solaris-kcc/qmake.conf94
-rw-r--r--mkspecs/solaris-kcc/qplatformdefs.h113
2 files changed, 207 insertions, 0 deletions
diff --git a/mkspecs/solaris-kcc/qmake.conf b/mkspecs/solaris-kcc/qmake.conf
new file mode 100644
index 0000000..274f815
--- a/dev/null
+++ b/mkspecs/solaris-kcc/qmake.conf
@@ -0,0 +1,94 @@
1#
2# $Id$
3#
4# qmake configuration for KAI C++ 4.0f for Solaris
5#
6# From the KAI C++ man page for Solaris:
7# --[no_]thread_safe
8 # [Waive or] Request thread-safe handling of system-allocated objects.
9 # To guarantee thread safety, this option must be used when both
10 # compiling and linking. Thread-safe C++ is not link-compatible with
11 # (the default) non-thread-safe C++.
12# -mt
13 # Solaris-only synonym for the portable option --thread_safe.
14# -h libname
15 # Solaris-only synonym for the portable --soname option.
16#
17
18 MAKEFILE_GENERATOR= UNIX
19 TEMPLATE = app
20 CONFIG += qt warn_on release
21
22 QMAKE_CC = KCC
23 QMAKE_LEX = flex
24 QMAKE_LEXFLAGS =
25 QMAKE_YACC = yacc
26 QMAKE_YACCFLAGS = -d
27 QMAKE_CFLAGS = --c --display_error_number
28 QMAKE_CFLAGS_DEPS= -M
29 QMAKE_CFLAGS_WARN_ON=
30 QMAKE_CFLAGS_WARN_OFF= -w
31 QMAKE_CFLAGS_RELEASE= +K2
32 QMAKE_CFLAGS_DEBUG= +K0
33 QMAKE_CFLAGS_SHLIB= -KPIC
34 QMAKE_CFLAGS_YACC= --diag_suppress 111,177
35 QMAKE_CFLAGS_THREAD= -mt
36
37 QMAKE_CXX = KCC
38 QMAKE_CXXFLAGS = --display_error_number --diag_suppress 611,1142
39 QMAKE_CXXFLAGS_DEPS= $$QMAKE_CFLAGS_DEPS
40 QMAKE_CXXFLAGS_WARN_ON= $$QMAKE_CFLAGS_WARN_ON
41 QMAKE_CXXFLAGS_WARN_OFF= $$QMAKE_CFLAGS_WARN_OFF
42 QMAKE_CXXFLAGS_RELEASE= $$QMAKE_CFLAGS_RELEASE
43 QMAKE_CXXFLAGS_DEBUG= $$QMAKE_CFLAGS_DEBUG
44 QMAKE_CXXFLAGS_SHLIB= $$QMAKE_CFLAGS_SHLIB
45 QMAKE_CXXFLAGS_YACC= $$QMAKE_CFLAGS_YACC
46 QMAKE_CXXFLAGS_THREAD= $$QMAKE_CFLAGS_THREAD
47
48 QMAKE_INCDIR =
49 QMAKE_LIBDIR =
50 QMAKE_INCDIR_X11= /usr/openwin/include
51 QMAKE_LIBDIR_X11= /usr/openwin/lib
52 QMAKE_INCDIR_QT = $(QTDIR)/include
53 QMAKE_LIBDIR_QT = $(QTDIR)/lib
54 QMAKE_INCDIR_OPENGL= /usr/openwin/include
55 QMAKE_LIBDIR_OPENGL= /usr/openwin/lib
56
57 QMAKE_LINK = KCC
58 QMAKE_LINK_SHLIB= KCC
59 QMAKE_LFLAGS =
60 QMAKE_LFLAGS_RELEASE=
61 QMAKE_LFLAGS_DEBUG=
62 QMAKE_LFLAGS_SHLIB=
63 QMAKE_LFLAGS_PLUGIN= $$QMAKE_LFLAGS_SHLIB
64 QMAKE_LFLAGS_SONAME= -h$$LITERAL_WHITESPACE
65 QMAKE_LFLAGS_THREAD= -mt
66 QMAKE_RPATH = -R$$LITERAL_WHITESPACE
67
68 QMAKE_LIBS =
69 QMAKE_LIBS_DYNLOAD= -ldl
70 QMAKE_LIBS_X11 = -lXext -lX11 -lresolv -lsocket -lnsl
71 QMAKE_LIBS_X11SM= -lSM -lICE
72 QMAKE_LIBS_NIS =
73 QMAKE_LIBS_QT = -lqt
74 QMAKE_LIBS_QT_THREAD= -lqt-mt
75 QMAKE_LIBS_OPENGL= -lGLU -lGL -lXmu
76 QMAKE_LIBS_OPENGL_QT= -lGL -lXmu
77 QMAKE_LIBS_THREAD=
78
79 QMAKE_MOC = $(QTDIR)/bin/moc
80 QMAKE_UIC = $(QTDIR)/bin/uic
81
82 QMAKE_AR = ar cq
83 QMAKE_RANLIB =
84
85 QMAKE_CLEAN = -r $(OBJECTS_DIR)ti_files
86
87 QMAKE_TAR = tar -cf
88 QMAKE_GZIP = gzip -9f
89
90 QMAKE_COPY = cp -f
91 QMAKE_MOVE = mv -f
92 QMAKE_DEL_FILE = rm -f
93 QMAKE_DEL_DIR = rmdir
94
diff --git a/mkspecs/solaris-kcc/qplatformdefs.h b/mkspecs/solaris-kcc/qplatformdefs.h
new file mode 100644
index 0000000..db8bf71
--- a/dev/null
+++ b/mkspecs/solaris-kcc/qplatformdefs.h
@@ -0,0 +1,113 @@
1#ifndef QPLATFORMDEFS_H
2#define QPLATFORMDEFS_H
3
4// Get Qt defines/settings
5
6#include "qglobal.h"
7
8// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs
9
10#include <unistd.h>
11
12
13// We are hot - unistd.h should have turned on the specific APIs we requested
14
15
16#ifdef QT_THREAD_SUPPORT
17#include <pthread.h>
18#endif
19
20#include <dirent.h>
21#include <fcntl.h>
22#include <grp.h>
23#include <pwd.h>
24#include <signal.h>
25#include <dlfcn.h>
26// KAI C++ has at the moment problems with unloading the Qt plugins.
27// So don't unload them as a workaround for now.
28#define QT_NO_LIBRARY_UNLOAD
29
30#include <sys/types.h>
31#include <sys/ioctl.h>
32#include <sys/filio.h>
33#include <sys/ipc.h>
34#include <sys/time.h>
35#include <sys/shm.h>
36#include <sys/socket.h>
37#include <sys/stat.h>
38#include <sys/wait.h>
39
40// DNS header files are not fully covered by X/Open specifications.
41// In particular nothing is said about res_* :/
42// On Solaris header files <netinet/in.h> and <arpa/nameser.h> are not
43// included by <resolv.h>. Note that <arpa/nameser.h> must be included
44// before <resolv.h>.
45#include <netinet/in.h>
46#include <arpa/nameser.h>
47#include <resolv.h>
48
49
50#if !defined(QT_NO_COMPAT)
51 #define QT_STATBUF struct stat
52 #define QT_STATBUF4TSTATstruct stat
53 #define QT_STAT ::stat
54 #define QT_FSTAT ::fstat
55 #define QT_STAT_REG S_IFREG
56 #define QT_STAT_DIR S_IFDIR
57 #define QT_STAT_MASK S_IFMT
58 #define QT_STAT_LNK S_IFLNK
59 #define QT_FILENO fileno
60 #define QT_OPEN ::open
61 #define QT_CLOSE ::close
62 #define QT_LSEEK ::lseek
63 #define QT_READ ::read
64 #define QT_WRITE ::write
65 #define QT_ACCESS ::access
66 #define QT_GETCWD ::getcwd
67 #define QT_CHDIR ::chdir
68 #define QT_MKDIR ::mkdir
69 #define QT_RMDIR ::rmdir
70 #define QT_OPEN_RDONLY O_RDONLY
71 #define QT_OPEN_WRONLY O_WRONLY
72 #define QT_OPEN_RDWR O_RDWR
73 #define QT_OPEN_CREAT O_CREAT
74 #define QT_OPEN_TRUNC O_TRUNC
75 #define QT_OPEN_APPEND O_APPEND
76#endif
77
78 #define QT_SIGNAL_RETTYPEvoid
79 #define QT_SIGNAL_ARGS int
80 #define QT_SIGNAL_IGNORESIG_IGN
81
82#if !defined(_XOPEN_UNIX)
83// Function usleep() is in C library but not in header files on Solaris 2.5.1.
84// Not really a surprise, usleep() is specified by XPG4v2 and XPG4v2 is only
85// supported by Solaris 2.6 and better.
86// So we are trying to detect Solaris 2.5.1 using macro _XOPEN_UNIX which is
87// not defined by <unistd.h> when XPG4v2 is not supported.
88typedef unsigned int useconds_t;
89extern "C" int usleep(useconds_t);
90#endif
91
92#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE-0 >= 500) && (_XOPEN_VERSION-0 >= 500)
93// on Solaris 7 and better with specific feature test macros
94 #define QT_SOCKLEN_T socklen_t
95#elif defined(_XOPEN_SOURCE_EXTENDED) && defined(_XOPEN_UNIX)
96// on Solaris 2.6 and better with specific feature test macros
97 #define QT_SOCKLEN_T size_t
98#else
99// always this case in practice
100 #define QT_SOCKLEN_T int
101#endif
102
103#if defined(_XOPEN_UNIX)
104// Supported by Solaris 2.6 and better. XPG4v2 and XPG4v2 is also supported
105// by Solaris 2.6 and better. So we are trying to detect Solaris 2.6 using
106// macro _XOPEN_UNIX which is not defined by <unistd.h> when XPG4v2 is not
107// supported.
108 #define QT_SNPRINTF ::snprintf
109 #define QT_VSNPRINTF ::vsnprintf
110#endif
111
112
113#endif // QPLATFORMDEFS_H