Update ignored message for Windows after update to JoGL 2.2.4
[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.1-en.txt
11 #
12
13 ##########
14 ### Makefile included stuff
15 ### Target, variable, suffixes which are supposed to be useful in every makefile.am
16 ##########
17
18 # Where all the Scilab stuff is installed (macros, help, ...)
19 mydatadir=$(pkgdatadir)/modules/$(modulename)
20
21 # Set AM_* SCI detected settings
22 AM_CPPFLAGS = $(SCI_CPPFLAGS)
23 AM_CFLAGS   = $(SCI_CFLAGS)
24 AM_CXXFLAGS = $(SCI_CXXFLAGS)
25 AM_FFLAGS   = $(SCI_FFLAGS)
26 AM_LDFLAGS  = $(SCI_LDFLAGS)
27
28 # Tag shared libraries with the Scilab version
29 AM_LDFLAGS += -version-number $(SCILAB_LIBRARY_VERSION)
30 # append includes to AM_FFLAGS to manage fortran includes
31 AM_FFLAGS  += -I$(top_srcdir)/modules/core/includes/
32
33 # This target enables tests for Scilab
34 check-local: $(top_builddir)/scilab-bin test
35         if test -d $(mydatadir)/tests; then \
36           @COMMAND="try test_run('$(modulename)');catch exit(-1);end;exit(0)"; export LANG=C; $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"; \
37         fi
38
39 # splint options
40 SPLINT_OPTIONS=-weak -booltype BOOL
41 check-code:
42         if test -f build.xml; then \
43                 $(ANT) checkstyle; \
44         fi
45         if test -x "$(SPLINT)"; then \
46                 $(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); \
47         fi
48
49 ########################### JAVA ######################################
50 #### We are delegating java compilation to ant... Thanks to that
51 #### the procedure will be the same with Microsoft Windows (C)
52 #### and Linux/Unix
53 #######################################################################
54
55 TARGETS_ALL=
56 if NEED_JAVA
57 TARGETS_ALL+=java
58 java:
59 # Some configurations needs to export JAVA_HOME in the current env
60         @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
61         if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
62         if test -f build.xml -a $$USEANT -eq 1; then \
63                 $(ANT); \
64         fi
65
66 clean-java:
67 # Some configurations needs to export JAVA_HOME in the current env
68         @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
69         if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
70         if test -f build.xml -a $$USEANT -eq 1; then \
71                 $(ANT) clean; \
72         fi;
73 endif
74
75 if SWIG
76
77 # If the user request for the SWIG generation of the wrappers Java => C/C++ 
78 # We call the target swig-build on the variable SWIG_WRAPPERS
79
80 ## build Swig Java => C wrappers
81 swig: $(SWIG_WRAPPERS)
82         @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \
83         SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \
84         if test -n "$(SWIG_WRAPPERS)"; then \
85                 for file in $(SWIG_WRAPPERS) ; do \
86                         echo "Swig process of $$file (Java) ..."; \
87                         $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME  -outdir $$SWIG_OUTDIR $$file; \
88                 done; \
89         fi
90
91 ## build Swig C => Scilab wrappers
92 swig-scilab: $(SWIG_SCILAB_WRAPPERS)
93         @SWIG_OUTDIR=src/swig/; \
94         if test -n "$(SWIG_SCILAB_WRAPPERS)"; then \
95                 for file in $(SWIG_SCILAB_WRAPPERS) ; do \
96                         echo "Swig process of $$file (Scilab) ..."; \
97                         $(SWIG_BIN) $(SWIG_SCILAB)  -outdir $$SWIG_OUTDIR $$file; \
98                 done; \
99         fi
100
101 endif
102
103 if GIWS
104 # If the user request for the SWIG generation of the wrappers Java => C/C++ 
105 # We call the target swig-build on the variable SWIG_WRAPPERS
106
107 ## build Swig Java => C wrappers
108 giws: $(GIWS_WRAPPERS)
109         @GIWS_OUTPUTDIR=src/jni/; \
110         MANDATORY_OPTIONS="--throws-exception-on-error --description-file"; \
111         if test -n "$(GIWS_WRAPPERS)"; then \
112                 for file in $(GIWS_WRAPPERS) ; do \
113                         echo "GIWS process of $$file ..."; \
114                         if test -z "$(GIWS_OPTIONS)"; then \
115                                 $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \
116                         else \
117                                 echo "Custom GIWS call with '$$GIWS_OPTIONS'"; \
118                                 $(GIWS_BIN) $$GIWS_OPTIONS --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \
119                         fi \
120                 done; \
121         fi
122
123 ## build GIWS Exception
124 giws-exception:
125         @GIWS_OUTPUTDIR=src/jni/;\
126         echo "GIWS: Generation of exception class ..."; \
127         $(GIWS_BIN) --generate-exception-class --output-dir $$GIWS_OUTPUTDIR 
128
129 endif
130
131
132 ## Build the macros of the module
133 macros:
134         -@( if test ! -x $(top_builddir)/scilab-bin; then \
135                 echo "Error : Cannot build $< : Scilab has not been built"; \
136         else \
137                 $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\
138         fi)
139
140
141 # Removes the macros
142 clean-macros:
143 # Removes macros (*.bin generated from .sci)
144         @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
145                 echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \
146                 rm -f $(builddir)/$$dir/$(MACROBINMASK); \
147         done
148
149 test:
150 # More tests could be added here
151         @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
152         if test -f build.xml -a $$USEANT -eq 1; then \
153                 $(ANT) test; \
154         fi
155
156
157
158 all-local: $(TARGETS_ALL)
159
160 ################ MACROS ######################
161 # Rule to build a macro
162 # NOT USED  AT THE MOMENT
163 SUFFIXES = .sci 
164
165 .sci.bin:
166         -@( if test ! -x $(top_builddir)/scilab-bin; then \
167         echo "Error : Cannot build $< : Scilab has not been build"; \
168         else \
169         echo "Creating $@"; \
170         $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \
171         fi )
172
173 ########### INSTALL DOCUMENTATION ###################
174
175 # Install documentation files into the right target
176 # We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because
177 # automake needs the html files to be present which is not the case when
178 # we are building Scilab
179
180 # Where it should be installed
181 pkgdocdir = $(mydatadir)
182
183 # What is the mask of the help source
184 DOCMASKXML = *.xml
185
186 # What is the mask of the MathML sources
187 DOCMASKMML = *.mml
188
189 install-html-local:
190
191 install-data-local-local:
192 # Mainly for javasci
193         @if test -d $(srcdir)/javadoc; then \
194                 cp -R $(srcdir)/javadoc $(DESTDIR)/$(mydatadir)/; \
195         fi
196 if INSTALL_HELP_XML
197 # If the user wants the help sources to be installed
198         @echo "-------- Install of XML sources of help files --------"; \
199         for lang in $(ALL_LINGUAS); do \
200          if test -d $(srcdir)/help/$$lang; then \
201           $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \
202                 if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \
203                   for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \
204                     echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \
205                 $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \
206                   done ; \
207                 fi; \
208          fi; \
209         done; \
210         @echo "-------- Install of MathML sources --------"; \
211          if test -d $(srcdir)/help/mml/; then \
212           $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \
213                 if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \
214                   for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \
215                     echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \
216                 $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \
217                   done ; \
218                 fi; \
219         fi
220 endif
221
222 ########### INSTALL DATA ###################
223 # Install macros, help & demos
224 # Where it should be installed
225 pkgmacrosdir = $(mydatadir)
226 # Which directory we process
227 MACRODIRS = macros/
228 # Mask of the Scilab sources macros
229 MACROMASK = *.sci
230 # Mask of the Scilab executable sources macros
231 MACROBUILDMASK = *.sce
232 # Mask of the Scilab compiled macros
233 MACROBINMASK = *.bin
234 # List of the standard directory for tests
235 TESTS_DIR=tests/benchmarks tests/nonreg_tests tests/unit_tests tests/java
236 # Where the demos should be installed
237 pkgdemosdir = $(mydatadir)
238 # List of the standard directory for demos
239 DEMOS_DIR=demos
240 # List of the standard directory for examples
241 EXAMPLES_DIR=examples
242 # Where to export JAVA archives (.jar)
243 JARDIR=jar/
244 # JAR files mask
245 JARMASK=*.jar
246 # Chapter file 
247 HELP_CHAPTERDIR=help/
248 HELP_CHAPTERFILE=addchapter.sce
249 HELP_CHAPTERLANG = en_US fr_FR pt_BR
250 install-data-local:
251 # Install the tests
252         @echo "-------- Install tests (if any) --------"; \
253         for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \
254           if test -d $(srcdir)/$$dir/; then \
255             $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
256                   for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
257                     if test -d "$(srcdir)/$$dir/$$file"; then \
258                           echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \
259                           $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \
260                     else \
261                       echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
262                   $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
263                     fi \
264                   done; \
265           fi; \
266         done
267 # Install the help chapter
268         @echo "-------- Install the help chapter (if any) --------"; \
269         for lang in $(HELP_CHAPTERLANG); do \
270                 HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \
271                 if test -f $$HELPFILE; then \
272                         echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
273                         $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
274                         echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
275                         $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
276                 fi; \
277         done
278 # Install the demos & examples
279         @echo "-------- Install demos & examples (if any) --------"; \
280         for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \
281           if test -d $(srcdir)/$$dir/; then \
282             $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
283                   for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
284                     if test -d "$(srcdir)/$$dir/$$file"; then \
285                           echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \
286                           $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \
287                     else \
288                       echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
289                   $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
290                     fi \
291                   done; \
292           fi; \
293         done
294 # Install the macros
295         @echo "-------- Install macros (if any) --------"; \
296         for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
297           $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
298                 if test -d $(srcdir)/$$dir/; then \
299                         FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\
300                         if test -n "$(MACROSSPECIALEXT)"; then \
301                                 specialExtDir=""; \
302                                 for specialExt in $(MACROSSPECIALEXT); do \
303                                         specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \
304                                 done; \
305                                 FILELIST="$$FILELIST $$specialExtDir"; \
306                         fi; \
307                   for file in `ls -1 $$FILELIST 2>/dev/null`; do \
308                     echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \
309                 $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \
310                   done; \
311                 fi; \
312         done
313 # Install java files (.jar)
314         @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \
315         echo "-------- Install jar files --------"; \
316     $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \
317           for file in $(srcdir)/$(JARDIR)$(JARMASK); do\
318                     echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \
319                 $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \
320           done ; \
321         fi
322
323 ########### CLEAN ###################
324 # Clean help (generated automatically by Scilab)
325 # It used to clean the macro (clean-macros) but this was causing
326 # make clean && make to fail Scilab startup
327 if NEED_JAVA
328 clean-local: clean-java
329 else
330 clean-local:
331 endif
332
333 distclean-local:
334         rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_*
335
336 .PHONY: macros java swig giws