Files
loongoffice/pyuno/source/module/makefile.mk
2011-07-24 19:23:32 +02:00

160 lines
4.0 KiB
Makefile

#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
# This file is part of OpenOffice.org.
#
# OpenOffice.org is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License version 3
# only, as published by the Free Software Foundation.
#
# OpenOffice.org 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 version 3 for more details
# (a copy is included in the LICENSE file that accompanied this code).
#
# You should have received a copy of the GNU Lesser General Public License
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
#*************************************************************************
PRJ=../..
PRJNAME=pyuno
TARGET=pyuno
ENABLE_EXCEPTIONS=TRUE
LINKFLAGSDEFS = # do not fail with missing symbols
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
.IF "$(L10N_framework)"==""
#-------------------------------------------------------------------
.IF "$(OS)$(COMEX)" == "SOLARIS4"
# no -Bdirect for SunWS CC
DIRECT = $(LINKFLAGSDEFS)
.ENDIF
# special setting from environment
.IF "$(EXTRA_CFLAGS)"!=""
EXTRA_FRAMEWORK_FLAG=-framework Python
.ENDIF # .IF "$(EXTRA_CFLAGS)"!=""
.IF "$(GUI)" == "UNX"
PYUNORC=pyunorc
.ELSE
.IF "$(CROSS_COMPILING)" != "YES"
.INCLUDE : pyversion.mk
.ENDIF
PYUNORC=pyuno.ini
DLLPOST=.pyd
.ENDIF
.IF "$(SYSTEM_PYTHON)" == "YES"
PYTHONLIB=$(PYTHON_LIBS)
CFLAGS+=$(PYTHON_CFLAGS)
.ELSE # "$(SYSTEM_PYTHON)" == "YES"
.INCLUDE : pyversion.mk
CFLAGS+=-I$(SOLARINCDIR)/python
.ENDIF # "$(SYSTEM_PYTHON)" == "YES"
SHL1TARGET=$(TARGET)
SLOFILES= \
$(SLO)/pyuno_runtime.obj \
$(SLO)/pyuno.obj \
$(SLO)/pyuno_callable.obj \
$(SLO)/pyuno_module.obj \
$(SLO)/pyuno_type.obj \
$(SLO)/pyuno_util.obj \
$(SLO)/pyuno_except.obj \
$(SLO)/pyuno_adapter.obj \
$(SLO)/pyuno_gc.obj
# remove this, when issue i35064 is integrated
.IF "$(COM)"=="GCC"
NOOPTFILES= \
$(SLO)/pyuno_module.obj
.ENDIF # "$(COM)"=="GCC"
SHL1STDLIBS= \
$(CPPULIB) \
$(CPPUHELPERLIB) \
$(SALLIB) \
$(PYTHONLIB) \
$(EXTRA_FRAMEWORK_FLAG)
SHL1DEPN=$(eq,$(OS),MACOSX $(MISC)/framework_link $(NULL))
SHL1LIBS=$(SLB)/$(TARGET).lib
SHL1IMPLIB=i$(TARGET)
SHL1DEF=$(MISC)/$(SHL1TARGET).def
DEF1NAME=$(SHL1TARGET)
DEF1DEPN=$(MISC)/pyuno.flt
DEFLIB1NAME=$(TARGET)
# --- Targets ------------------------------------------------------
.IF "$(GUI)$(COM)"=="WNTGCC"
ALLTAR : \
$(DLLDEST)/uno.py \
$(DLLDEST)/unohelper.py \
$(MISC)/$(PYUNORC) \
$(LB)/lib$(TARGET).a
$(LB)/lib$(TARGET).a: $(MISC)/$(TARGET).def
$(DLLTOOL) --dllname $(TARGET)$(DLLPOST) --input-def=$(MISC)/$(TARGET).def --kill-at --output-lib=$(LB)/lib$(TARGET).a
.ELSE
.IF "$(GUI)"!="WNT"
# For some reason the build breaks on Windows if this is listed in the
# prerequisite list of ALLTAR, but pyuno.pyd still gets produced. Go
# figure. But we need it on non-Windows.
targetdll=$(LB)/$(TARGET)$(DLLPOST)
.ENDIF
ALLTAR : \
$(DLLDEST)/uno.py \
$(DLLDEST)/unohelper.py \
$(targetdll) \
$(MISC)/$(PYUNORC)
.ENDIF
.ENDIF
.INCLUDE : target.mk
.IF "$(L10N_framework)"==""
$(DLLDEST)/%.py: %.py
cp $? $@
# make checkdll happy
$(MISC)/framework_link :
$(COMMAND_ECHO)ln -sf $(SOLARLIBDIR)/OOoPython.framework $(LB)/OOoPython.framework
@touch $@
$(MISC)/$(PYUNORC) : pyuno
-rm -f $@
cat pyuno > $@
$(MISC)/pyuno.flt : pyuno.flt
-rm -f $@
cat $? > $@
.IF "$(DLLPRE)"!=""
# python does not accept the "lib" prefix in the module library
$(LB)/$(TARGET)$(DLLPOST) : $(LB)/$(DLLPRE)$(TARGET)$(DLLPOST)
-rm -f $@
ln -s $? $@
.ENDIF
.ENDIF # L10N_framework