Update of the test
[scilab.git] / scilab / Makemex.in
1 # see examples/mex-examples/mex-with-so/Makefile 
2 # for an example of Makemex use 
3 # some variables are defined here and other are defined in Makefile.incl 
4 # @TODO: probably dead code
5
6 SHELL = @SHELL@
7 top_builddir = $(SCIDIR)
8
9 DLLTOOL = @DLLTOOL@
10 LIBM = @LIBM@
11 LIBTOOL = @LIBTOOL@
12 CXX=@CXX@
13 LIBTOOL_DEPS = @LIBTOOL_DEPS@
14 LN_S = @LN_S@
15 NM = @NM@
16
17 OBJDUMP = @OBJDUMP@
18 STATIC = @STATIC@
19
20 CPPFLAGS = @CPPFLAGS@
21 LDFLAGS = @LDFLAGS@
22 LIBS = @LIBS@
23 FLIBS = @FLIBS@
24
25 INCLUDES= -I$(SCIDIR)/routines 
26 CFLAGS = $(CC_OPTIONS) 
27 FFLAGS = $(FC_OPTIONS) 
28 COMPILE = $(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
29 FCOMPILE = $(FC) $(FFLAGS)
30
31 QUIET=--quiet
32
33 LTCOMPILE = $(LIBTOOL) --mode=compile $(QUIET) $(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
34 FLTCOMPILE = $(LIBTOOL) --mode=compile $(QUIET) $(FC) $(FFLAGS)
35
36 LINK = $(LIBTOOL) --mode=link $(QUIET)  $(CC) $(CFLAGS) $(LDFLAGS) $(FLIBS) -o $@
37
38 OBJECTS = $(LIBRARY)_gateway.lo $(OTHEROBJECTS:.o=.lo)
39 FCTMEXLO = $(FCTMEX:.c=.lo) $(FORTRANFCTMEX:.F=.lo)
40 #******************************************************************* 
41
42 all:: all_nomes message
43
44 all_nomes : CLEAROLD GATEWAYS $(OTHEROBJECTS) $(LIBRARY)_gateway.lo $(LIBRARY).la $(LIBRARY).sce 
45
46 .SUFFIXES:
47 .SUFFIXES: .c .lo .o .F 
48
49 $(LIBRARY).la : $(OBJECTS) 
50         @MEXOBJECTS=`echo $(FCTMEXLO) | sed -e "s+[a-zA-Z0-9_%$#]*/++g"`; \
51         $(LINK) -rpath `pwd` -module -avoid-version -export-dynamic $$MEXOBJECTS $(OBJECTS) 
52         @$(LIBTOOL) --mode=install $(QUIET)  cp $(LIBRARY).la `pwd`/$(LIBRARY).la 
53
54 $(LIBRARY)_gateway.c:  Makefile 
55         @echo "-- Generating the C function $(LIBRARY)_gateway.c";
56         @echo $(FCTMEX) > tmp_sce; echo $(FORTRANFCTMEX) >> tmp_sce;
57         @echo $(LIBRARY) > tmp2_sce; 
58         @$(SCIDIR)/macros/Gensomex Xtmp_sce Xtmp2_sce;
59         @$(RM)  tmp_sce; 
60         @$(RM)  tmp2_sce;       
61         @echo "int C2F($(LIBRARY)_gateway)()" >> $(LIBRARY)_gateway.c;
62         @echo "{ Rhs = Max(0, Rhs); " >> $(LIBRARY)_gateway.c;
63         @echo "(*(Tab[Fin-1].f))(Tab[Fin-1].name,Tab[Fin-1].F);" >> $(LIBRARY)_gateway.c;
64         @echo " return 0;" >> $(LIBRARY)_gateway.c;
65         @echo "}" >> $(LIBRARY)_gateway.c;
66         @echo " /* */ " >> $(LIBRARY)_gateway.c;
67
68 $(LIBRARY).sce: Makefile 
69         @echo "-- Generating the Scilab script $(LIBRARY).sce";
70         @echo $(FCTMEX) > tmp_sce; echo $(FORTRANFCTMEX) >> tmp_sce;
71         @echo $(LIBRARY) > tmp2_sce; 
72         @$(SCIDIR)/macros/Gensosce Xtmp_sce Xtmp2_sce;
73         @$(RM)  tmp_sce; 
74         @$(RM)  tmp2_sce; 
75         @echo "LIBPATH=\"$(LIBPATH)\";" >> $(LIBRARY).sce;
76         @echo "addinter(LIBPATH+\"$(LIBRARY).so\",\"$(LIBRARY)_gateway\",scilab_functions)" >> $(LIBRARY).sce;
77         @if test "$(LIBPATH)" = ""; then \
78         echo "------------------------------------------"; \
79         echo "Check LD_LIBRARY_PATH environment variable: "; \
80         echo "LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH"; \
81         echo "or"; \
82         echo "setenv LD_LIBRARY_PATH `pwd`"; \
83         echo "------------------------------------------"; \
84         fi
85
86 message:
87         @echo "------------------------------------------";
88         @echo "To load the function(s): ";
89         @if test "X$(FCTMEX)" != "X"; then for i in $(FCTMEX) ;\
90         do (\
91         name=`dirname $$i`; \
92         echo "              $$name; " \
93         ); \
94         done ; fi
95         @if test "X$(FORTRANFCTMEX)" != "X"; then for i in $(FORTRANFCTMEX) ;\
96         do (\
97         name=`dirname $$i`; \
98         echo "              $$name; " \
99         ); \
100         done ; fi
101         @echo " at Scilab prompt, enter:";
102         @echo "-->exec $(LIBRARY).sce";
103         @echo "------------------------------------------";
104
105 clean   ::
106         $(RM) *.o *.lo
107         $(RM) $(LIBRARY).sce
108         $(RM) $(LIBRARY)_gateway.c
109         $(RM) $(LIBRARY).la
110         $(RM) $(LIBRARY).so
111         $(RM) -r .libs
112
113 distclean:: clean 
114         $(RM) -f -r .libs  $(LIBRARY).*
115         $(RM) $(LIBRARY).sce
116         $(RM) $(LIBRARY)_gateway.c
117
118 $(LIBRARY)_gateway.lo: $(LIBRARY)_gateway.c
119         @$(LTCOMPILE) -c $(LIBRARY)_gateway.c
120
121 GATEWAYS:
122         @if test "X$(FCTMEX)" != "X"; then for f in $(FCTMEX); \
123         do \
124         obj=`basename $$f .c`; \
125         mex=`dirname $$f`; \
126         make $$obj.o MEX=mex_$$mex ; \
127         make $$obj.lo MEX=mex_$$mex ; \
128         done; fi
129         @if test "X$(FORTRANFCTMEX)" != "X"; then for f in $(FORTRANFCTMEX); \
130         do \
131         obj=`basename $$f .F`; \
132         mex=`dirname $$f`; \
133         make $$obj.o MEX=mex$$mex ; \
134         make $$obj.lo MEX=mex$$mex ; \
135         done; fi
136
137 .c.o:
138         @$(COMPILE) -DmexFunction=$(MEX) -c $<
139
140 .c.lo :
141         @$(LTCOMPILE) -DmexFunction=$(MEX) -c $<
142
143 .F.o:
144         @$(FCOMPILE) -Dmexfunction=$(MEX) -c $<
145
146 .F.lo :
147         @$(FLTCOMPILE) -Dmexfunction=$(MEX) -c $<
148
149 .f.o:
150         @$(FCOMPILE) -Dmexfunction=$(MEX) -c $<
151
152 .f.lo :
153         @$(FLTCOMPILE) -Dmexfunction=$(MEX) -c $<
154
155 CLEAROLD:
156         $(RM) $(LIBRARY).sce
157         $(RM) $(LIBRARY)_gateway.c
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175