@@ DEV @@ : Try to use Java MVC for graphics component.
[scilab.git] / scilab / Makefile.incl.am
1
2 # Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 # Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr>
4 # Copyright (C) 2008      - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
5 #
6 # This file must be used under the terms of the CeCILL.
7 # This source file is licensed as described in the file COPYING, which
8 # you should have received as part of this distribution.  The terms
9 # are also available at
10 # http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11 #
12
13 ##########
14 ### Makefile included stuff
15 ### Target, variable, suffixes which are supposed to be usefull in every makefile.am
16 ##########
17
18 # Where all the Scilab stuff is installed (macros, help, ...)
19 mydatadir=$(pkgdatadir)/modules/$(modulename)
20
21 # This target enables tests for Scilab
22 check-local: $(top_builddir)/scilab-bin test
23         @COMMAND="test_run('$(modulename)');quit";\
24         export LANG=C;\
25         $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"
26
27 # splint options
28 SPLINT_OPTIONS=-weak -booltype BOOL
29 check-code:
30         if test -f build.xml; then \
31                 $(ANT) checkstyle; \
32         fi
33         if test -x "$(SPLINT)"; then \
34                 $(SPLINT) $(SPLINT_OPTIONS) -I$(top_srcdir)/modules/core/includes/ -I$(top_srcdir)/libs/MALLOC/includes/ -I$(top_srcdir)/modules/localization/includes/ $(INCLUDE_FLAGS) $(CHECK_SRC); \
35         fi
36
37 ########################### JAVA ######################################
38 #### We are delegating java compilation to ant... Thanks to that
39 #### the procedure will be the same with Microsoft Windows (C)
40 #### and Linux/Unix
41 #######################################################################
42
43 TARGETS_ALL=
44 if NEED_JAVA
45 TARGETS_ALL+=java
46 java:
47 # Some configurations needs to export JAVA_HOME in the current env
48         @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
49         if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
50         if test -f build.xml -a $$USEANT -eq 1; then \
51                 $(ANT); \
52         fi
53
54 clean-java:
55 # Some configurations needs to export JAVA_HOME in the current env
56         @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
57         if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
58         if test -f build.xml -a $$USEANT -eq 1; then \
59                 $(ANT) clean; \
60         fi;
61 endif
62
63 if SWIG
64
65 # If the user request for the SWIG generation of the wrappers Java => C/C++ 
66 # We call the target swig-build on the variable SWIG_WRAPPERS
67
68 ## build Swig Java => C wrappers
69 swig: $(SWIG_WRAPPERS)
70         @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \
71         SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \
72         if test -n "$(SWIG_WRAPPERS)"; then \
73                 for file in $(SWIG_WRAPPERS) ; do \
74                         echo "Swig process of $$file ..."; \
75                         $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME  -outdir $$SWIG_OUTDIR $$file; \
76                 done; \
77         fi
78
79 endif
80
81 if GIWS
82
83 # If the user request for the SWIG generation of the wrappers Java => C/C++ 
84 # We call the target swig-build on the variable SWIG_WRAPPERS
85
86 ## build Swig Java => C wrappers
87 giws: $(GIWS_WRAPPERS)
88         @GIWS_OUTPUTDIR=src/jni/;\
89         if test -n "$(GIWS_WRAPPERS)"; then \
90                 for file in $(GIWS_WRAPPERS) ; do \
91                         echo "GIWS process of $$file ..."; \
92                         $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR --throws-exception-on-error --description-file $$file; \
93                 done; \
94         fi
95
96 endif
97
98
99 ## Build the macros of the module
100 macros:
101         -@( if test ! -x $(top_builddir)/scilab-bin; then \
102                 echo "Error : Cannot build $< : Scilab has not been built"; \
103         else \
104                 $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\
105         fi)
106
107
108 # Removes the macros
109 clean-macros:
110 # Removes macros (*.bin generated from .sci)
111         @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
112                 echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \
113                 rm -f $(builddir)/$$dir/$(MACROBINMASK); \
114         done
115
116 if COMPILATION_TESTS
117 # With --enable-compilation-tests, launch java unitary tests
118 TARGETS_ALL+=test
119 endif
120
121 test:
122 # More tests could be added here
123         @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
124         if test -f build.xml -a $$USEANT -eq 1; then \
125                 $(ANT) test; \
126         fi
127
128
129
130 all-local: $(TARGETS_ALL)
131
132 ################ MACROS ######################
133 # Rule to build a macro
134 # NOT USED  AT THE MOMENT
135 SUFFIXES = .sci 
136
137 .sci.bin:
138         -@( if test ! -x $(top_builddir)/scilab-bin; then \
139         echo "Error : Cannot build $< : Scilab has not been build"; \
140         else \
141         echo "Creating $@"; \
142         $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \
143         fi )
144
145 ########### INSTALL DOCUMENTATION ###################
146
147 # Install documentation files into the right target
148 # We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because
149 # automake needs the html files to be present which is not the case when
150 # we are building Scilab
151
152 # Where it should be installed
153 pkgdocdir = $(mydatadir)
154
155 # What is the mask of the help source
156 DOCMASKXML = *.xml
157
158 # What is the mask of the MathML sources
159 DOCMASKMML = *.mml
160
161 install-html-local:
162 if INSTALL_HELP_XML
163 # If the user wants the help sources to be installed
164         @echo "-------- Install of XML sources of help files --------"; \
165         for lang in $(ALL_LINGUAS); do \
166          if test -d $(srcdir)/help/$$lang; then \
167           $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \
168                 if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \
169                   for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \
170                     echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \
171                 $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \
172                   done ; \
173                 fi; \
174          fi; \
175         done; \
176         @echo "-------- Install of MathML sources --------"; \
177          if test -d $(srcdir)/help/mml/; then \
178           $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \
179                 if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \
180                   for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \
181                     echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \
182                 $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \
183                   done ; \
184                 fi; \
185         fi
186 endif
187
188 ########### INSTALL DATA ###################
189 # Install macros, help & demos
190 # Where it should be installed
191 pkgmacrosdir = $(mydatadir)
192 # Which directory we process
193 MACRODIRS = macros/
194 # Mask of the Scilab sources macros
195 MACROMASK = *.sci
196 # Mask of the Scilab executable sources macros
197 MACROBUILDMASK = *.sce
198 # Mask of the Scilab compiled macros
199 MACROBINMASK = *.bin
200 # List of the standard directory for tests
201 TESTS_DIR=tests/benchmarks tests/nonreg_tests tests/unit_tests
202 # Where the demos should be installed
203 pkgdemosdir = $(mydatadir)
204 # List of the standard directory for demos
205 DEMOS_DIR=demos
206 # List of the standard directory for examples
207 EXAMPLES_DIR=examples
208 # Where to export JAVA archives (.jar)
209 JARDIR=jar/
210 # JAR files mask
211 JARMASK=*.jar
212 # Chapter file 
213 HELP_CHAPTERDIR=help/
214 HELP_CHAPTERFILE=addchapter.sce
215 HELP_CHAPTERLANG = en_US fr_FR pt_BR
216 install-data-local:
217 # Install the tests
218         @echo "-------- Install tests (if any) --------"; \
219         for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \
220           if test -d $(srcdir)/$$dir/; then \
221             $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
222                   for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
223                     if test -d "$(srcdir)/$$dir/$$file"; then \
224                           echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \
225                           $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \
226                     else \
227                       echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
228                   $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
229                     fi \
230                   done; \
231           fi; \
232         done
233 # Install the help chapter
234         @echo "-------- Install the help chapter (if any) --------"; \
235         for lang in $(HELP_CHAPTERLANG); do \
236                 HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \
237                 if test -f $$HELPFILE; then \
238                         echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
239                         $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
240                         echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
241                         $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
242                 fi; \
243         done
244 # Install the demos & examples
245         @echo "-------- Install demos & examples (if any) --------"; \
246         for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \
247           if test -d $(srcdir)/$$dir/; then \
248             $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
249                   for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
250                     if test -d "$(srcdir)/$$dir/$$file"; then \
251                           echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \
252                           $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \
253                     else \
254                       echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
255                   $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
256                     fi \
257                   done; \
258           fi; \
259         done
260 # Install the macros
261         @echo "-------- Install macros (if any) --------"; \
262         for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
263           $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
264                 if test -d $(srcdir)/$$dir/; then \
265                         FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\
266                         if test -n "$(MACROSSPECIALEXT)"; then \
267                                 specialExtDir=""; \
268                                 for specialExt in $(MACROSSPECIALEXT); do \
269                                         specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \
270                                 done; \
271                                 FILELIST="$$FILELIST $$specialExtDir"; \
272                         fi; \
273                   for file in `ls -1 $$FILELIST 2>/dev/null`; do \
274                     echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \
275                 $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \
276                   done; \
277                 fi; \
278         done
279 # Install java files (.jar)
280         @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \
281         echo "-------- Install jar files --------"; \
282     $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \
283           for file in $(srcdir)/$(JARDIR)$(JARMASK); do\
284                     echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \
285                 $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \
286           done ; \
287         fi
288
289 ########### CLEAN ###################
290 # Clean macros and help (generated automatically by Scilab)
291 if NEED_JAVA
292 clean-local: clean-java clean-macros
293 else
294 clean-local: clean-macros
295 endif
296
297 distclean-local:
298         rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_*
299
300 .PHONY: macros java swig giws