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