office-gobmx/solenv/inc/tg_shl.mk

666 lines
23 KiB
Makefile
Raw Normal View History

2000-09-20 08:43:26 -05:00
#*************************************************************************
2000-10-30 06:14:55 -06:00
#
# $RCSfile: tg_shl.mk,v $
#
# $Revision: 1.67 $
2000-10-30 06:14:55 -06:00
#
# last change: $Author: hjs $ $Date: 2002-04-03 17:10:37 $
2000-10-30 06:14:55 -06:00
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
#
# - GNU Lesser General Public License Version 2.1
# - Sun Industry Standards Source License Version 1.1
#
# Sun Microsystems Inc., October, 2000
#
# GNU Lesser General Public License Version 2.1
# =============================================
# Copyright 2000 by Sun Microsystems, Inc.
# 901 San Antonio Road, Palo Alto, CA 94303, USA
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1, as published by the Free Software Foundation.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
#
# Sun Industry Standards Source License Version 1.1
# =================================================
# The contents of this file are subject to the Sun Industry Standards
# Source License Version 1.1 (the "License"); You may not use this file
# except in compliance with the License. You may obtain a copy of the
# License at http://www.openoffice.org/license.html.
#
# Software provided under this License is provided on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
# WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
# See the License for the specific provisions governing your rights and
# obligations concerning the Software.
#
# The Initial Developer of the Original Code is: Sun Microsystems, Inc.
#
# Copyright: 2000 by Sun Microsystems, Inc.
#
# All Rights Reserved.
#
# Contributor(s): _______________________________________
#
#
#
2000-09-20 08:43:26 -05:00
#*************************************************************************
MKFILENAME:=tg_shl.mk
#######################################################
# Anweisungen fuer Rekursion
.IF "$(MULTI_SHL_FLAG)" == ""
$(SHL1TARGETN) .NULL : SHL1
$(SHL2TARGETN) .NULL : SHL2
$(SHL3TARGETN) .NULL : SHL3
$(SHL4TARGETN) .NULL : SHL4
$(SHL5TARGETN) .NULL : SHL5
$(SHL6TARGETN) .NULL : SHL6
$(SHL7TARGETN) .NULL : SHL7
$(SHL8TARGETN) .NULL : SHL8
$(SHL9TARGETN) .NULL : SHL9
.ENDIF
.IF "$(MULTI_SHL_FLAG)"==""
SHL1 SHL2 SHL3 SHL4 SHL5 SHL6 SHL7 SHL8 SHL9:
.IF "$(GUI)"=="UNX"
@dmake $(SHL$(TNR)TARGETN) MULTI_SHL_FLAG=true TNR:=$(TNR) $(MFLAGS) $(CALLMACROS)
.ELSE
@dmake $(SHL$(TNR)TARGETN) MULTI_SHL_FLAG=true TNR:=$(TNR) $(MFLAGS) $(CALLMACROS)
.ENDIF
.ELSE
#######################################################
# Anweisungen fuer das Linken
# unroll begin
.IF "$(SHL$(TNR)TARGETN)"!=""
2000-09-20 08:43:26 -05:00
.IF "$(OS)"=="AIX"
SHL$(TNR)STDLIBS=
.ENDIF
# Link in static data members for template classes
.IF "$(OS)"=="MACOSX"
SHL$(TNR)STDLIBS+=$(STATICLIB)
.ENDIF
2000-09-20 08:43:26 -05:00
.IF "$(SHLLINKARCONLY)" != ""
SHL$(TNR)STDLIBS=
STDSHL=
.ELSE
SHL$(TNR)ARCHIVES=
.ENDIF
SHL$(TNR)DEF*=$(MISC)$/$(SHL$(TNR)TARGET).def
2001-08-14 08:14:33 -05:00
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++ description fallbak ++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.IF "$(SHL$(TNR)TARGET)"!=""
.IF "$(COMP$(TNR)TYPELIST)"==""
#fallback
2002-04-02 06:11:49 -06:00
LOCAL$(TNR)DESC:=$(subst,/,$/ $(shell $(FIND) . -name "{$(subst,$($(WINVERSIONNAMES)_MAJOR),* $(subst,$(UPD)$(DLLPOSTFIX), $(SHL$(TNR)TARGET)))}.xml"))
2001-08-31 06:16:47 -05:00
.IF "$(LOCAL$(TNR)DESC)"==""
2001-08-24 09:51:27 -05:00
$(MISC)$/%{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}.xml : $(SOLARENV)$/src$/default_description.xml
2001-08-14 08:14:33 -05:00
+$(COPY) $< $@
2001-08-31 06:16:47 -05:00
.ELSE # "$(LOCALDESC$(TNR))"==""
SHL$(TNR)DESCRIPTIONOBJ*=$(SLO)$/$(LOCAL$(TNR)DESC:b)$($(WINVERSIONNAMES)_MAJOR)_description.obj
2001-08-31 06:16:47 -05:00
.ENDIF # "$(LOCALDESC$(TNR))"==""
2001-08-14 08:14:33 -05:00
.ENDIF # "$(COMP$(TNR)TYPELIST)"==""
.ENDIF # "$(SHL$(TNR)TARGET)"!="
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#+++++++++++ version object ++++++++++++++++++++++++++++++++++++++++
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2000-12-21 13:06:32 -06:00
.IF "$(VERSIONOBJ)"!=""
SHL$(TNR)VERSIONOBJ:=$(VERSIONOBJ:d){$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}$(VERSIONOBJ:f)
.IF "$(UPDATER)"=="YES"
USE_VERSIONH:=$(INCCOM)$/_version.h
2001-01-17 11:56:16 -06:00
.ELSE # "$(UPDATER)"=="YES"
2001-11-01 11:21:52 -06:00
.IF "$(GUI)" == "UNX"
2001-11-01 08:56:06 -06:00
SHL$(TNR)DEPN+=$(SHL$(TNR)VERSIONOBJ:s/.o/.obj/)
2001-11-02 04:37:13 -06:00
.ELSE # "$(GUI)" == "UNX"
SHL$(TNR)DEPN+=$(SHL$(TNR)VERSIONOBJ)
2001-11-01 11:21:52 -06:00
.ENDIF # "$(GUI)" == "UNX"
2002-03-07 07:02:37 -06:00
$(MISC)$/$(SHL$(TNR)VERSIONOBJ:b).c : $(SOLARENV)$/src$/version.c $(INCCOM)$/_version.h
+$(COPY) $(SOLARENV)$/src$/version.c $@
2000-12-21 13:06:32 -06:00
.ENDIF # "$(UPDATER)"=="YES"
2001-01-17 11:56:16 -06:00
.ENDIF # "$(VERSIONOBJ)"!=""
2000-12-21 13:06:32 -06:00
2000-09-20 08:43:26 -05:00
.IF "$(GUI)" != "UNX"
.IF "$(GUI)" == "WNT"
.IF "$(COM)" == "MSC"
.IF "$(SHL$(TNR)IMPLIB)" != ""
USE_$(TNR)IMPLIB=-implib:$(LB)$/$(SHL$(TNR)IMPLIB).lib
.ELSE # "$(SHL$(TNR)IMPLIB)" != ""
USE_$(TNR)IMPLIB=-implib:$(LB)$/i$(TARGET)$(TNR).lib
.ENDIF # "$(SHL$(TNR)IMPLIB)" != ""
.ENDIF # "$(COM)" == "MSC"
.IF "$(USE_DEFFILE)"==""
USE_$(TNR)IMPLIB_DEPS=$(LB)$/$(SHL$(TNR)IMPLIB).lib
.ENDIF # "$(USE_DEFFILE)"==""
.ENDIF # "$(GUI)" == "WNT"
USE_SHL$(TNR)DEF=$(SHL$(TNR)DEF)
.ELSE # "$(GUI)" != "UNX"
USE_SHL$(TNR)DEF=
SHL$(TNR)DEPN+:=$(SHL$(TNR)DEPNU)
2002-01-16 07:56:35 -06:00
.IF "$(SHL$(TNR)VERSIONMAP)"==""
2000-09-20 08:43:26 -05:00
# to activate vmaps remove "#"
2002-01-08 07:12:09 -06:00
USE_SHL$(TNR)VERSIONMAP=$(MISC)$/$(SHL$(TNR)TARGET).vmap
2002-01-16 07:56:35 -06:00
.ENDIF # "$(SHL$(TNR)VERSIONMAP)"==""
2000-09-20 08:43:26 -05:00
.IF "$(USE_SHL$(TNR)VERSIONMAP)"!=""
2002-01-08 07:12:09 -06:00
.IF "$(SHL$(TNR)FILTERFILE)"!=""
2000-09-20 08:43:26 -05:00
.IF "$(SHL$(TNR)VERSIONMAP)"!=""
#eine von beiden ist zuviel
USE_SHL$(TNR)VERSIONMAP=$(MISC)$/$(SHL$(TNR)TARGET).vmap
$(USE_SHL$(TNR)VERSIONMAP) .PHONY:
@+echo -----------------------------
@+echo you should only use versionmap OR exportfile
@+echo -----------------------------
# force_dmake_to_error
.ENDIF # "$(SHL$(TNR)VERSIONMAP)"!=""
.IF "$(OS)"!="MACOSX"
.IF "$(OS)"!="IRIX"
2000-09-20 08:43:26 -05:00
SHL$(TNR)VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL$(TNR)VERSIONMAP)
.ENDIF
.ENDIF
2000-09-20 08:43:26 -05:00
$(USE_SHL$(TNR)VERSIONMAP): \
$(SHL$(TNR)OBJS)\
$(SHL$(TNR)LIBS)\
2002-01-08 07:12:09 -06:00
$(SHL$(TNR)FILTERFILE)
2000-09-20 08:43:26 -05:00
@+$(RM) $@.dump
.IF "$(SHL$(TNR)OBJS)"!=""
# dump remaining objects on the fly
.IF "$(OS)"=="MACOSX"
@-+nm $(SHL$(TNR)OBJS:s/.obj/.o/) > $@.dump
.ELSE
2000-09-20 08:43:26 -05:00
@+nm $(SHL$(TNR)OBJS:s/.obj/.o/) > $@.dump
.ENDIF
2000-09-20 08:43:26 -05:00
.ENDIF # "$(SHL$(TNR)OBJS)!"=""
@+$(TYPE) /dev/null $(SHL$(TNR)LIBS:s/.lib/.dump/) >> $@.dump
2002-01-08 07:12:09 -06:00
+$(PERL) $(SOLARENV)$/bin$/mapgen.pl -d $@.dump -s $(SHL$(TNR)INTERFACE) -f $(SHL$(TNR)FILTERFILE) -m $@
2000-09-20 08:43:26 -05:00
2002-01-08 07:12:09 -06:00
.ELSE # "$(SHL$(TNR)FILTERFILE)"!=""
2000-09-20 08:43:26 -05:00
USE_SHL$(TNR)VERSIONMAP=$(MISC)$/$(SHL$(TNR)TARGET).vmap
$(USE_SHL$(TNR)VERSIONMAP) :
2000-09-20 08:43:26 -05:00
@+echo -----------------------------
2002-01-08 07:12:09 -06:00
@+echo SHL$(TNR)FILTERFILE not set!
2000-09-20 08:43:26 -05:00
@+echo -----------------------------
@$(TOUCH) $@
@+echo dummy file to keep the dependencies for later use.
2000-09-20 08:43:26 -05:00
# force_dmake_to_error
2002-01-08 07:12:09 -06:00
.ENDIF # "$(SHL$(TNR)FILTERFILE)"!=""
2001-01-22 09:54:05 -06:00
.ELSE # "$(USE_SHL$(TNR)VERSIONMAP)"!=""
#and now for the plain non-generic way...
2000-09-20 08:43:26 -05:00
.IF "$(SHL$(TNR)VERSIONMAP)"!=""
USE_SHL$(TNR)VERSIONMAP=$(MISC)$/$(SHL$(TNR)VERSIONMAP:b)_$(SHL$(TNR)TARGET)$(SHL$(TNR)VERSIONMAP:e)
2000-09-20 08:43:26 -05:00
.IF "$(OS)"!="MACOSX"
.IF "$(OS)"!="IRIX"
2000-09-20 08:43:26 -05:00
SHL$(TNR)VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL$(TNR)VERSIONMAP)
.ENDIF
.ENDIF
2000-09-20 08:43:26 -05:00
$(USE_SHL$(TNR)VERSIONMAP): $(SHL$(TNR)VERSIONMAP)
@+-$(RM) -f $@ >& $(NULLDEV)
.IF "$(COMID)"=="gcc3"
+tr -d "\015" < $(SHL$(TNR)VERSIONMAP) | $(AWK) -f $(SOLARENV)$/bin$/addsym.awk > $@
.ELSE # "$(COMID)"=="gcc3"
2001-11-01 03:50:14 -06:00
+tr -d "\015" < $(SHL$(TNR)VERSIONMAP) > $@
.ENDIF # "$(COMID)"=="gcc3"
2000-09-20 08:43:26 -05:00
@+chmod a+w $@
.ENDIF # "$(SHL$(TNR)VERSIONMAP)"!=""
2001-01-22 09:54:05 -06:00
.ENDIF # "$(USE_SHL$(TNR)VERSIONMAP)"!=""
2000-09-20 08:43:26 -05:00
.ENDIF # "$(GUI)" != "UNX"
2001-04-26 05:18:43 -05:00
.IF "$(UNIXVERSIONNAMES)"!=""
.IF "$(OS)"!="MACOSX"
.IF "$(GUI)"=="UNX"
.IF "$(OS)"=="IRIX"
SHL$(TNR)SONAME=$(SONAME_SWITCH)$(SHL$(TNR)TARGETN:b:b)
.ELSE
2001-05-09 04:48:28 -05:00
SHL$(TNR)SONAME=\"$(SONAME_SWITCH)$(SHL$(TNR)TARGETN:b:b)\"
.ENDIF
2001-04-26 05:18:43 -05:00
.ENDIF # "$(GUI)"!="UNX"
.ENDIF # "$(OS)"!="MACOSX"
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
2000-09-20 08:43:26 -05:00
.IF "$(NO_REC_RES)"!=""
.IF "$(SHL$(TNR)RES)"!=""
SHL$(TNR)RES!:=$(subst,$(RES)$/,$(RES)$/$(defaultlangext)$/ $(SHL$(TNR)RES))
SHL$(TNR)ALLRES+=$(SHL$(TNR)RES)
SHL$(TNR)LINKRES*=$(MISC)$/$(SHL$(TNR)TARGET).res
.ENDIF # "$(SHL$(TNR)RES)"!=""
.ENDIF
.IF "$(SHL$(TNR)DEFAULTRES)$(use_shl_versions)"!=""
SHL$(TNR)DEFAULTRES*=$(MISC)$/$(SHL$(TNR)TARGET)_def.res
SHL$(TNR)ALLRES+=$(SHL$(TNR)DEFAULTRES)
SHL$(TNR)LINKRES*=$(MISC)$/$(SHL$(TNR)TARGET).res
.ENDIF # "$(SHL$(TNR)DEFAULTRES)$(use_shl_versions)"!=""
2000-10-30 06:14:55 -06:00
.IF "$(NO_SHL$(TNR)DESCRIPTION)"==""
2000-12-21 13:06:32 -06:00
#SHL$(TNR)DESCRIPTIONOBJ*=$(SLO)$/default_description.obj
SHL$(TNR)DESCRIPTIONOBJ*=$(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_description.obj
2000-10-30 06:14:55 -06:00
.ENDIF # "$(NO_SHL$(TNR)DESCRIPTION)"==""
#.IF "$(SHL$(TNR)TARGETN)"!=""
2001-09-28 11:11:33 -05:00
.IF "$(linkinc)"!=""
.IF "$(GUI)"=="WNT"
$(MISC)$/$(SHL$(TNR)TARGET)_linkinc.ls .PHONY:
@+-$(RM) $@ >& $(NULLDEV)
+sed -f $(COMMON_ENV_TOOLS)\chrel.sed $(foreach,i,$(SHL$(TNR)LIBS) $(i:s/.lib/.lin/)) >> $@
.ENDIF
2001-09-28 11:11:33 -05:00
LINKINCTARGETS+=$(MISC)$/$(SHL$(TNR)TARGETN:b)_linkinc.ls
$(SHL$(TNR)TARGETN) : $(LINKINCTARGETS)
.ELSE
$(MISC)$/%linkinc.ls:
echo . > $@
2001-09-28 11:11:33 -05:00
.ENDIF # "$(linkinc)"!=""
2000-09-20 08:43:26 -05:00
$(SHL$(TNR)TARGETN) : \
$(SHL$(TNR)OBJS)\
2000-10-30 06:14:55 -06:00
$(SHL$(TNR)DESCRIPTIONOBJ)\
2000-09-20 08:43:26 -05:00
$(SHL$(TNR)LIBS)\
$(USE_$(TNR)IMPLIB_DEPS)\
$(USE_SHL$(TNR)DEF)\
$(USE_SHL$(TNR)VERSIONMAP)\
$(SHL$(TNR)RES)\
2000-12-21 13:06:32 -06:00
$(SHL$(TNR)VERSIONH)\
2000-09-20 08:43:26 -05:00
$(SHL$(TNR)DEPN)
@echo ------------------------------
@echo Making: $(SHL$(TNR)TARGETN)
.IF "$(UPDATER)"=="YES"
2000-12-21 13:06:32 -06:00
@-+$(RM) $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.obj
2000-09-20 08:43:26 -05:00
.ENDIF
.IF "$(GUI)" == "WNT"
.IF "$(UPDATER)"=="YES"
.IF "$(COM)"=="GCC"
2002-03-07 07:02:37 -06:00
gcc -c -o$(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.obj -DWNT $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
2000-09-20 08:43:26 -05:00
.ELSE
2002-03-26 11:23:25 -06:00
$(CC) -c -Fo$(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.obj -DWNT $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
2000-09-20 08:43:26 -05:00
.ENDIF # "$(COM)"=="GCC"
.ENDIF # "$(UPDATER)"=="YES"
.IF "$(SHL$(TNR)DEFAULTRES)"!=""
@+-$(RM) $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc >& $(NULLDEV)
.IF "$(SHL$(TNR)ICON)" != ""
@-+echo 1 ICON $(SHL$(TNR)ICON) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
.ENDIF
.IF "$(use_shl_versions)" != ""
2002-03-26 11:23:25 -06:00
.IF "$(USE_SHELL)"!="4nt"
@-+echo #define VERVARIANT $(BUILD) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
@-+echo #define ORG_NAME $(SHL$(TNR)TARGET)$(DLLPOST) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
@-+echo #define INTERNAL_NAME $(SHL$(TNR)TARGET:b) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
@-+echo #include \"shlinfo.rc\" >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
.ELSE # "$(USE_SHELL)"!="4nt"
2000-10-09 10:16:04 -05:00
@-+echo #define VERVARIANT $(BUILD) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
@-+echo #define ORG_NAME $(SHL$(TNR)TARGET)$(DLLPOST) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
@-+echo #define INTERNAL_NAME $(SHL$(TNR)TARGET:b) >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
@-+echo #include "shlinfo.rc" >> $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
2002-03-26 11:23:25 -06:00
.ENDIF # "$(USE_SHELL)"!="4nt"
2000-09-20 08:43:26 -05:00
.ENDIF # "$(use_shl_versions)" != ""
2001-06-18 08:13:47 -05:00
$(RC) -DWIN32 -I$(SOLARTESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)$/$(SHL$(TNR)DEFAULTRES:b).rc
2000-09-20 08:43:26 -05:00
.ENDIF # "$(SHL$(TNR)DEFAULTRES)"!=""
.IF "$(SHL$(TNR)ALLRES)"!=""
.IF "$(USE_SHELL)"=="4nt"
2002-04-03 05:48:31 -06:00
+$(COPY) /b $(SHL$(TNR)ALLRES:s/res /res+/) $(SHL$(TNR)LINKRES)
.ELSE # "$(USE_SHELL)"=="4nt"
+$(TYPE) $(SHL$(TNR)ALLRES) > $(SHL$(TNR)LINKRES)
.ENDIF # "$(USE_SHELL)"=="4nt"
2000-09-20 08:43:26 -05:00
.ENDIF # "$(SHL$(TNR)ALLRES)"!=""
.IF "$(linkinc)"==""
.IF "$(USE_DEFFILE)"!=""
.IF "$(BOTH)"!=""
.IF "$(PRODUCT)"=="full"
.IF "$(UPDATER)"=="YES"
#
# product mit debug gelinkt
#
$(LINK) @$(mktmp \
$(LINKFLAGS) \
$(LINKFLAGSSHL) \
$(SHL$(TNR)STACK) $(SHL$(TNR)BASEX) \
/DEBUG /PDB:NONE \
-out:$(BIN)$/_$(SHL$(TNR)TARGET).dll \
2001-01-31 03:28:39 -06:00
-map:$(MISC)$/_$(@:b).map \
2000-09-20 08:43:26 -05:00
-def:$(SHL$(TNR)DEF) \
$(USE_$(TNR)IMPLIB) \
$(STDOBJ) \
2000-12-21 13:06:32 -06:00
$(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ) $(SHL$(TNR)OBJS) \
2000-09-20 08:43:26 -05:00
$(SHL$(TNR)LIBS) \
$(SHL$(TNR)STDLIBS) \
$(STDSHL) \
$(SHL$(TNR)LINKRES) \
)
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(PRODUCT)"=="full"
.ENDIF # "$(BOTH)"!=""
.IF "$(COM)"=="GCC"
@+echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -o$@ \
2000-12-21 13:06:32 -06:00
$(STDOBJ) $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ) | tr -d <20>\r\n<EFBFBD> > $(MISC)$/$(@:b).cmd
@+$(TYPE) $(SHL$(TNR)LIBS) | sed s\#$(ROUT)\#$(PRJ)$/$/$(ROUT)\#g | tr -d <20>\r\n<EFBFBD> >> $(MISC)$/$(@:b).cmd
2000-09-20 08:43:26 -05:00
@+echo $(SHL$(TNR)STDLIBS) $(STDSHL) $(SHL$(TNR)RES) >> $(MISC)$/$(@:b).cmd
$(MISC)$/$(@:b).cmd
.ELSE
$(LINK) @$(mktmp \
$(LINKFLAGS) \
$(LINKFLAGSSHL) \
$(SHL$(TNR)STACK) $(SHL$(TNR)BASEX) \
-out:$@ \
-map:$(MISC)$/$(@:b).map \
-def:$(SHL$(TNR)DEF) \
$(USE_$(TNR)IMPLIB) \
$(STDOBJ) \
2000-12-21 13:06:32 -06:00
$(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ) $(SHL$(TNR)OBJS) \
2000-09-20 08:43:26 -05:00
$(SHL$(TNR)LIBS) \
$(SHL$(TNR)STDLIBS) \
$(STDSHL) \
$(SHL$(TNR)LINKRES) \
)
.ENDIF # "$(COM)"=="GCC"
.ELSE # "$(USE_DEFFILE)"!=""
$(LINK) @$(mktmp $(LINKFLAGS) \
$(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \
$(SHL$(TNR)STACK) -out:$(SHL$(TNR)TARGETN) \
-map:$(MISC)$/$(@:B).map \
$(LB)$/$(SHL$(TNR)IMPLIB).exp \
$(STDOBJ) \
2000-12-21 13:06:32 -06:00
$(SHL$(TNR)OBJS) $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ) \
2000-09-20 08:43:26 -05:00
$(SHL$(TNR)LIBS) \
$(SHL$(TNR)STDLIBS) \
$(STDSHL) \
$(SHL$(TNR)LINKRES) \
)
.IF "$(BOTH)"!=""
.IF "$(PRODUCT)"=="full"
.IF "$(UPDATER)"=="YES"
#
# product mit debug gelinkt
#
$(LINK) @$(mktmp $(LINKFLAGS) \
$(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \
/DEBUG /PDB:NONE \
$(SHL$(TNR)STACK) -out:$(BIN)$/_$(SHL$(TNR)TARGET).dll \
2001-01-31 10:52:40 -06:00
-map:$(MISC)$/_$(@:B).map \
2000-09-20 08:43:26 -05:00
$(LB)$/$(SHL$(TNR)IMPLIB).exp \
$(STDOBJ) \
2000-12-21 13:06:32 -06:00
$(SHL$(TNR)OBJS) $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ) \
2000-09-20 08:43:26 -05:00
$(SHL$(TNR)LIBS) \
$(SHL$(TNR)STDLIBS) \
$(STDSHL) \
$(SHL$(TNR)LINKRES) \
)
.ENDIF # "$(UPDATER)"=="YES"
.ENDIF # "$(PRODUCT)"=="full"
.ENDIF # "$(BOTH)"!=""
.ENDIF # "$(USE_DEFFILE)"!=""
.ELSE # "$(linkinc)"==""
2002-03-26 11:23:25 -06:00
+-$(RM) del $(MISC)$/$(SHL$(TNR)TARGET).lnk
+-$(RM) $(MISC)$/$(SHL$(TNR)TARGET).lst
+$(TYPE) $(mktmp \
2000-09-20 08:43:26 -05:00
$(LINKFLAGS) \
$(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \
$(SHL$(TNR)STACK) $(MAPFILE) \
-out:$@ \
$(LB)$/$(SHL$(TNR)IMPLIB).exp \
$(STDOBJ) \
$(SHL$(TNR)OBJS) \
$(SHL$(TNR)STDLIBS) \
$(STDSHL) \
$(SHL$(TNR)LINKRES) \
) >> $(MISC)$/$(SHL$(TNR)TARGET).lnk
2002-03-26 11:23:25 -06:00
+$(TYPE) $(MISC)$/$(SHL$(TNR)TARGETN:b)_linkinc.ls >> $(MISC)$/$(SHL$(TNR)TARGET).lnk
2000-09-20 08:43:26 -05:00
$(LINK) @$(MISC)$/$(SHL$(TNR)TARGET).lnk
.ENDIF # "$(linkinc)"==""
.ENDIF # "$(GUI)" == "WNT"
.IF "$(GUI)"=="UNX"
.IF "$(UPDATER)"=="YES"
.IF "$(OS)"=="SOLARIS"
.IF "$(COM)"=="GCC"
2002-03-07 07:02:37 -06:00
$(cc) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
2000-09-20 08:43:26 -05:00
.ELSE
2002-03-07 07:02:37 -06:00
$(cc) -c -KPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
2000-09-20 08:43:26 -05:00
.ENDIF
.ENDIF
.IF "$(OS)"=="MACOSX"
2002-03-07 07:02:37 -06:00
$(cc) -c -dynamic -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
@echo "------------------------------"
@echo "Updating static data member initializations"
@+dmake -f $(SOLARENV)$/$(OUTPATH)$/inc/makefile.mk $(MFLAGS) $(CALLMACROS) "PRJ=$(PRJ)" "PRJNAME=$(PRJNAME)" "TARGET=$(TARGET)"
2000-09-20 08:43:26 -05:00
.ENDIF
.IF "$(OS)"=="LINUX" || "$(OS)"=="NETBSD" || "$(OS)"=="FREEBSD"
2002-03-07 07:02:37 -06:00
$(cc) -c -fPIC -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
.ENDIF
.IF "$(OS)"=="IRIX"
2002-03-07 07:02:37 -06:00
$(cc) -o $(SLO)$/{$(subst,$(UPD)$(DLLPOSTFIX),_dflt $(SHL$(TNR)TARGET))}_version.o -DUNX $(ENVCDEFS) -I$(INCCOM) $(SOLARENV)$/src$/version.c
@+if ( ! -e $(SOLARLIBDIR) ) mkdir $(SOLARLIBDIR)
@+if ( ! -e $(SOLARLIBDIR)/so_locations ) touch $(SOLARLIBDIR)/so_locations
.ENDIF # "$(OS)"=="IRIX"
2000-09-20 08:43:26 -05:00
.ENDIF
.IF "$(OS)"=="MACOSX"
@+-$(RM) $(MISC)$/$(@:b).list
2000-09-20 08:43:26 -05:00
@+-$(RM) $(MISC)$/$(@:b).cmd
@+echo $(STDSLO) $(SHL$(TNR)OBJS:s/.obj/.o/) \
$(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ:s/.obj/.o/) \
`cat /dev/null $(SHL$(TNR)LIBS) | sed s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)$/$(@:b).list
@+echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) -L$(PRJ)$/$(ROUT)$/lib $(SOLARLIB) -o $@ \
$(SHL$(TNR)STDLIBS) $(SHL$(TNR)ARCHIVES) $(STDSHL) -filelist $(MISC)$/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)$/$(@:b).cmd
2000-09-20 08:43:26 -05:00
@cat $(MISC)$/$(@:b).cmd
@+source $(MISC)$/$(@:b).cmd
# This is a hack as libstatic and libcppuhelper have a circular dependency
.IF "$(PRJNAME)"=="cppuhelper"
@echo "------------------------------"
@echo "Rerunning static data member initializations"
@+dmake -u -f $(SOLARENV)$/$(OUTPATH)$/inc/makefile.mk $(MFLAGS) $(CALLMACROS) "PRJ=$(PRJ)" "PRJNAME=$(PRJNAME)" "TARGET=$(TARGET)"
.ENDIF
.IF "$(SHL$(TNR)VERSIONMAP)"!=""
@strip -i -r -u -s $(SHL$(TNR)VERSIONMAP) $@
.ENDIF
@echo "Making: $@.framework"
@create-bundle $@
2000-09-20 08:43:26 -05:00
.IF "$(UPDATER)"=="YES"
2001-06-19 08:41:53 -05:00
.IF "$(SHL$(TNR)NOCHECK)"==""
2000-09-20 08:43:26 -05:00
+$(SOLARENV)$/bin$/checkdll.sh -L$(LB) $(SOLARLIB) $(SHL$(TNR)TARGETN).framework
2001-06-19 08:41:53 -05:00
.ENDIF # "$(SHL$(TNR)NOCHECK)"!=""
2000-09-20 08:43:26 -05:00
.ENDIF
.ELSE # "$(OS)"=="MACOSX"
@+-$(RM) $(MISC)$/$(@:b).cmd
2001-04-26 05:18:43 -05:00
@+echo $(LINK) $(LINKFLAGS) $(SHL$(TNR)SONAME) $(LINKFLAGSSHL) $(SHL$(TNR)VERSIONMAPPARA) -L$(PRJ)$/$(ROUT)$/lib $(SOLARLIB) $(STDSLO) $(SHL$(TNR)OBJS:s/.obj/.o/) \
$(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ:s/.obj/.o/) -o $@ \
`cat /dev/null $(SHL$(TNR)LIBS) | tr -s " " "\n" | sed s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
$(SHL$(TNR)STDLIBS) $(SHL$(TNR)ARCHIVES) $(STDSHL) $(LINKOUTPUT_FILTER) > $(MISC)$/$(@:b).cmd
@cat $(MISC)$/$(@:b).cmd
@+source $(MISC)$/$(@:b).cmd
.IF "$(OS)"=="S390"
+mv -f ($@:s/$(DLLPOST)/.x/) $(LB)
.ENDIF
.IF "$(UPDATER)"=="YES"
2001-06-19 08:41:53 -05:00
.IF "$(SHL$(TNR)NOCHECK)"==""
+-$(RM) $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f)
+$(RENAME) $(SHL$(TNR)TARGETN) $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f)
+$(SOLARENV)$/bin$/checkdll.sh -L$(LB) $(SOLARLIB:s/2.6//) $(SHL$(TNR)TARGETN:d)check_$(SHL$(TNR)TARGETN:f)
2001-06-19 08:41:53 -05:00
.ENDIF # "$(SHL$(TNR)NOCHECK)"!=""
2000-09-20 08:43:26 -05:00
.ENDIF # "$(UPDATER)"=="YES"
2001-04-26 05:18:43 -05:00
.IF "$(UNIXVERSIONNAMES)"!=""
+$(RM) $(LB)$/$(SHL$(TNR)TARGETN:b:b:b)
+$(RM) $(LB)$/$(SHL$(TNR)TARGETN:b:b)
2001-06-19 04:40:11 -05:00
+cd $(LB) && ln -s $(SHL$(TNR)TARGETN:f) $(SHL$(TNR)TARGETN:b:b)
+cd $(LB) && ln -s $(SHL$(TNR)TARGETN:f:b:b) $(SHL$(TNR)TARGETN:b:b:b)
2001-04-26 05:18:43 -05:00
.ENDIF # "$(UNIXVERSIONNAMES)"!=""
.ENDIF # "$(OS)"=="MACOSX"
2001-05-09 04:48:28 -05:00
@ls -l $@
2000-09-20 08:43:26 -05:00
.ENDIF # "$(GUI)" == "UNX"
.IF "$(GUI)"=="MAC"
@+-$(RM) $@ $@.xSYM
2000-12-21 13:06:32 -06:00
$(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(foreach,i,$(shell $(UNIX2MACPATH) $(PRJ)$/$(ROUT)$/lib $(SOLARLIB:s/-L//)) -L"$i") $(shell $(UNIX2MACPATH) $(STDSLO) $(SHL$(TNR)OBJS) `cat /dev/null $(SHL$(TNR)LIBS) | sed s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ)) $(SHL$(TNR)STDLIBS) $(SHL$(TNR)ARCHIVES) $(STDSHL) $(LINKOUTPUT_FILTER) -o $(shell $(UNIX2MACPATH) $@)
2000-09-20 08:43:26 -05:00
.ENDIF # "$(GUI)"=="MAC"
.IF "$(TARGETTHREAD)"!="MT"
@+echo ----------------------------------------------------------
@+echo -
@+echo - THREAD WARNING! - this library was linked single threaded
@+echo - and must not be used in any office installation!
@+echo -
@+echo ----------------------------------------------------------
.ENDIF # "$(TARGETTHREAD)"!="MT"
2002-02-08 08:18:05 -06:00
.IF "$(TESTDIR)"!=""
.IF "$(NO_TESTS)"==""
ALLTAR : runtest_$(SHL$(TNR)TARGET)
runtest_$(SHL$(TNR)TARGET) : $(SHL$(TNR)TARGETN)
testshl $(SHL$(TNR)TARGETN) sce\$(SHL$(TNR)TARGET).sce -msg -skip
2002-02-08 08:18:05 -06:00
.ENDIF # "$(NO_TESTS)"==""
.ENDIF # "$(TESTDIR)"!=""
2000-09-20 08:43:26 -05:00
.ENDIF # "$(SHL$(TNR)TARGETN)"!=""
# Anweisungen fuer das Linken
# unroll end
#######################################################
.ENDIF # MULTI_SHL_FLAG
#-------------------------------------------------------------------------
.IF "$(MULTI_SHLIMP_FLAG)"==""
# MULTITARGET: SHLNIMP --- hier einfuegen
$(SHL1IMPLIBN) .NULL : SHL1IMP
$(SHL2IMPLIBN) .NULL : SHL2IMP
$(SHL3IMPLIBN) .NULL : SHL3IMP
$(SHL4IMPLIBN) .NULL : SHL4IMP
$(SHL5IMPLIBN) .NULL : SHL5IMP
$(SHL6IMPLIBN) .NULL : SHL6IMP
$(SHL7IMPLIBN) .NULL : SHL7IMP
$(SHL8IMPLIBN) .NULL : SHL8IMP
$(SHL9IMPLIBN) .NULL : SHL9IMP
.ENDIF
.IF "$(MULTI_SHLIMP_FLAG)"==""
# MULTITARGET: SHLNIMP --- hier einfuegen
SHL1IMP SHL2IMP SHL3IMP SHL4IMP SHL5IMP SHL6IMP SHL7IMP SHL8IMP SHL9IMP:
.IF "$(GUI)" != "MAC"
@dmake $(SHL$(TNR)IMPLIBN) MULTI_SHLIMP_FLAG=true TNR:=$(TNR) $(MFLAGS) $(CALLMACROS)
.ELSE
@dmake "$(SHL$(TNR)IMPLIBN)" MULTI_SHLIMP_FLAG=true TNR:=$(TNR) $(MFLAGS) $(CALLMACROS)
.ENDIF
.ELSE
#######################################################
# Anweisungen fuer das Linken
# unroll begin
.IF "$(SHL$(TNR)IMPLIBN)" != ""
.IF "$(UPDATER)"=="YES"
2002-01-08 07:12:09 -06:00
USELIB$(TNR)DEPN+=$(SHL$(TNR)LIBS)
2000-09-20 08:43:26 -05:00
.ELSE
.ENDIF
.IF "$(USE_DEFFILE)"!=""
2002-01-08 07:12:09 -06:00
USE_SHL$(TNR)TARGET=$(SHL$(TNR)TARGETN)
2000-09-20 08:43:26 -05:00
.ENDIF
.IF "$(GUI)" != "UNX"
$(SHL$(TNR)IMPLIBN): \
$(SHL$(TNR)DEF) \
2002-01-08 07:12:09 -06:00
$(USE_SHL$(TNR)TARGET) \
$(USELIB$(TNR)DEPN) \
2000-09-20 08:43:26 -05:00
$(USELIBDEPN)
.ELSE
$(SHL$(TNR)IMPLIBN): \
$(SHL$(TNR)LIBS)
.ENDIF
@echo ------------------------------
@echo Making: $(SHL$(TNR)IMPLIBN)
.IF "$(GUI)" == "WNT"
# bei use_deffile implib von linker erstellt
.IF "$(USE_DEFFILE)"==""
$(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL$(TNR)IMPLIBN) \
-def:$(SHL$(TNR)DEF) )
.ELSE # "$(GUI)" == "WNT"
2002-03-26 11:23:25 -06:00
+-if exist $@ $(TOUCH) $@
+-if not exist $@ echo rebuild $(SHL$(TNR)TARGETN) to get $@
2000-09-20 08:43:26 -05:00
.ENDIF # "$(GUI)" == "WNT"
.ELSE
.IF "$(GUI)" == "WIN" || "$(GUI)" == "OS2"
.IF "$(USE_DEFFILE)"==""
$(IMPLIB) $(IMPLIBFLAGS) $@ $(SHL$(TNR)DEF)
.ELSE
$(IMPLIB) $(IMPLIBFLAGS) $@ $(SHL$(TNR)TARGETN)
.ENDIF
.ELSE
@echo keine ImportLibs auf Mac und *ix
@+-$(RM) $@
@$(TOUCH) $@
.ENDIF
.ENDIF
.ENDIF
# Anweisungen fuer das Linken
# unroll end
#######################################################
.ENDIF # MULTI_SHLIMP_FLAG
#------------------------------------------------------------------------