1*b1cdbd2cSJim Jagielski#************************************************************** 2*b1cdbd2cSJim Jagielski# 3*b1cdbd2cSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski# or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski# distributed with this work for additional information 6*b1cdbd2cSJim Jagielski# regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski# to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski# "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski# with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski# 11*b1cdbd2cSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski# 13*b1cdbd2cSJim Jagielski# Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski# software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski# KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski# specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski# under the License. 19*b1cdbd2cSJim Jagielski# 20*b1cdbd2cSJim Jagielski#************************************************************** 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim JagielskiPRJ=..$/.. 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim JagielskiPRJNAME=pyuno 26*b1cdbd2cSJim JagielskiTARGET=pyuno 27*b1cdbd2cSJim JagielskiENABLE_EXCEPTIONS=TRUE 28*b1cdbd2cSJim Jagielski 29*b1cdbd2cSJim JagielskiLINKFLAGSDEFS = # do not fail with missing symbols 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski# --- Settings ----------------------------------------------------- 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski.INCLUDE : settings.mk 34*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"=="" 35*b1cdbd2cSJim Jagielski#------------------------------------------------------------------- 36*b1cdbd2cSJim Jagielski 37*b1cdbd2cSJim Jagielski.IF "$(OS)$(COMEX)" == "SOLARIS4" 38*b1cdbd2cSJim Jagielski# no -Bdirect for SunWS CC 39*b1cdbd2cSJim JagielskiDIRECT = $(LINKFLAGSDEFS) 40*b1cdbd2cSJim Jagielski.ENDIF 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski# special setting from environment 43*b1cdbd2cSJim Jagielski.IF "$(EXTRA_CFLAGS)"!="" 44*b1cdbd2cSJim JagielskiEXTRA_FRAMEWORK_FLAG=-framework Python 45*b1cdbd2cSJim Jagielski.ENDIF # .IF "$(EXTRA_CFLAGS)"!="" 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX" 48*b1cdbd2cSJim Jagielski# python expects modules without the lib prefix 49*b1cdbd2cSJim Jagielski# pyuno.so even on Mac OS X, because it is a python module 50*b1cdbd2cSJim JagielskiPYUNO_MODULE=$(DLLDEST)$/pyuno.so 51*b1cdbd2cSJim JagielskiPYUNORC=pyunorc 52*b1cdbd2cSJim Jagielski.ELIF "$(GUI)" == "OS2" 53*b1cdbd2cSJim Jagielski#.INCLUDE : pyversion.mk 54*b1cdbd2cSJim JagielskiPYUNORC=pyuno.ini 55*b1cdbd2cSJim Jagielski.ELSE 56*b1cdbd2cSJim Jagielski.INCLUDE : pyversion.mk 57*b1cdbd2cSJim JagielskiPYUNORC=pyuno.ini 58*b1cdbd2cSJim JagielskiDLLPOST=.pyd 59*b1cdbd2cSJim Jagielski.ENDIF 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski.IF "$(SYSTEM_PYTHON)" == "YES" 62*b1cdbd2cSJim JagielskiPYTHONLIB=$(PYTHON_LIBS) 63*b1cdbd2cSJim JagielskiCFLAGS+=$(PYTHON_CFLAGS) 64*b1cdbd2cSJim Jagielski.ELSE # "$(SYSTEM_PYTHON)" == "YES" 65*b1cdbd2cSJim Jagielski.INCLUDE : pyversion.mk 66*b1cdbd2cSJim JagielskiCFLAGS+=-I$(SOLARINCDIR)$/python 67*b1cdbd2cSJim Jagielski.ENDIF # "$(SYSTEM_PYTHON)" == "YES" 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim JagielskiSHL1TARGET=$(TARGET) 70*b1cdbd2cSJim JagielskiSLOFILES= \ 71*b1cdbd2cSJim Jagielski $(SLO)$/pyuno_runtime.obj \ 72*b1cdbd2cSJim Jagielski $(SLO)$/pyuno.obj \ 73*b1cdbd2cSJim Jagielski $(SLO)$/pyuno_callable.obj \ 74*b1cdbd2cSJim Jagielski $(SLO)$/pyuno_module.obj \ 75*b1cdbd2cSJim Jagielski $(SLO)$/pyuno_type.obj \ 76*b1cdbd2cSJim Jagielski $(SLO)$/pyuno_util.obj \ 77*b1cdbd2cSJim Jagielski $(SLO)$/pyuno_except.obj \ 78*b1cdbd2cSJim Jagielski $(SLO)$/pyuno_adapter.obj \ 79*b1cdbd2cSJim Jagielski $(SLO)$/pyuno_gc.obj 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski# remove this, when issue i35064 is integrated 82*b1cdbd2cSJim Jagielski.IF "$(COM)"=="GCC" 83*b1cdbd2cSJim JagielskiNOOPTFILES= \ 84*b1cdbd2cSJim Jagielski $(SLO)$/pyuno_module.obj 85*b1cdbd2cSJim Jagielski.ENDIF # "$(COM)"=="GCC" 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim JagielskiSHL1STDLIBS= \ 89*b1cdbd2cSJim Jagielski $(CPPULIB) \ 90*b1cdbd2cSJim Jagielski $(CPPUHELPERLIB) \ 91*b1cdbd2cSJim Jagielski $(SALLIB) \ 92*b1cdbd2cSJim Jagielski $(PYTHONLIB) \ 93*b1cdbd2cSJim Jagielski $(EXTRA_FRAMEWORK_FLAG) 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim JagielskiSHL1DEPN= 96*b1cdbd2cSJim JagielskiSHL1LIBS=$(SLB)$/$(TARGET).lib 97*b1cdbd2cSJim JagielskiSHL1IMPLIB=i$(TARGET) 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim JagielskiSHL1DEF= $(MISC)$/$(SHL1TARGET).def 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim JagielskiDEF1NAME= $(SHL1TARGET) 102*b1cdbd2cSJim JagielskiDEF1DEPN= $(MISC)$/pyuno.flt 103*b1cdbd2cSJim Jagielski 104*b1cdbd2cSJim JagielskiDEFLIB1NAME=$(TARGET) 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski# --- Targets ------------------------------------------------------ 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski.IF "$(GUI)$(COM)"=="WNTGCC" 109*b1cdbd2cSJim JagielskiALLTAR : \ 110*b1cdbd2cSJim Jagielski $(DLLDEST)$/uno.py \ 111*b1cdbd2cSJim Jagielski $(DLLDEST)$/unohelper.py \ 112*b1cdbd2cSJim Jagielski $(PYUNO_MODULE) \ 113*b1cdbd2cSJim Jagielski $(MISC)$/$(PYUNORC) \ 114*b1cdbd2cSJim Jagielski $(LB)$/lib$(TARGET).a 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski$(LB)$/lib$(TARGET).a: $(MISC)$/$(TARGET).def 117*b1cdbd2cSJim Jagielski dlltool --dllname $(TARGET)$(DLLPOST) --input-def=$(MISC)$/$(TARGET).def --kill-at --output-lib=$(LB)$/lib$(TARGET).a 118*b1cdbd2cSJim Jagielski.ELSE 119*b1cdbd2cSJim JagielskiALLTAR : \ 120*b1cdbd2cSJim Jagielski $(DLLDEST)$/uno.py \ 121*b1cdbd2cSJim Jagielski $(DLLDEST)$/unohelper.py \ 122*b1cdbd2cSJim Jagielski $(PYUNO_MODULE) \ 123*b1cdbd2cSJim Jagielski $(MISC)$/$(PYUNORC) 124*b1cdbd2cSJim Jagielski.ENDIF 125*b1cdbd2cSJim Jagielski.ENDIF 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski.INCLUDE : target.mk 128*b1cdbd2cSJim Jagielski.IF "$(L10N_framework)"=="" 129*b1cdbd2cSJim Jagielski$(DLLDEST)$/%.py: %.py 130*b1cdbd2cSJim Jagielski cp $? $@ 131*b1cdbd2cSJim Jagielski 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX" 134*b1cdbd2cSJim Jagielski$(PYUNO_MODULE) : $(SLO)$/pyuno_dlopenwrapper.obj 135*b1cdbd2cSJim Jagielski.IF "$(OS)" == "LINUX" 136*b1cdbd2cSJim Jagielski @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSRUNPATH_OOO) $(LINKFLAGSSHLCUI) -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd 137*b1cdbd2cSJim Jagielski.ELIF "$(OS)" == "SOLARIS" 138*b1cdbd2cSJim Jagielski @echo ld -G -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd 139*b1cdbd2cSJim Jagielski.ELIF "$(OS)" == "FREEBSD" 140*b1cdbd2cSJim Jagielski @echo ld -shared -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd 141*b1cdbd2cSJim Jagielski.ELIF "$(OS)" == "NETBSD" 142*b1cdbd2cSJim Jagielski @echo $(LINK) $(LINKFLAGSSHLCUI) -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd 143*b1cdbd2cSJim Jagielski.ELIF "$(OS)" == "MACOSX" 144*b1cdbd2cSJim Jagielski @echo $(CC) -bundle -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o $(EXTRA_LINKFLAGS) $(EXTRA_FRAMEWORK_FLAG) > $(MISC)$/$(@:b).cmd 145*b1cdbd2cSJim Jagielski.ELSE 146*b1cdbd2cSJim Jagielski @echo $(LINK) $(LINKFLAGSSHLCUI) -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd 147*b1cdbd2cSJim Jagielski.ENDIF 148*b1cdbd2cSJim Jagielski cat $(MISC)$/$(@:b).cmd 149*b1cdbd2cSJim Jagielski @+source $(MISC)$/$(@:b).cmd 150*b1cdbd2cSJim Jagielski.ENDIF 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski 153*b1cdbd2cSJim Jagielski$(MISC)$/$(PYUNORC) : pyuno 154*b1cdbd2cSJim Jagielski -rm -f $@ 155*b1cdbd2cSJim Jagielski cat pyuno > $@ 156*b1cdbd2cSJim Jagielski 157*b1cdbd2cSJim Jagielski$(MISC)$/pyuno.flt : pyuno.flt 158*b1cdbd2cSJim Jagielski -rm -f $@ 159*b1cdbd2cSJim Jagielski cat $? > $@ 160*b1cdbd2cSJim Jagielski.ENDIF # L10N_framework 161*b1cdbd2cSJim Jagielski 162