xref: /aoo41x/main/pyuno/source/module/makefile.mk (revision cdf0e10c)
1#*************************************************************************
2#
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# Copyright 2000, 2010 Oracle and/or its affiliates.
6#
7# OpenOffice.org - a multi-platform office productivity suite
8#
9# This file is part of OpenOffice.org.
10#
11# OpenOffice.org is free software: you can redistribute it and/or modify
12# it under the terms of the GNU Lesser General Public License version 3
13# only, as published by the Free Software Foundation.
14#
15# OpenOffice.org is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18# GNU Lesser General Public License version 3 for more details
19# (a copy is included in the LICENSE file that accompanied this code).
20#
21# You should have received a copy of the GNU Lesser General Public License
22# version 3 along with OpenOffice.org.  If not, see
23# <http://www.openoffice.org/license.html>
24# for a copy of the LGPLv3 License.
25#
26#*************************************************************************
27PRJ=..$/..
28
29PRJNAME=pyuno
30TARGET=pyuno
31ENABLE_EXCEPTIONS=TRUE
32
33LINKFLAGSDEFS = # do not fail with missing symbols
34
35# --- Settings -----------------------------------------------------
36
37.INCLUDE :  settings.mk
38.IF "$(L10N_framework)"==""
39#-------------------------------------------------------------------
40
41.IF "$(OS)$(COMEX)" == "SOLARIS4"
42# no -Bdirect for SunWS CC
43DIRECT = $(LINKFLAGSDEFS)
44.ENDIF
45
46# special setting from environment
47.IF "$(EXTRA_CFLAGS)"!=""
48EXTRA_FRAMEWORK_FLAG=-framework Python
49.ENDIF # .IF "$(EXTRA_CFLAGS)"!=""
50
51.IF "$(GUI)" == "UNX"
52# python expects modules without the lib prefix
53# pyuno.so even on Mac OS X, because it is a python module
54PYUNO_MODULE=$(DLLDEST)$/pyuno.so
55PYUNORC=pyunorc
56.ELIF "$(GUI)" == "OS2"
57.INCLUDE :  pyversion.mk
58PYUNORC=pyuno.ini
59.ELSE
60.INCLUDE :  pyversion.mk
61PYUNORC=pyuno.ini
62DLLPOST=.pyd
63.ENDIF
64
65.IF "$(SYSTEM_PYTHON)" == "YES"
66PYTHONLIB=$(PYTHON_LIBS)
67CFLAGS+=$(PYTHON_CFLAGS)
68.ELSE # "$(SYSTEM_PYTHON)" == "YES"
69.INCLUDE :  pyversion.mk
70CFLAGS+=-I$(SOLARINCDIR)$/python
71.ENDIF # "$(SYSTEM_PYTHON)" == "YES"
72
73SHL1TARGET=$(TARGET)
74SLOFILES= \
75		$(SLO)$/pyuno_runtime.obj 	\
76		$(SLO)$/pyuno.obj 		\
77		$(SLO)$/pyuno_callable.obj 	\
78		$(SLO)$/pyuno_module.obj 	\
79		$(SLO)$/pyuno_type.obj 		\
80		$(SLO)$/pyuno_util.obj		\
81		$(SLO)$/pyuno_except.obj	\
82		$(SLO)$/pyuno_adapter.obj	\
83		$(SLO)$/pyuno_gc.obj
84
85# remove this, when issue i35064 is integrated
86.IF "$(COM)"=="GCC"
87NOOPTFILES= \
88	$(SLO)$/pyuno_module.obj
89.ENDIF			# "$(COM)"=="GCC"
90
91
92SHL1STDLIBS= \
93		$(CPPULIB)		\
94		$(CPPUHELPERLIB)	\
95		$(SALLIB)		\
96		$(PYTHONLIB) 		\
97		$(EXTRA_FRAMEWORK_FLAG)
98
99SHL1DEPN=
100SHL1LIBS=$(SLB)$/$(TARGET).lib
101SHL1IMPLIB=i$(TARGET)
102
103SHL1DEF=	$(MISC)$/$(SHL1TARGET).def
104
105DEF1NAME=	$(SHL1TARGET)
106DEF1DEPN=	$(MISC)$/pyuno.flt
107
108DEFLIB1NAME=$(TARGET)
109
110# --- Targets ------------------------------------------------------
111
112.IF "$(GUI)$(COM)"=="WNTGCC"
113ALLTAR : \
114	$(DLLDEST)$/uno.py 		\
115	$(DLLDEST)$/unohelper.py	\
116	$(PYUNO_MODULE)			\
117	$(MISC)$/$(PYUNORC)		\
118	$(LB)$/lib$(TARGET).a
119
120$(LB)$/lib$(TARGET).a: $(MISC)$/$(TARGET).def
121	dlltool --dllname $(TARGET)$(DLLPOST) --input-def=$(MISC)$/$(TARGET).def --kill-at --output-lib=$(LB)$/lib$(TARGET).a
122.ELSE
123ALLTAR : \
124	$(DLLDEST)$/uno.py 		\
125	$(DLLDEST)$/unohelper.py	\
126	$(PYUNO_MODULE)			\
127	$(MISC)$/$(PYUNORC)
128.ENDIF
129.ENDIF
130
131.INCLUDE :  target.mk
132.IF "$(L10N_framework)"==""
133$(DLLDEST)$/%.py: %.py
134	cp $? $@
135
136
137.IF "$(GUI)" == "UNX"
138$(PYUNO_MODULE) : $(SLO)$/pyuno_dlopenwrapper.obj
139.IF "$(OS)" == "LINUX"
140	@echo $(LINK) $(LINKFLAGS) $(LINKFLAGSRUNPATH_OOO) $(LINKFLAGSSHLCUI) -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
141.ELIF "$(OS)" == "SOLARIS"
142	@echo ld -G -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
143.ELIF "$(OS)" == "FREEBSD"
144	@echo ld -shared -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
145.ELIF "$(OS)" == "NETBSD"
146	@echo $(LINK) $(LINKFLAGSSHLCUI) -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
147.ELIF "$(OS)" == "MACOSX"
148	@echo $(CC) -bundle -ldl -o $@ $(SLO)$/pyuno_dlopenwrapper.o $(EXTRA_LINKFLAGS) $(EXTRA_FRAMEWORK_FLAG) > $(MISC)$/$(@:b).cmd
149.ELSE
150	@echo $(LINK) $(LINKFLAGSSHLCUI) -o $@ $(SLO)$/pyuno_dlopenwrapper.o > $(MISC)$/$(@:b).cmd
151.ENDIF
152	cat $(MISC)$/$(@:b).cmd
153	@+source $(MISC)$/$(@:b).cmd
154.ENDIF
155
156
157$(MISC)$/$(PYUNORC) : pyuno
158	-rm -f $@
159	cat pyuno > $@
160
161$(MISC)$/pyuno.flt : pyuno.flt
162	-rm -f $@
163	cat $? > $@
164.ENDIF # L10N_framework
165
166