Salome HOME
Merge from V6_main 01/04/2013
[samples/component.git] / idl / Makefile.am
1 # Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 # This Makefile is responsible of generating the client and server
21 # implementation of IDL interfaces for both C++ and python usage.
22 # The building process of the C++ files is in charge of each source
23 # package and then is not manage here.
24 #
25 include $(top_srcdir)/adm_local/unix/make_common_starter.am
26
27 BASEIDL_FILES = \
28         AddComponent.idl \
29         AdditionComponent.idl \
30         DivComponent.idl \
31         FactorialComponent.idl \
32         MulComponent.idl \
33         SubComponent.idl \
34         SyrComponent.idl \
35         SyrControlComponent.idl \
36         TypesCheck.idl \
37         DataStreamComponent.idl \
38         SIGNALSComponent.idl \
39         UndefinedSymbolComponent.idl \
40         Calculator.idl
41
42 BASEIDL_FILES_PY=$(BASEIDL_FILES:%.idl=%_idl.py)
43
44 # This variable defines the files to be installed
45 dist_salomeidl_DATA = $(BASEIDL_FILES)
46
47 # GUI idl common library
48 lib_LTLIBRARIES = libSalomeIDLCOMPONENT.la
49
50 # Sources built from idl files
51 BASEIDL_SOURCES =\
52         AddComponentSK.cc \
53         AdditionComponentSK.cc \
54         DivComponentSK.cc \
55         FactorialComponentSK.cc \
56         MulComponentSK.cc \
57         SubComponentSK.cc \
58         SyrComponentSK.cc \
59         SyrControlComponentSK.cc \
60         TypesCheckSK.cc \
61         DataStreamComponentSK.cc \
62         SIGNALSComponentSK.cc \
63         UndefinedSymbolComponentSK.cc \
64         CalculatorSK.cc
65 DYNIDL_SOURCES = \
66         AddComponentDynSK.cc \
67         AdditionComponentDynSK.cc \
68         DivComponentDynSK.cc \
69         FactorialComponentDynSK.cc \
70         MulComponentDynSK.cc \
71         SubComponentDynSK.cc \
72         SyrComponentDynSK.cc \
73         SyrControlComponentDynSK.cc \
74         TypesCheckDynSK.cc \
75         DataStreamComponentDynSK.cc \
76         SIGNALSComponentDynSK.cc \
77         UndefinedSymbolComponentDynSK.cc \
78         CalculatorDynSK.cc
79
80 nodist_libSalomeIDLCOMPONENT_la_SOURCES = ${BASEIDL_SOURCES} ${DYNIDL_SOURCES}
81 ${DYNIDL_SOURCES}: ${BASEIDL_SOURCES}
82
83 # header files must be exported: other modules have to use this library
84 nodist_salomeinclude_HEADERS = $(BASEIDL_FILES:%.idl=%.hh)
85
86 libSalomeIDLCOMPONENT_la_CPPFLAGS = \
87         $(KERNEL_CXXFLAGS) \
88         $(MED_CXXFLAGS) \
89         -I$(top_builddir)/idl \
90         @CORBA_CXXFLAGS@ \
91         @CORBA_INCLUDES@
92
93 libSalomeIDLCOMPONENT_la_LDFLAGS = -no-undefined -version-info=0:0:0
94 libSalomeIDLCOMPONENT_la_LIBADD  = \
95         $(KERNEL_LDFLAGS) -lSalomeIDLKernel \
96         $(MED_LDFLAGS) -lSalomeIDLMED \
97         @CORBA_LIBS@
98
99 # These variables defines the building process of CORBA files
100 OMNIORB_IDL         = @OMNIORB_IDL@
101 OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@
102 OMNIORB_IDLPYFLAGS  = \
103         @OMNIORB_IDLPYFLAGS@ \
104         -I$(top_builddir)/idl/salome \
105         -I$(KERNEL_ROOT_DIR)/idl/salome \
106         -I$(MED_ROOT_DIR)/idl/salome
107
108 IDLCXXFLAGS = \
109         -bcxx \
110         @IDLCXXFLAGS@ \
111         -I$(top_builddir)/idl/salome \
112         -I$(KERNEL_ROOT_DIR)/idl/salome \
113         -I$(MED_ROOT_DIR)/idl/salome
114 IDLPYFLAGS  = \
115         @IDLPYFLAGS@ \
116         -I$(KERNEL_ROOT_DIR)/idl/salome \
117         -I$(MED_ROOT_DIR)/idl/salome
118
119 # potential problem on parallel make on the following - multiple outputs
120 SUFFIXES = .idl .hh SK.cc
121 .idlSK.cc:
122         $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
123 .idl.hh:
124         $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
125
126 install-exec-local: $(BASEIDL_FILES:%=$(top_srcdir)/idl/%)
127         $(INSTALL) -d  $(DESTDIR)$(salomepythondir)
128         ls $^ | while read file; do \
129           $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \
130         done
131
132 # we want to remove only staff generated for IDL files and nothing more
133 uninstall-local:
134         @for modulen in AdditionComponent DataStreamComponent SuperVisionTest ; do \
135           test -d $(DESTDIR)$(salomepythondir)/$${modulen} && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen} ; \
136           test -d $(DESTDIR)$(salomepythondir)/$${modulen}__POA && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}__POA" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen}__POA ; \
137         done ; \
138         for filen in $(BASEIDL_FILES_PY) ; do \
139           echo "Removing $(DESTDIR)$(salomepythondir)/$${filen}" && rm -f $(DESTDIR)$(salomepythondir)/$${filen}* ; \
140         done
141
142 mostlyclean-local:
143         -rm -f *.hh *.cc .depidl
144
145 # we use cpp to generate dependencies between idl files.
146 # option x c tells the preprocessor to consider idl as a c file.
147 # if an idl is modified, all idl dependencies are rebuilt
148
149 .depidl: $(BASEIDL_FILES)
150         @echo "" > $@
151         @for dep in $^ dummy; do \
152           if [ $$dep != "dummy" ]; then \
153             echo Building dependencies for $$dep; \
154             $(CPP) $(C_DEPEND_FLAG) -x c -I$(srcdir) -I$(KERNEL_ROOT_DIR)/idl/salome -I$(MED_ROOT_DIR)/idl/salome $$dep 2>/dev/null | \
155             sed 's/\.o/\SK.cc/' >>$@; \
156           fi; \
157         done ;
158
159 -include .depidl