xref: /trunk/main/sal/util/makefile.mk (revision d92161c4)
1bd6bc7d0SJian Fang Zhang#**************************************************************
2bd6bc7d0SJian Fang Zhang#
3bd6bc7d0SJian Fang Zhang#  Licensed to the Apache Software Foundation (ASF) under one
4bd6bc7d0SJian Fang Zhang#  or more contributor license agreements.  See the NOTICE file
5bd6bc7d0SJian Fang Zhang#  distributed with this work for additional information
6bd6bc7d0SJian Fang Zhang#  regarding copyright ownership.  The ASF licenses this file
7bd6bc7d0SJian Fang Zhang#  to you under the Apache License, Version 2.0 (the
8bd6bc7d0SJian Fang Zhang#  "License"); you may not use this file except in compliance
9bd6bc7d0SJian Fang Zhang#  with the License.  You may obtain a copy of the License at
10bd6bc7d0SJian Fang Zhang#
11bd6bc7d0SJian Fang Zhang#    http://www.apache.org/licenses/LICENSE-2.0
12bd6bc7d0SJian Fang Zhang#
13bd6bc7d0SJian Fang Zhang#  Unless required by applicable law or agreed to in writing,
14bd6bc7d0SJian Fang Zhang#  software distributed under the License is distributed on an
15bd6bc7d0SJian Fang Zhang#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16bd6bc7d0SJian Fang Zhang#  KIND, either express or implied.  See the License for the
17bd6bc7d0SJian Fang Zhang#  specific language governing permissions and limitations
18bd6bc7d0SJian Fang Zhang#  under the License.
19bd6bc7d0SJian Fang Zhang#
20bd6bc7d0SJian Fang Zhang#**************************************************************
21bd6bc7d0SJian Fang Zhang
22bd6bc7d0SJian Fang Zhang
23bd6bc7d0SJian Fang Zhang
24bd6bc7d0SJian Fang ZhangPRJ=..
25bd6bc7d0SJian Fang Zhang
26bd6bc7d0SJian Fang ZhangPRJNAME=sal
27bd6bc7d0SJian Fang ZhangTARGET=sal
28bd6bc7d0SJian Fang Zhang
29bd6bc7d0SJian Fang ZhangNO_BSYMBOLIC=TRUE
30bd6bc7d0SJian Fang ZhangNO_DEFAULT_STL=TRUE
31bd6bc7d0SJian Fang Zhang
32bd6bc7d0SJian Fang ZhangUSE_LDUMP2=TRUE
33bd6bc7d0SJian Fang ZhangUSE_DEFFILE=TRUE
34bd6bc7d0SJian Fang Zhang
35bd6bc7d0SJian Fang Zhang.IF "$(GUI)"=="UNX"
36bd6bc7d0SJian Fang ZhangTARGETTYPE=CUI
37bd6bc7d0SJian Fang Zhang.ENDIF # UNX
38bd6bc7d0SJian Fang Zhang
39*d92161c4SJim Jagielski.IF "$(OS)" != "MACOSX"
40bd6bc7d0SJian Fang ZhangUNIXVERSIONNAMES=UDK
41*d92161c4SJim Jagielski.ENDIF
42bd6bc7d0SJian Fang Zhang
43bd6bc7d0SJian Fang Zhang# --- Settings -----------------------------------------------------
44bd6bc7d0SJian Fang Zhang
45bd6bc7d0SJian Fang Zhang.INCLUDE :  settings.mk
46bd6bc7d0SJian Fang Zhang
47bd6bc7d0SJian Fang ZhangCFLAGS+= $(LFS_CFLAGS)
48bd6bc7d0SJian Fang ZhangCXXFLAGS+= $(LFS_CFLAGS)
49bd6bc7d0SJian Fang Zhang
50bd6bc7d0SJian Fang Zhang.IF "$(depend)" == ""
51bd6bc7d0SJian Fang Zhang
52bd6bc7d0SJian Fang Zhang# --- Files --------------------------------------------------------
53bd6bc7d0SJian Fang Zhang
54bd6bc7d0SJian Fang Zhang# disable check for PIC code as it would complain about
55bd6bc7d0SJian Fang Zhang# hand coded assembler
56bd6bc7d0SJian Fang ZhangCHECKFORPIC=
57bd6bc7d0SJian Fang Zhang
58bd6bc7d0SJian Fang Zhang.IF "$(header)" == ""
59bd6bc7d0SJian Fang Zhang
60bd6bc7d0SJian Fang ZhangLIB1TARGET=$(SLB)$/$(TARGET).lib
61bd6bc7d0SJian Fang ZhangLIB1FILES=	\
62bd6bc7d0SJian Fang Zhang	$(SLB)$/oslall.lib	\
63bd6bc7d0SJian Fang Zhang	$(SLB)$/cpposl.lib	\
64bd6bc7d0SJian Fang Zhang	$(SLB)$/cpprtl.lib	\
65bd6bc7d0SJian Fang Zhang	$(SLB)$/textenc.lib
66bd6bc7d0SJian Fang Zhang
67bd6bc7d0SJian Fang Zhang#.IF "$(GUI)"=="UNX"
68bd6bc7d0SJian Fang Zhang#LIB1FILES+=$(SLB)$/systoolsunx.lib
69bd6bc7d0SJian Fang Zhang#.ENDIF # UNX
70bd6bc7d0SJian Fang Zhang
71bd6bc7d0SJian Fang Zhang
72bd6bc7d0SJian Fang ZhangLIB3TARGET=$(LB)$/a$(TARGET).lib
73bd6bc7d0SJian Fang ZhangLIB3ARCHIV=$(LB)$/lib$(TARGET)$(DLLPOSTFIX).a
74bd6bc7d0SJian Fang ZhangLIB3FILES=	\
75bd6bc7d0SJian Fang Zhang	$(LB)$/oslall.lib	\
76bd6bc7d0SJian Fang Zhang	$(LB)$/cpposl.lib	\
77bd6bc7d0SJian Fang Zhang	$(LB)$/cpprtl.lib	\
78bd6bc7d0SJian Fang Zhang	$(LB)$/textenc.lib
79bd6bc7d0SJian Fang Zhang
80bd6bc7d0SJian Fang Zhang#.IF "$(GUI)"=="UNX"
81bd6bc7d0SJian Fang Zhang#LIB3FILES+=$(LB)$/systoolsunx.lib
82bd6bc7d0SJian Fang Zhang#.ENDIF # UNX
83bd6bc7d0SJian Fang Zhang
84bd6bc7d0SJian Fang Zhang.IF "$(GUI)" == "WNT" || "$(GUI)"=="OS2"
85bd6bc7d0SJian Fang ZhangSHL1TARGET= $(TARGET)
86bd6bc7d0SJian Fang Zhang.ELSE
87bd6bc7d0SJian Fang ZhangSHL1TARGET= uno_$(TARGET)
88bd6bc7d0SJian Fang Zhang.ENDIF
89bd6bc7d0SJian Fang ZhangSHL1IMPLIB= i$(TARGET)
90bd6bc7d0SJian Fang ZhangSHL1VERSIONMAP=	$(TARGET).map
91bd6bc7d0SJian Fang ZhangSHL1RPATH=URELIB
92bd6bc7d0SJian Fang Zhang
93bd6bc7d0SJian Fang Zhang.IF "$(GUI)"=="WNT"
94bd6bc7d0SJian Fang Zhang
95bd6bc7d0SJian Fang Zhang.IF "$(COM)"=="GCC"
96bd6bc7d0SJian Fang ZhangUWINAPILIB=     -luwinapi
97bd6bc7d0SJian Fang Zhang.ELSE
98bd6bc7d0SJian Fang ZhangUWINAPILIB=     $(LB)$/uwinapi.lib
99bd6bc7d0SJian Fang Zhang.ENDIF
100bd6bc7d0SJian Fang Zhang
101bd6bc7d0SJian Fang ZhangSHL1STDLIBS=	\
102bd6bc7d0SJian Fang Zhang				$(UWINAPILIB)\
103bd6bc7d0SJian Fang Zhang				$(ADVAPI32LIB)\
104bd6bc7d0SJian Fang Zhang				$(WSOCK32LIB)\
105bd6bc7d0SJian Fang Zhang				$(MPRLIB)\
106bd6bc7d0SJian Fang Zhang				$(SHELL32LIB)\
107bd6bc7d0SJian Fang Zhang				$(COMDLG32LIB)\
108bd6bc7d0SJian Fang Zhang				$(USER32LIB)\
109bd6bc7d0SJian Fang Zhang				$(OLE32LIB)
110bd6bc7d0SJian Fang Zhang.IF "$(COM)"=="GCC"
111bd6bc7d0SJian Fang ZhangMINGWSSTDOBJ=
112bd6bc7d0SJian Fang ZhangMINGWSSTDENDOBJ=
113bd6bc7d0SJian Fang Zhang.ENDIF
114bd6bc7d0SJian Fang Zhang.ENDIF # WNT
115bd6bc7d0SJian Fang Zhang
116bd6bc7d0SJian Fang Zhang.IF "$(GUI)"=="UNX"
117bd6bc7d0SJian Fang Zhang.IF "$(OS)"=="SOLARIS"
118bd6bc7d0SJian Fang Zhang# libposix4.so (SunOS 5.6) <-> librt.so (SunOS >= 5.7)
119bd6bc7d0SJian Fang ZhangSHL1STDLIBS= -Bdynamic -ldl -lpthread -lposix4 -lsocket -lnsl
120bd6bc7d0SJian Fang Zhang.IF "$(COM)" == "C50"
121bd6bc7d0SJian Fang ZhangSHL1STDLIBS+= -z allextract -staticlib=Crun -z defaultextract
122bd6bc7d0SJian Fang Zhang.ENDIF # C50
123bd6bc7d0SJian Fang Zhang.ENDIF # SOLARIS
124bd6bc7d0SJian Fang Zhang.ENDIF # UNX
125bd6bc7d0SJian Fang Zhang
126bd6bc7d0SJian Fang Zhang.IF "$(GUI)"=="OS2"
127bd6bc7d0SJian Fang ZhangSHL1STDLIBS=-lmmap -lpthread
128bd6bc7d0SJian Fang Zhang.ENDIF # OS2
129bd6bc7d0SJian Fang Zhang
130bd6bc7d0SJian Fang Zhang.IF "$(OS)"=="MACOSX"
131bd6bc7d0SJian Fang ZhangSHL1STDLIBS+=-framework CoreFoundation -framework Carbon
132bd6bc7d0SJian Fang Zhang.ENDIF
133bd6bc7d0SJian Fang Zhang
134bd6bc7d0SJian Fang Zhang.IF "$(OS)" == "LINUX"
135bd6bc7d0SJian Fang Zhang.IF "$(PAM_LINK)" == "YES"
136bd6bc7d0SJian Fang ZhangSHL1STDLIBS+=-lpam
137bd6bc7d0SJian Fang Zhang.ENDIF
138bd6bc7d0SJian Fang Zhang.IF "$(CRYPT_LINK)" == "YES"
139bd6bc7d0SJian Fang ZhangSHL1STDLIBS+=-lcrypt
140bd6bc7d0SJian Fang Zhang.ENDIF
141bd6bc7d0SJian Fang Zhang.ENDIF
142bd6bc7d0SJian Fang Zhang
143bd6bc7d0SJian Fang Zhang# #i105898# required for LD_PRELOAD libsalalloc_malloc.so
144bd6bc7d0SJian Fang Zhang#           if sal is linked with -Bsymbolic-functions
145bd6bc7d0SJian Fang Zhang.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE"
146bd6bc7d0SJian Fang ZhangSHL1LINKFLAGS+=-Wl,--dynamic-list=salalloc.list
147bd6bc7d0SJian Fang Zhang.ENDIF # .IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE"
148bd6bc7d0SJian Fang Zhang
149bd6bc7d0SJian Fang ZhangSHL1LIBS+=$(SLB)$/$(TARGET).lib
150bd6bc7d0SJian Fang Zhang
151bd6bc7d0SJian Fang Zhang.IF "$(linkinc)" != ""
152bd6bc7d0SJian Fang ZhangSHL11FILE=$(MISC)$/sal.slo
153bd6bc7d0SJian Fang Zhang.ELSE
154bd6bc7d0SJian Fang Zhang.IF "$(GUI)"=="UNX"
155bd6bc7d0SJian Fang ZhangSHL1OBJS=
156bd6bc7d0SJian Fang Zhang.ELSE
157bd6bc7d0SJian Fang Zhang.IF "$(GUI)$(COM)"!="WNTGCC"
158bd6bc7d0SJian Fang ZhangSHL1OBJS= \
159bd6bc7d0SJian Fang Zhang    $(SLO)$/dllentry.obj
160bd6bc7d0SJian Fang Zhang.ENDIF # WNTGCC
161bd6bc7d0SJian Fang Zhang.ENDIF # UNX
162bd6bc7d0SJian Fang Zhang.ENDIF # lincinc
163bd6bc7d0SJian Fang Zhang
164bd6bc7d0SJian Fang ZhangSHL1DEPN=
165bd6bc7d0SJian Fang ZhangSHL1DEF=    $(MISC)$/$(SHL1TARGET).def
166bd6bc7d0SJian Fang Zhang
167bd6bc7d0SJian Fang ZhangDEF1NAME= $(SHL1TARGET)
168bd6bc7d0SJian Fang Zhang
169bd6bc7d0SJian Fang Zhang#
170bd6bc7d0SJian Fang Zhang# This part builds a tiny extra lib,
171bd6bc7d0SJian Fang Zhang# containing an alloc.c which uses system
172bd6bc7d0SJian Fang Zhang# heap instead of our own mem management.
173bd6bc7d0SJian Fang Zhang# This is e.g. useful for proper valgrinding
174bd6bc7d0SJian Fang Zhang# the office.
175bd6bc7d0SJian Fang Zhang#
176bd6bc7d0SJian Fang Zhang.IF "$(OS)"=="LINUX"
177bd6bc7d0SJian Fang Zhang
178bd6bc7d0SJian Fang ZhangTARGET2 = salalloc_malloc
179bd6bc7d0SJian Fang ZhangSHL2TARGET= $(TARGET2)
180bd6bc7d0SJian Fang ZhangSHL2IMPLIB= i$(TARGET2)
181bd6bc7d0SJian Fang ZhangSHL2VERSIONMAP=	salalloc.map
182bd6bc7d0SJian Fang Zhang
183bd6bc7d0SJian Fang ZhangSHL2LIBS+=$(SLB)$/SYSALLOC_cpprtl.lib
184bd6bc7d0SJian Fang Zhang
185bd6bc7d0SJian Fang Zhang.ENDIF # .IF "$(OS)"=="LINUX"
186bd6bc7d0SJian Fang Zhang
187bd6bc7d0SJian Fang Zhang# --- Coverage -----------------------------------------------------
188bd6bc7d0SJian Fang Zhang# LLA: 20040304 The follows lines are an additional which is only need if we run
189bd6bc7d0SJian Fang Zhang#               coverage tests. For normal test runs this feature is not used.
190bd6bc7d0SJian Fang Zhang#               For more information about coverage tests see:
191bd6bc7d0SJian Fang Zhang#               http://gcc.gnu.org/onlinedocs/gcc-3.0/gcc_8.html
192bd6bc7d0SJian Fang Zhang#
193bd6bc7d0SJian Fang Zhang#               Why this additional?
194bd6bc7d0SJian Fang Zhang#               Anybody has decide to link sal with g++ instead of gcc.
195bd6bc7d0SJian Fang Zhang#
196bd6bc7d0SJian Fang Zhang.IF "$(TESTCOVERAGE)"!=""
197bd6bc7d0SJian Fang Zhang.IF "$(GUI)"=="UNX"
198bd6bc7d0SJian Fang Zhang.IF "$(COM)"=="GCC"
199bd6bc7d0SJian Fang Zhang.IF "$(OS)"=="LINUX"
200bd6bc7d0SJian Fang ZhangSHL1STDLIBS+=-lgcc
201bd6bc7d0SJian Fang Zhang.ENDIF
202bd6bc7d0SJian Fang Zhang.ENDIF
203bd6bc7d0SJian Fang Zhang.ENDIF
204bd6bc7d0SJian Fang Zhang.ENDIF
205bd6bc7d0SJian Fang Zhang
206bd6bc7d0SJian Fang Zhang# --- Targets ------------------------------------------------------
207bd6bc7d0SJian Fang Zhang
208bd6bc7d0SJian Fang Zhang.ENDIF # $(header) != ""
209bd6bc7d0SJian Fang Zhang.ENDIF # $(depend) != ""
210bd6bc7d0SJian Fang Zhang
211bd6bc7d0SJian Fang Zhang.INCLUDE :  target.mk
212bd6bc7d0SJian Fang Zhang
213bd6bc7d0SJian Fang Zhang.IF "$(SHL1TARGETN)" != ""
214bd6bc7d0SJian Fang Zhang$(SHL1TARGETN) : $(OUT)$/inc$/udkversion.h
215bd6bc7d0SJian Fang Zhang.ENDIF # "$(SHL1TARGETN)" != ""
216bd6bc7d0SJian Fang Zhang
217bd6bc7d0SJian Fang Zhang$(OUT)$/inc$/udkversion.h:
218bd6bc7d0SJian Fang Zhang	echo '#ifndef _SAL_UDKVERSION_H_'           >  $@
219bd6bc7d0SJian Fang Zhang	echo '#define _SAL_UDKVERSION_H_'           >> $@
220bd6bc7d0SJian Fang Zhang	echo ''                                     >> $@
221bd6bc7d0SJian Fang Zhang	echo '#define SAL_UDK_MAJOR "$(UDK_MAJOR)"' >> $@
222bd6bc7d0SJian Fang Zhang	echo '#define SAL_UDK_MINOR "$(UDK_MINOR)"' >> $@
223bd6bc7d0SJian Fang Zhang	echo '#define SAL_UDK_MICRO "$(UDK_MICRO)"' >> $@
224bd6bc7d0SJian Fang Zhang	echo ''                                     >> $@
225bd6bc7d0SJian Fang Zhang	echo '#endif'                               >> $@
226