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