xref: /aoo4110/main/pyuno/source/module/makefile.mk (revision b1cdbd2c)
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