make-rules/shared-macros.mk
changeset 61 7684fe2a9eb5
parent 59 7500d63edb42
child 62 519e6e3788ce
equal deleted inserted replaced
60:5e85cfafff25 61:7684fe2a9eb5
    58 
    58 
    59 SOURCE_DIR =	$(shell pwd)/$(COMPONENT_SRC)
    59 SOURCE_DIR =	$(shell pwd)/$(COMPONENT_SRC)
    60 BUILD_DIR =	$(shell pwd)/build
    60 BUILD_DIR =	$(shell pwd)/build
    61 PROTO_DIR =	$(BUILD_DIR)/prototype/$(MACH)
    61 PROTO_DIR =	$(BUILD_DIR)/prototype/$(MACH)
    62 
    62 
       
    63 USRDIR =	/usr
       
    64 BINDIR =	/bin
       
    65 LIBDIR =	/lib
       
    66 USRBINDIR =	$(USRDIR)/bin
       
    67 USRLIBDIR =	$(USRDIR)/lib
       
    68 USRSHAREDIR =	$(USRDIR)/share
       
    69 USRSHAREMANDIR =	$(USRSHAREDIR)/man
       
    70 USRSHAREMAN1DIR =	$(USRSHAREMANDIR)/man1
       
    71 USRSHAREMAN3DIR =	$(USRSHAREMANDIR)/man3
       
    72 USRLIBDIR64 =	$(USRDIR)/lib/$(MACH64)
       
    73 PROTOUSRDIR =	$(PROTO_DIR)/$(USRDIR)
       
    74 PROTOUSRBINDIR =	$(PROTO_DIR)/$(USRBINDIR)
       
    75 PROTOUSRLIBDIR =	$(PROTO_DIR)/$(USRLIBDIR)
       
    76 PROTOUSRLIBDIR64 =	$(PROTO_DIR)/$(USRLIBDIR64)
       
    77 PROTOUSRSHAREDIR =	$(PROTO_DIR)/$(USRSHAREDIR)
       
    78 PROTOUSRSHAREMANDIR =	$(PROTO_DIR)/$(USRSHAREMANDIR)
       
    79 PROTOUSRSHAREMAN1DIR =	$(PROTO_DIR)/$(USRSHAREMAN1DIR)
       
    80 PROTOUSRSHAREMAN3DIR =	$(PROTO_DIR)/$(USRSHAREMAN3DIR)
       
    81 
       
    82 
    63 SFWBIN =	/usr/sfw/bin
    83 SFWBIN =	/usr/sfw/bin
    64 SFWLIB =	/usr/sfw/lib
    84 SFWLIB =	/usr/sfw/lib
    65 PROTOSFWBIN =	$(PROTO_DIR)/$(SFWBIN)
    85 PROTOSFWBIN =	$(PROTO_DIR)/$(SFWBIN)
    66 PROTOSFWLIB =	$(PROTO_DIR)/$(SFWLIB)
    86 PROTOSFWLIB =	$(PROTO_DIR)/$(SFWLIB)
    67 
    87 
    81 
   101 
    82 # set MACH64 from MACH to either sparcv9 or amd64
   102 # set MACH64 from MACH to either sparcv9 or amd64
    83 MACH64_1 =	$(MACH:sparc=sparcv9)
   103 MACH64_1 =	$(MACH:sparc=sparcv9)
    84 MACH64 =	$(MACH64_1:i386=amd64)
   104 MACH64 =	$(MACH64_1:i386=amd64)
    85 
   105 
    86 BUILD_32 =		$(BUILD_DIR)/$(MACH32)/.built
   106 BUILD_DIR_32 =		$(BUILD_DIR)/$(MACH32)
    87 BUILD_64 =		$(BUILD_DIR)/$(MACH64)/.built
   107 BUILD_DIR_64 =		$(BUILD_DIR)/$(MACH64)
       
   108 
       
   109 BUILD_32 =		$(BUILD_DIR_32)/.built
       
   110 BUILD_64 =		$(BUILD_DIR_64)/.built
    88 BUILD_32_and_64 =	$(BUILD_32) $(BUILD_64)
   111 BUILD_32_and_64 =	$(BUILD_32) $(BUILD_64)
    89 
   112 
    90 INSTALL_32 =		$(BUILD_DIR)/$(MACH32)/.installed
   113 INSTALL_32 =		$(BUILD_DIR_32)/.installed
    91 INSTALL_64 =		$(BUILD_DIR)/$(MACH64)/.installed
   114 INSTALL_64 =		$(BUILD_DIR_64)/.installed
    92 INSTALL_32_and_64 =	$(INSTALL_32) $(INSTALL_64)
   115 INSTALL_32_and_64 =	$(INSTALL_32) $(INSTALL_64)
    93 
   116 
    94 # BUILD_TOOLS is the root of all tools not normally installed on the system.
   117 # BUILD_TOOLS is the root of all tools not normally installed on the system.
    95 BUILD_TOOLS =	/ws/onnv-tools
   118 BUILD_TOOLS =	/ws/onnv-tools
    96 
   119 
   111 CC.gcc.64 =	$(GCC_ROOT)/bin/cc -m64
   134 CC.gcc.64 =	$(GCC_ROOT)/bin/cc -m64
   112 CCC.gcc.64 =	$(GCC_ROOT)/bin/CC -m64
   135 CCC.gcc.64 =	$(GCC_ROOT)/bin/CC -m64
   113 
   136 
   114 CC =		$(CC.$(COMPILER).$(BITS))
   137 CC =		$(CC.$(COMPILER).$(BITS))
   115 CCC =		$(CCC.$(COMPILER).$(BITS))
   138 CCC =		$(CCC.$(COMPILER).$(BITS))
       
   139 
       
   140 lint.32 =	$(SPRO_VROOT)/bin/lint -m32
       
   141 lint.64 =	$(SPRO_VROOT)/bin/lint -m64
       
   142 
       
   143 LINT =		$(lint.$(BITS))
   116 
   144 
   117 LD =		/usr/bin/ld
   145 LD =		/usr/bin/ld
   118 
   146 
   119 PYTHON.2.6.32 =	/usr/bin/python2.6
   147 PYTHON.2.6.32 =	/usr/bin/python2.6
   120 PYTHON.2.6.64 =	/usr/bin/$(MACH64)/python2.6
   148 PYTHON.2.6.64 =	/usr/bin/$(MACH64)/python2.6
   134 CP =		/bin/cp -f
   162 CP =		/bin/cp -f
   135 LN =		/bin/ln
   163 LN =		/bin/ln
   136 SYMLINK =	/bin/ln -s
   164 SYMLINK =	/bin/ln -s
   137 ENV =		/usr/bin/env
   165 ENV =		/usr/bin/env
   138 INSTALL =	/usr/bin/ginstall
   166 INSTALL =	/usr/bin/ginstall
       
   167 
       
   168 INS.dir=        $(INSTALL) -d $@
       
   169 INS.file=       $(INSTALL) -m 444 $< $(@D)
       
   170 
       
   171 # C compiler mode. Future compilers may change the default on us,
       
   172 # so force transition mode globally. Lower level makefiles can
       
   173 # override this by setting CCMODE.
       
   174 #
       
   175 CCMODE=		-Xa
       
   176 CCMODE64=	-Xa
       
   177 
       
   178 # compiler '-xarch' flag. This is here to centralize it and make it
       
   179 # overridable for testing.
       
   180 sparc_XARCH=    $(CCBITS32) -xarch=sparc
       
   181 sparcv9_XARCH=  $(CCBITS64) -xcode=abs64
       
   182 i386_XARCH=     $(CCBITS32) -xchip=pentium
       
   183 amd64_XARCH=    $(CCBITS64) -xarch=generic -Ui386 -U__i386
       
   184 
       
   185 # disable the incremental linker
       
   186 ILDOFF=         -xildoff
       
   187 
       
   188 # C99 mode
       
   189 C99_ENABLE=     -xc99=all
       
   190 C99_DISABLE=    -xc99=none
       
   191 C99MODE=        $(C99_ENABLE)
       
   192 C99LMODE=       $(C99MODE:-xc99%=-Xc99%)
       
   193 
       
   194 # XPG6 mode.  This option enables XPG6 conformance, plus extensions.
       
   195 # Amongst other things, this option will cause system calls like
       
   196 # popen (3C) and system (3C) to invoke the standards-conforming
       
   197 # shell, /usr/xpg4/bin/sh, instead of /usr/bin/sh.
       
   198 XPG6MODE=	$(C99MODE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1
       
   199 
       
   200 
       
   201 # The Sun Studio 11 compiler has changed the behaviour of integer
       
   202 # wrap arounds and so a flag is needed to use the legacy behaviour
       
   203 # (without this flag panics/hangs could be exposed within the source).
       
   204 #
       
   205 sparc_IROPTFLAG		= -W2,-xwrap_int
       
   206 sparcv9_IROPTFLAG	= -W2,-xwrap_int
       
   207 i386_IROPTFLAG		=
       
   208 amd64_IROPTFLAG		=
       
   209 IROPTFLAG		= $($(MACH)_IROPTFLAG)
       
   210 IROPTFLAG64		= $($(MACH64)_IROPTFLAG)
       
   211 
       
   212 sparc_CFLAGS=	$(sparc_XARCH)
       
   213 sparcv9_CFLAGS=	$(sparcv9_XARCH) -dalign $(CCVERBOSE)
       
   214 i386_CFLAGS=	$(i386_XARCH)
       
   215 amd64_CFLAGS=	$(amd64_XARCH)
       
   216 
       
   217 sparc_COPTFLAG=		-xO3
       
   218 sparcv9_COPTFLAG=	-xO3
       
   219 i386_COPTFLAG=		-xO3
       
   220 amd64_COPTFLAG=		-xO3
       
   221 COPTFLAG= $($(MACH)_COPTFLAG)
       
   222 COPTFLAG64= $($(MACH64)_COPTFLAG)
       
   223 
       
   224 sparc_XREGSFLAG		= -xregs=no%appl
       
   225 sparcv9_XREGSFLAG	= -xregs=no%appl
       
   226 i386_XREGSFLAG		=
       
   227 amd64_XREGSFLAG		=
       
   228 XREGSFLAG		= $($(MACH)_XREGSFLAG)
       
   229 XREGSFLAG64		= $($(MACH64)_XREGSFLAG)
       
   230 
       
   231 CFLAGS=  \
       
   232 	$(COPTFLAG) $($(MACH)_CFLAGS) $(CCMODE) \
       
   233 	$(ILDOFF) $(C99MODE) $(IROPTFLAG)
       
   234 
       
   235 CFLAGS64= \
       
   236 	$(COPTFLAG64) $($(MACH64)_CFLAGS) $(CCMODE64) \
       
   237 	$(ILDOFF) $(C99MODE) $(IROPTFLAG64)
       
   238