1 # ------------------------------------------------------------
2 # SWIG Examples Makefile
4 # This file is used by the examples to build modules. Assuming
5 # you ran configure, this file will probably work. However,
6 # it's not perfect so you might need to do some hand tweaking.
10 # 1. Take a look at the prefixes below. Since SWIG works with
11 # multiple target languages, you may need to find out where
12 # certain packages have been installed. Set the prefixes
15 # 2. To use this makefile, set required varibles, eg SRCS, INTERFACE,
16 # INTERFACEDIR, INCLUDES, LIBS, TARGET, and do a
17 # $(MAKE) -f Makefile.template.in SRCS='$(SRCS)' \
18 # INCLUDES='$(INCLUDES) LIBS='$(LIBS)' INTERFACE='$(INTERFACE)' \
19 # INTERFACEDIR='$(INTERFACEDIR)' TARGET='$(TARGET)' method
21 # 'method' describes what is being built.
22 #---------------------------------------------------------------
29 exec_prefix= @exec_prefix@
35 INTERFACEPATH = $(INTERFACEDIR)$(INTERFACE)
42 SYSLIBS = $(LIBM) $(LIBC) $(LIBCRYPT)
45 # RUNTOOL is for use with runtime tools, eg set it to valgrind
47 # COMPILETOOL is a way to run the compiler under another tool, or more commonly just to stop the compiler executing
53 XINCLUDE = @XINCLUDES@
55 IWRAP = $(INTERFACE:.i=_wrap.i)
56 ISRCS = $(IWRAP:.i=.c)
57 ICXXSRCS = $(IWRAP:.i=.cxx)
58 IOBJS = $(IWRAP:.i=.@OBJEXT@)
60 ##################################################################
61 # Dynamic loading for C++
62 # If you are going to be building dynamic loadable modules in C++,
63 # you may need to edit this line appropriately.
65 # This line works for g++, but I'm not sure what it might be
66 # for other C++ compilers
67 ##################################################################
69 CPP_DLLIBS = #-L/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.7.2 \
70 -L/usr/local/lib -lg++ -lstdc++ -lgcc
72 # Solaris workshop 5.0
73 # CPP_DLLIBS = -L/opt/SUNWspro/lib -lCrun
75 # Symbols used for using shared libraries
79 CXXSHARED= @CXXSHARED@
81 # This is used for building shared libraries with a number of C++
82 # compilers. If it doesn't work, comment it out.
85 OBJS = $(SRCS:.c=.@OBJEXT@) $(CXXSRCS:.cxx=.@OBJEXT@)
87 ##################################################################
89 ##################################################################
91 # Set these to your local copy of Tcl/Tk.
93 TCL_INCLUDE = @TCLINCLUDE@
96 TK_OPTS = -ltk -ltcl @LIBS@
98 # Extra Tcl specific dynamic linking options
99 TCL_DLNK = @TCLDYNAMICLINKING@
101 TCLLDSHARED = @TCLLDSHARED@
102 TCLCXXSHARED = @TCLCXXSHARED@
104 # -----------------------------------------------------------
105 # Build a new version of the tclsh shell
106 # -----------------------------------------------------------
110 $(SWIG) -tcl8 $(SWIGOPT) $(TCL_SWIGOPTS) -ltclsh.i $(INTERFACEPATH)
111 $(CC) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(TCL_INCLUDE) \
112 $(TCL_LIB) $(TCL_OPTS) $(LIBS) $(SYSLIBS) -o $(TARGET)
115 $(SWIG) -tcl8 -c++ $(SWIGOPT) $(TCL_SWIGOPTS) -ltclsh.i $(INTERFACEPATH)
116 $(CXX) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(TCL_INCLUDE) \
117 $(TCL_LIB) $(TCL_OPTS) $(LIBS) $(SYSLIBS) -o $(TARGET)
119 # -----------------------------------------------------------
120 # Build a new copy of wish
121 # -----------------------------------------------------------
124 $(SWIG) -tcl8 $(SWIGOPT) $(TCL_SWIGOPTS) -lwish.i $(INTERFACEPATH)
125 $(CC) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(TCL_INCLUDE) \
126 $(XINCLUDE) $(TCL_LIB) $(TK_OPTS) $(XLIB) $(LIBS) $(SYSLIBS) -o $(TARGET)
130 $(SWIG) -tcl8 -c++ $(SWIGOPT) $(TCL_SWIGOPTS) -lwish.i $(INTERFACEPATH)
131 $(CXX) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(TCL_INCLUDE) \
132 $(XINCLUDE) $(TCL_LIB) $(TK_OPTS) $(XLIB) $(LIBS) $(SYSLIBS) -o $(TARGET)
134 # -----------------------------------------------------------
135 # Build a Tcl dynamic loadable module (you might need to tweak this)
136 # -----------------------------------------------------------
139 $(SWIG) -tcl8 $(SWIGOPT) $(TCL_SWIGOPTS) $(INTERFACEPATH)
140 $(CC) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(TCL_INCLUDE)
141 $(TCLLDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(TCL_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(TCL_SO)
143 # -----------------------------------------------------------
144 # Build a Tcl7.5 dynamic loadable module for C++
145 # -----------------------------------------------------------
148 $(SWIG) -tcl8 -c++ $(SWIGOPT) $(TCL_SWIGOPTS) $(INTERFACEPATH)
149 $(CXX) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(TCL_INCLUDE)
150 $(TCLCXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(TCL_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(TCL_SO)
152 # -----------------------------------------------------------------
153 # Cleaning the Tcl examples
154 # -----------------------------------------------------------------
157 rm -f *_wrap* *~ .~* mytclsh@EXEEXT@
158 rm -f core @EXTRA_CLEAN@
159 rm -f *.@OBJEXT@ *@SO@
161 ##################################################################
163 ##################################################################
165 # You need to set this variable to the Perl5 directory containing the
166 # files "perl.h", "EXTERN.h" and "XSUB.h". With Perl5.003, it's
167 # usually something like /usr/local/lib/perl5/arch-osname/5.003/CORE.
169 PERL5_INCLUDE= @PERL5EXT@
171 # Extra Perl specific dynamic linking options
172 PERL5_DLNK = @PERL5DYNAMICLINKING@
173 PERL5_CCFLAGS = @PERL5CCFLAGS@
175 # ----------------------------------------------------------------
176 # Build a Perl5 dynamically loadable module (C)
177 # ----------------------------------------------------------------
180 $(SWIG) -perl5 $(SWIGOPT) $(INTERFACEPATH)
181 $(CC) -c -Dbool=char $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(PERL5_CCFLAGS) -I$(PERL5_INCLUDE)
182 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(PERL5_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
184 # ----------------------------------------------------------------
185 # Build a Perl5 dynamically loadable module (C++)
186 # ----------------------------------------------------------------
189 $(SWIG) -perl5 -c++ $(SWIGOPT) $(INTERFACEPATH)
190 $(CXX) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(PERL5_CCFLAGS) -I$(PERL5_INCLUDE)
191 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(PERL5_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
193 # ----------------------------------------------------------------
194 # Build a module from existing XS C source code. (ie. from xsubpp).
195 # ----------------------------------------------------------------
197 $(CC) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(INCLUDES) -I$(PERL5_INCLUDE)
198 $(LDSHARED) $(CFLAGS) $(OBJS) $(LIBS) -o $(TARGET)$(SO)
200 # ----------------------------------------------------------------
201 # Build a statically linked Perl5 executable
202 # ----------------------------------------------------------------
204 PERL5_LIB = -L$(PERL5_INCLUDE) -l@PERL5LIB@ @LIBS@ $(SYSLIBS)
206 perl5_static: $(SRCS)
207 $(SWIG) -perl5 -static -lperlmain.i $(SWIGOPT) $(INTERFACEPATH)
208 $(CC) $(CFLAGS) -Dbool=char $(SRCS) $(ISRCS) $(INCLUDES) -I$(PERL5_INCLUDE) $(PERL5_LIB) $(LIBS) -o $(TARGET)
210 perl5_static_cpp: $(SRCS)
211 $(SWIG) -perl5 -c++ -static -lperlmain.i $(SWIGOPT) $(INTERFACEPATH)
212 $(CXX) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) -I$(PERL5_INCLUDE) $(PERL5_LIB) $(LIBS) -o $(TARGET)
214 # -----------------------------------------------------------------
215 # Cleaning the Perl5 examples
216 # -----------------------------------------------------------------
219 rm -f *_wrap* *~ .~* myperl@EXEEXT@ *.pm
220 rm -f core @EXTRA_CLEAN@
221 rm -f *.@OBJEXT@ *@SO@
223 ##################################################################
225 ##################################################################
227 # Make sure these locate your Python installation
229 PYTHON_INCLUDE= $(DEFS) @PYINCLUDE@
233 PYTHON_INCLUDE= $(DEFS) @PY3INCLUDE@
234 PYTHON_LIB = @PY3LIB@
238 # Extra Python specific linking options
240 PYTHON_DLNK = @PYTHONDYNAMICLINKING@
241 PYTHON_LINK = @PYLINK@
243 PYTHON_DLNK = @PYTHON3DYNAMICLINKING@
244 PYTHON_LINK = @PY3LINK@
246 PYTHON_SO = @PYTHON_SO@
248 # SWIG option for Python
250 SWIGPYTHON = $(SWIG) -python
252 SWIGPYTHON = $(SWIG) -python -py3
255 # ----------------------------------------------------------------
256 # Build a C dynamically loadable module
257 # ----------------------------------------------------------------
260 $(SWIGPYTHON) $(SWIGOPT) $(INTERFACEPATH)
261 $(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) $(PYTHON_INCLUDE)
262 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(PYTHON_DLNK) $(LIBS) -o $(LIBPREFIX)_$(TARGET)$(PYTHON_SO)
264 # -----------------------------------------------------------------
265 # Build a C++ dynamically loadable module
266 # -----------------------------------------------------------------
269 $(SWIGPYTHON) -c++ $(SWIGOPT) $(INTERFACEPATH)
270 $(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) $(PYTHON_INCLUDE)
271 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(PYTHON_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)_$(TARGET)$(PYTHON_SO)
273 # -----------------------------------------------------------------
274 # Build statically linked Python interpreter
276 # These should only be used in conjunction with the %include embed.i
278 # -----------------------------------------------------------------
280 #TKINTER = -L/usr/X11R6.3/lib -L/usr/local/compat/lib -ltk4.0 -ltcl7.4 -lX11
282 PYTHON_LIBOPTS = $(PYTHON_LINK) @LIBS@ $(TKINTER) $(SYSLIBS)
284 python_static: $(SRCS)
285 $(SWIGPYTHON) -lembed.i $(SWIGOPT) $(INTERFACEPATH)
286 $(CC) $(CFLAGS) @LINKFORSHARED@ $(ISRCS) $(SRCS) $(INCLUDES) \
287 $(PYTHON_INCLUDE) $(LIBS) -L$(PYTHON_LIB) $(PYTHON_LIBOPTS) -o $(TARGET)
289 python_static_cpp: $(SRCS)
290 $(SWIGPYTHON) -c++ -lembed.i $(SWIGOPT) $(INTERFACEPATH)
291 $(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
292 $(PYTHON_INCLUDE) $(LIBS) -L$(PYTHON_LIB) $(PYTHON_LIBOPTS) -o $(TARGET)
294 # -----------------------------------------------------------------
295 # Running a Python example
296 # -----------------------------------------------------------------
304 PY2TO3 = 2to3 `2to3 -l | grep -v -E "Available|import$$" | awk '{print "-f "$$0}'`
306 python_run: $(PYSCRIPT)
307 env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH PYTHONPATH=$(srcdir):$$PYTHONPATH $(PYTHON) $(PYSCRIPT) >/dev/null
311 $(PY2TO3) -w $@ >/dev/null 2>&1
313 # -----------------------------------------------------------------
314 # Cleaning the python examples
315 # -----------------------------------------------------------------
318 rm -f *_wrap* *~ .~* mypython@EXEEXT@ *.pyc
319 rm -f core @EXTRA_CLEAN@
320 rm -f *.@OBJEXT@ *@SO@ *@PYTHON_SO@
321 if [ -f runme.py ]; then rm -f runme3.py runme3.py.bak; fi
324 ##################################################################
326 ##################################################################
328 # Make sure these locate your Octave installation
329 OCTAVE_INCLUDE= $(DEFS) @OCTAVEEXT@
332 # Extra Octave specific dynamic linking options
333 OCTAVE_DLNK = @OCTAVEDYNAMICLINKING@
334 OCTAVE_SO = @OCTAVE_SO@
336 # ----------------------------------------------------------------
337 # Build a C dynamically loadable module
338 # Note: Octave requires C++ compiler when compiling C wrappers
339 # ----------------------------------------------------------------
342 $(SWIG) -octave $(SWIGOPT) $(INTERFACEPATH)
343 $(CXX) -g -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(INCLUDES) -I$(OCTAVE_INCLUDE)
344 $(CC) -g -c $(CCSHARED) $(CFLAGS) $(SRCS) $(INCLUDES)
345 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(OCTAVE_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(OCTAVE_SO)
347 # -----------------------------------------------------------------
348 # Build a C++ dynamically loadable module
349 # -----------------------------------------------------------------
352 $(SWIG) -c++ -octave $(SWIGOPT) $(INTERFACEPATH)
353 $(CXX) -g -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) -I$(OCTAVE_INCLUDE)
354 $(CXXSHARED) -g $(CFLAGS) $(OBJS) $(IOBJS) $(OCTAVE_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(OCTAVE_SO)
356 # -----------------------------------------------------------------
357 # Cleaning the octave examples
358 # -----------------------------------------------------------------
361 rm -f *_wrap* *~ .~* myoctave@EXEEXT@ *.pyc
362 rm -f core @EXTRA_CLEAN@
363 rm -f *.@OBJEXT@ *@SO@ *@OCTAVE_SO@
365 ##################################################################
367 ##################################################################
369 # Make sure these locate your Guile installation
370 GUILE_INCLUDE = @GUILEINCLUDE@
371 GUILE_LIB = @GUILELIB@
372 GUILE_SO = @GUILE_SO@
373 GUILE_LIBPREFIX = lib
375 #------------------------------------------------------------------
376 # Build a dynamically loaded module with passive linkage and the scm interface
377 #------------------------------------------------------------------
379 $(SWIG) -guile -scm -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
380 $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS)
381 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
384 $(SWIG) -c++ -guile -scm -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
385 $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
386 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
389 $(SWIG) -guile -external-runtime $(TARGET)
391 #------------------------------------------------------------------
392 # Build a dynamically loaded module with passive linkage and the gh interface
393 #------------------------------------------------------------------
395 $(SWIG) -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
396 $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS)
397 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
399 guile_gh_cpp: $(SRCS)
400 $(SWIG) -c++ -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
401 $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
402 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
404 # -----------------------------------------------------------------
405 # Build a dynamically loadable module with passive linkage
406 # -----------------------------------------------------------------
408 guile_passive: $(SRCS)
409 $(SWIG) -guile -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
410 $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS)
411 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
413 guile_passive_cpp: $(SRCS)
414 $(SWIG) -c++ -guile -Linkage passive $(SWIGOPT) $(INTERFACEPATH)
415 $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
416 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
418 # -----------------------------------------------------------------
419 # Build statically linked Guile interpreter
420 # -----------------------------------------------------------------
422 GUILE_LIBOPTS = @GUILELINK@ @LIBS@ $(SYSLIBS)
424 guile_static: $(SRCS)
425 $(SWIG) -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACEPATH)
426 $(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \
427 -DSWIGINIT="SCM scm_init_$(TARGET)_module(void); scm_init_$(TARGET)_module();" \
428 $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
430 guile_static_cpp: $(SRCS)
431 $(SWIG) -c++ -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACEPATH)
432 $(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
433 -DSWIGINIT="SCM scm_init_$(TARGET)_module(void); scm_init_$(TARGET)_module();" \
434 $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
436 guile_simple: $(SRCS)
437 $(SWIG) -guile -lguilemain.i -Linkage simple $(SWIGOPT) $(INTERFACEPATH)
438 $(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \
439 $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
441 guile_simple_cpp: $(SRCS)
442 $(SWIG) -c++ -guile -lguilemain.i -Linkage simple $(SWIGOPT) $(INTERFACEPATH)
443 $(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
444 $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
446 # -----------------------------------------------------------------
447 # Cleaning the Guile examples
448 # -----------------------------------------------------------------
451 rm -f *_wrap* *~ .~* my-guile@EXEEXT@ $(TARGET)@EXEEXT@
452 rm -f core @EXTRA_CLEAN@
453 rm -f *.@OBJEXT@ *@GUILE_SO@
455 ##################################################################
457 ##################################################################
459 # You need to set this variable to the java directories containing the
460 # files "jni.h" and "md.h"
461 # usually something like /usr/java/include and /usr/java/include/<arch-osname>.
462 JAVA_INCLUDE= @JAVAINC@
464 # Extra Java specific dynamic linking options
465 JAVA_DLNK = @JAVADYNAMICLINKING@
466 JAVA_LIBPREFIX = @JAVALIBRARYPREFIX@
468 JAVALDSHARED = @JAVALDSHARED@
469 JAVACXXSHARED = @JAVACXXSHARED@
470 JAVACFLAGS = @JAVACFLAGS@
472 # ----------------------------------------------------------------
473 # Build a java dynamically loadable module (C)
474 # ----------------------------------------------------------------
477 $(SWIG) -java $(SWIGOPT) $(INTERFACEPATH)
478 $(CC) -c $(CCSHARED) $(CFLAGS) $(JAVACFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(JAVA_INCLUDE)
479 $(JAVALDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(JAVA_DLNK) $(LIBS) -o $(JAVA_LIBPREFIX)$(TARGET)$(JAVASO)
481 # ----------------------------------------------------------------
482 # Build a java dynamically loadable module (C++)
483 # ----------------------------------------------------------------
486 $(SWIG) -java -c++ $(SWIGOPT) $(INTERFACEPATH)
487 $(CXX) -c $(CCSHARED) $(CFLAGS) $(JAVACFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(JAVA_INCLUDE)
488 $(JAVACXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(JAVA_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(JAVA_LIBPREFIX)$(TARGET)$(JAVASO)
490 # -----------------------------------------------------------------
491 # Cleaning the java examples
492 # -----------------------------------------------------------------
495 rm -f *_wrap* *~ .~* *.class `find . -name \*.java | grep -v runme.java`
496 rm -f core @EXTRA_CLEAN@
497 rm -f *.@OBJEXT@ *@JAVASO@
499 ##################################################################
501 ##################################################################
503 MODULA3_INCLUDE= @MODULA3INC@
505 # ----------------------------------------------------------------
506 # Build a modula3 dynamically loadable module (C)
507 # ----------------------------------------------------------------
510 $(SWIG) -modula3 $(SWIGOPT) $(INTERFACEPATH)
511 # $(CC) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) \
512 # $(OBJS) $(IOBJS) $(LIBS)
515 $(SWIG) -modula3 -c++ $(SWIGOPT) $(INTERFACEPATH)
517 # -----------------------------------------------------------------
518 # Cleaning the modula3 examples
519 # -----------------------------------------------------------------
522 rm -f *_wrap* *.i3 *.m3
523 rm -f core @EXTRA_CLEAN@
524 rm -f *.@OBJEXT@ *@SO@
526 ##################################################################
527 ##### MZSCHEME ######
528 ##################################################################
531 MZDYNOBJ = @MZDYNOBJ@
532 MZSCHEME_SO = @MZSCHEME_SO@
534 # ----------------------------------------------------------------
535 # Build a C/C++ dynamically loadable module
536 # ----------------------------------------------------------------
539 $(SWIG) -mzscheme $(SWIGOPT) $(INTERFACEPATH)
540 $(COMPILETOOL) $(MZC) `echo $(INCLUDES) | sed 's/-I/++ccf -I/g'` --cc $(ISRCS) $(SRCS)
541 $(COMPILETOOL) $(MZC) --ld $(TARGET)$(MZSCHEME_SO) $(OBJS) $(IOBJS)
543 mzscheme_cpp: $(SRCS)
544 $(SWIG) -mzscheme -c++ $(SWIGOPT) $(INTERFACEPATH)
545 $(COMPILETOOL) $(MZC) `echo $(INCLUDES) | sed 's/-I/++ccf -I/g'` --cc $(ICXXSRCS) $(SRCS) $(CXXSRCS)
546 $(CXXSHARED) $(CFLAGS) -o $(LIBPREFIX)$(TARGET)$(MZSCHEME_SO) $(OBJS) $(IOBJS) $(MZDYNOBJ) $(CPP_DLLIBS)
548 # -----------------------------------------------------------------
549 # Cleaning the mzscheme examples
550 # -----------------------------------------------------------------
554 rm -f core @EXTRA_CLEAN@
555 rm -f *.@OBJEXT@ *@SO@
557 ##################################################################
559 ##################################################################
562 OCAMLDLGEN=@OCAMLDLGEN@
563 OCAMLFIND=@OCAMLFIND@
564 OCAMLMKTOP=@OCAMLMKTOP@ $(SWIGWHERE)
566 OCAMLPP= -pp "camlp4o ./swigp4.cmo"
567 OCAMLP4WHERE=`$(COMPILETOOL) camlp4 -where`
569 rm -rf swig.mli swig.ml swigp4.ml && \
570 $(SWIG) -ocaml -co swig.mli 2>/dev/null && \
571 $(SWIG) -ocaml -co swig.ml 2>/dev/null && \
572 $(SWIG) -ocaml -co swigp4.ml 2>/dev/null && \
573 $(OCC) -c swig.mli && \
574 $(OCC) -c swig.ml && \
575 $(OCC) -I $(OCAMLP4WHERE) -pp "camlp4o pa_extend.cmo q_MLast.cmo" \
578 ocaml_static: $(SRCS)
580 $(SWIG) -ocaml $(SWIGOPT) $(INTERFACEPATH)
581 $(OCC) -g -c -ccopt -g -ccopt "$(INCLUDES)" $(ISRCS) $(SRCS)
582 $(OCC) -g -c $(INTERFACE:%.i=%.mli)
583 $(OCC) -g -c $(INTERFACE:%.i=%.ml)
584 test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
585 $(OCC) $(OCAMLPP) -c $(PROGFILE)
586 $(NOLINK) || $(OCC) -g -ccopt -g -cclib -g -custom -o $(TARGET) \
588 $(INTERFACE:%.i=%.cmo) \
589 $(PROGFILE:%.ml=%.cmo) \
590 $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)"
592 ocaml_dynamic: $(SRCS)
594 $(SWIG) -ocaml $(SWIGOPT) $(INTERFACEPATH)
595 $(OCC) -g -c -ccopt -g -ccopt "$(INCLUDES)" $(ISRCS) $(SRCS)
596 $(CXXSHARED) $(CFLAGS) $(CCSHARED) $(CFLAGS) -o $(INTERFACE:%.i=%@SO@) \
597 $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) $(LIBS)
598 $(OCAMLDLGEN) $(INTERFACE:%.i=%.ml) $(INTERFACE:%.i=%@SO@) > \
599 $(INTERFACE:%.i=%_dynamic.ml)
600 mv $(INTERFACE:%.i=%_dynamic.ml) $(INTERFACE:%.i=%.ml)
601 rm $(INTERFACE:%.i=%.mli)
602 $(OCAMLFIND) $(OCC) -g -c -package dl $(INTERFACE:%.i=%.ml)
603 test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
604 $(OCC) $(OCAMLPP) -c $(PROGFILE)
605 $(NOLINK) || $(OCAMLFIND) \
606 $(OCC) -g -ccopt -g -cclib -g -custom -o $(TARGET) \
608 -package dl -linkpkg \
609 $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo)
611 ocaml_static_toplevel: $(SRCS)
613 $(SWIG) -ocaml $(SWIGOPT) $(INTERFACEPATH)
614 $(OCC) -g -c -ccopt -g -ccopt "$(INCLUDES)" $(ISRCS) $(SRCS)
615 $(OCC) -g -c $(INTERFACE:%.i=%.mli)
616 $(OCC) -g -c $(INTERFACE:%.i=%.ml)
617 test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
618 $(OCC) $(OCAMLPP) -c $(PROGFILE)
619 $(NOLINK) || $(OCAMLMKTOP) \
621 -I $(OCAMLP4WHERE) camlp4o.cma swigp4.cmo \
622 -g -ccopt -g -cclib -g -custom -o $(TARGET)_top \
623 $(INTERFACE:%.i=%.cmo) \
624 $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)"
626 ocaml_static_cpp: $(SRCS)
628 $(SWIG) -ocaml -c++ $(SWIGOPT) $(INTERFACEPATH)
629 cp $(ICXXSRCS) $(ICXXSRCS:%.cxx=%.c)
630 $(OCC) -cc '$(CXX)' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \
631 $(ICXXSRCS:%.cxx=%.c) $(SRCS) $(CXXSRCS)
632 $(OCC) -g -c $(INTERFACE:%.i=%.mli)
633 $(OCC) -g -c $(INTERFACE:%.i=%.ml)
634 test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
635 $(OCC) $(OCAMLPP) -c $(PROGFILE)
636 $(NOLINK) || $(OCC) -g -ccopt -g -cclib -g -custom -o $(TARGET) \
638 $(INTERFACE:%.i=%.cmo) \
639 $(PROGFILE:%.ml=%.cmo) \
640 $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) \
641 -cclib "$(LIBS)" -cc '$(CXX)'
643 ocaml_static_cpp_toplevel: $(SRCS)
645 $(SWIG) -ocaml -c++ $(SWIGOPT) $(INTERFACEPATH)
646 cp $(ICXXSRCS) $(ICXXSRCS:%.cxx=%.c)
647 $(OCC) -cc '$(CXX)' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \
648 $(ICXXSRCS:%.cxx=%.c) $(SRCS) $(CXXSRCS)
649 $(OCC) -g -c $(INTERFACE:%.i=%.mli)
650 $(OCC) -g -c $(INTERFACE:%.i=%.ml)
651 test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
652 $(OCC) $(OCAMLPP) -c $(PROGFILE)
653 $(NOLINK) || $(OCAMLMKTOP) \
655 -I $(OCAMLP4WHERE) camlp4o.cma swigp4.cmo \
656 -g -ccopt -g -cclib -g -custom -o $(TARGET)_top \
657 $(INTERFACE:%.i=%.cmo) \
658 $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) \
659 -cclib "$(LIBS)" -cc '$(CXX)'
661 ocaml_dynamic_cpp: $(SRCS)
663 $(SWIG) -ocaml -c++ $(SWIGOPT) $(INTERFACEPATH)
664 cp $(ICXXSRCS) $(ICXXSRCS:%.cxx=%.c)
665 $(OCC) -cc '$(CXX)' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \
666 $(ICXXSRCS:%.cxx=%.c) $(SRCS) $(CXXSRCS) -ccopt -fPIC
667 $(CXXSHARED) $(CFLAGS) -o $(INTERFACE:%.i=%@SO@) \
668 $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) \
669 $(CPP_DLLIBS) $(LIBS)
670 $(OCAMLDLGEN) $(INTERFACE:%.i=%.ml) $(INTERFACE:%.i=%@SO@) > \
671 $(INTERFACE:%.i=%_dynamic.ml)
672 mv $(INTERFACE:%.i=%_dynamic.ml) $(INTERFACE:%.i=%.ml)
673 rm $(INTERFACE:%.i=%.mli)
674 $(OCAMLFIND) $(OCC) -g -c -package dl $(INTERFACE:%.i=%.ml)
675 test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
676 $(OCC) $(OCAMLPP) -c $(PROGFILE)
677 $(NOLINK) || $(OCAMLFIND) \
679 $(OCC) -cclib -export-dynamic -g -ccopt -g -cclib -g -custom \
681 -package dl -linkpkg \
682 $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) -cc '$(CXX)'
685 rm -f *_wrap* *~ .~* *.cmo *.cmi $(MLFILE) $(MLFILE)i swig.mli swig.cmi swig.ml swig.cmo swigp4.ml swigp4.cmo
686 rm -f core @EXTRA_CLEAN@
687 rm -f *.@OBJEXT@ *@SO@
689 ##################################################################
691 ##################################################################
693 # Make sure these locate your Ruby installation
694 RUBY_CFLAGS= @RUBYCCDLFLAGS@ $(DEFS)
695 RUBY_INCLUDE= @RUBYINCLUDE@
697 RUBY_DLNK = @RUBYDYNAMICLINKING@
699 # ----------------------------------------------------------------
700 # Build a C dynamically loadable module
701 # ----------------------------------------------------------------
704 $(SWIG) -ruby $(SWIGOPT) $(INTERFACEPATH)
705 $(CC) -c $(CCSHARED) $(CFLAGS) $(RUBY_CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) $(RUBY_INCLUDE)
706 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(RUBY_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
708 # -----------------------------------------------------------------
709 # Build a C++ dynamically loadable module
710 # -----------------------------------------------------------------
713 $(SWIG) -c++ -ruby $(SWIGOPT) $(INTERFACEPATH)
714 $(CXX) -c $(CCSHARED) $(CFLAGS) $(RUBY_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) $(RUBY_INCLUDE)
715 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(RUBY_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
717 # -----------------------------------------------------------------
718 # Build statically linked Ruby interpreter
720 # These should only be used in conjunction with the %include embed.i
722 # -----------------------------------------------------------------
724 RUBY_LIBOPTS = @RUBYLINK@ @LIBS@ $(SYSLIBS)
727 $(SWIG) -ruby -lembed.i $(SWIGOPT) $(INTERFACEPATH)
728 $(CC) $(CFLAGS) $(RUBY_CFLAGS) @LINKFORSHARED@ $(ISRCS) $(SRCS) $(INCLUDES) \
729 $(RUBY_INCLUDE) $(LIBS) -L$(RUBY_LIB) $(RUBY_LIBOPTS) -o $(TARGET)
731 ruby_cpp_static: $(SRCS)
732 $(SWIG) -c++ -ruby -lembed.i $(SWIGOPT) $(INTERFACEPATH)
733 $(CXX) $(CFLAGS) $(RUBY_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
734 $(RUBY_INCLUDE) $(LIBS) -L$(RUBY_LIB) $(RUBY_LIBOPTS) -o $(TARGET)
737 # -----------------------------------------------------------------
738 # Cleaning the Ruby examples
739 # -----------------------------------------------------------------
742 rm -f *_wrap* *~ .~* myruby@EXEEXT@ *.pm
743 rm -f core @EXTRA_CLEAN@
744 rm -f *.@OBJEXT@ *@SO@
746 ##################################################################
748 ##################################################################
750 # -------------------------------------------------------------------
751 # Build a PHP dynamically loadable module (C)
752 # -------------------------------------------------------------------
754 PHP_INCLUDE = @PHPINC@
758 $(SWIG) -php $(SWIGOPT) $(INTERFACEPATH)
759 $(CC) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(PHP_INCLUDE)
760 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(PHP_SO)
762 # --------------------------------------------------------------------
763 # Build a PHP dynamically loadable module (C++)
764 # --------------------------------------------------------------------
767 $(SWIG) -php -cppext cxx -c++ $(SWIGOPT) $(INTERFACEPATH)
768 $(CXX) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(PHP_INCLUDE)
769 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(PHP_SO)
771 # -----------------------------------------------------------------
772 # Running a PHP example
773 # -----------------------------------------------------------------
776 PHPSCRIPT ?= runme.php
779 env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(RUNTOOL) $(PHP) -n -q -d extension_dir=. -d safe_mode=Off $(PHPSCRIPT)
781 # -----------------------------------------------------------------
782 # Cleaning the PHP examples
783 # -----------------------------------------------------------------
786 rm -f *_wrap* *~ .~* example.php php_example.h
787 rm -f core @EXTRA_CLEAN@
788 rm -f *.@OBJEXT@ *@SO@
790 ##################################################################
792 ##################################################################
794 # Make sure these locate your Pike installation
795 PIKE_CFLAGS = @PIKECCDLFLAGS@ -DHAVE_CONFIG_H
796 PIKE_INCLUDE = @PIKEINCLUDE@
798 PIKE_DLNK = @PIKEDYNAMICLINKING@
800 # ----------------------------------------------------------------
801 # Build a C dynamically loadable module
802 # ----------------------------------------------------------------
805 $(SWIG) -pike $(SWIGOPT) $(INTERFACEPATH)
806 $(CC) -c $(CCSHARED) $(CFLAGS) $(PIKE_CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) $(PIKE_INCLUDE)
807 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(PIKE_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
809 # -----------------------------------------------------------------
810 # Build a C++ dynamically loadable module
811 # -----------------------------------------------------------------
814 $(SWIG) -c++ -pike $(SWIGOPT) $(INTERFACEPATH)
815 $(CXX) -c $(CCSHARED) $(CFLAGS) $(PIKE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) $(PIKE_INCLUDE)
816 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(PIKE_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
818 # -----------------------------------------------------------------
819 # Build statically linked Pike interpreter
821 # These should only be used in conjunction with the %include embed.i
823 # -----------------------------------------------------------------
825 PIKE_LIBOPTS = @PIKELINK@ @LIBS@ $(SYSLIBS)
828 $(SWIG) -pike -lembed.i $(SWIGOPT) $(INTERFACEPATH)
829 $(CC) $(CFLAGS) $(PIKE_CFLAGS) @LINKFORSHARED@ $(ISRCS) $(SRCS) $(INCLUDES) \
830 $(PIKE_INCLUDE) $(LIBS) -L$(PIKE_LIB) $(PIKE_LIBOPTS) -o $(TARGET)
832 pike_cpp_static: $(SRCS)
833 $(SWIG) -c++ -pike -lembed.i $(SWIGOPT) $(INTERFACEPATH)
834 $(CXX) $(CFLAGS) $(PIKE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
835 $(PIKE_INCLUDE) $(LIBS) -L$(PIKE_LIB) $(PIKE_LIBOPTS) -o $(TARGET)
837 # -----------------------------------------------------------------
838 # Cleaning the Pike examples
839 # -----------------------------------------------------------------
842 rm -f *_wrap* *~ .~* mypike@EXEEXT@
843 rm -f core @EXTRA_CLEAN@
844 rm -f *.@OBJEXT@ *@SO@
847 ##################################################################
849 ##################################################################
852 CHICKEN_CSC = @CHICKEN_CSC@
853 CHICKEN_LIBOPTS = @CHICKENLIB@ $(SYSLIBS)
854 CHICKEN_SHAREDLIBOPTS = @CHICKENSHAREDLIB@ $(SYSLIBS)
855 CHICKEN_CFLAGS = @CHICKENOPTS@
859 # SWIG produces $(ISRCS) (the C wrapper file)
860 # and $(CHICKEN_GENERATED_SCHEME) (the Scheme wrapper file):
861 CHICKEN_GENERATED_SCHEME = $(INTERFACE:.i=.scm)
862 CHICKEN_COMPILED_SCHEME = $(INTERFACE:.i=_chicken.c)
863 CHICKEN_COMPILED_OBJECT = $(CHICKEN_COMPILED_SCHEME:.c=.@OBJEXT@)
865 # flags for the main chicken sources (only used when compiling staticly)
866 CHICKEN_COMPILED_MAIN = $(CHICKEN_MAIN:.scm=_chicken.c)
867 CHICKEN_COMPILED_MAIN_OBJECT = $(CHICKEN_COMPILED_MAIN:.c=.@OBJEXT@)
869 # -----------------------------------------------------------------
870 # Build a CHICKEN dynamically loadable module
871 # -----------------------------------------------------------------
873 # This is the old way to build chicken, but it does not work correctly with exceptions
874 chicken_direct: $(SRCS)
875 $(SWIG) -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACEPATH)
876 $(CHICKEN) $(CHICKEN_GENERATED_SCHEME) $(CHICKENOPTS) \
877 -dynamic -feature chicken-compile-shared \
878 -output-file $(CHICKEN_COMPILED_SCHEME)
879 $(CC) -c $(CCSHARED) $(CFLAGS) $(CHICKEN_CFLAGS) \
880 $(INCLUDES) $(CHICKEN_INCLUDE) $(ISRCS) $(SRCS) $(CHICKEN_COMPILED_SCHEME)
881 $(LDSHARED) $(CFLAGS) $(CHICKEN_COMPILED_OBJECT) $(OBJS) $(IOBJS) \
882 $(LIBS) $(CHICKEN_SHAREDLIBOPTS) -o $(LIBPREFIX)$(TARGET)$(SO)
884 chicken_direct_cpp: $(CXXSRCS) $(CHICKSRCS)
885 $(SWIG) -c++ -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACEPATH)
886 $(CHICKEN) $(CHICKEN_GENERATED_SCHEME) $(CHICKENOPTS) \
887 -dynamic -feature chicken-compile-shared \
888 -output-file $(CHICKEN_COMPILED_SCHEME)
889 $(CXX) -c $(CCSHARED) $(CFLAGS) $(CHICKEN_CFLAGS) \
890 $(INCLUDES) $(CHICKEN_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(CHICKEN_COMPILED_SCHEME)
891 $(CXXSHARED) $(CFLAGS) $(CHICKEN_COMPILED_OBJECT) $(OBJS) $(IOBJS) \
892 $(LIBS) $(CPP_DLLIBS) $(CHICKEN_SHAREDLIBOPTS) -o $(LIBPREFIX)$(TARGET)$(SO)
894 # -----------------------------------------------------------------
895 # Build statically linked CHICKEN interpreter
896 # -----------------------------------------------------------------
898 # The following two targets are also used by the test suite
899 chicken_static: $(SRCS) $(CHICKSRCS)
900 $(SWIG) -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACEPATH)
901 $(CHICKEN) $(CHICKEN_GENERATED_SCHEME) $(CHICKENOPTS) \
902 -output-file $(CHICKEN_COMPILED_SCHEME)
903 $(CHICKEN) $(CHICKEN_MAIN) $(CHICKENOPTS) \
904 -output-file $(CHICKEN_MAIN:.scm=_chicken.c)
905 $(CC) -c $(CCSHARED) $(CFLAGS) $(CHICKEN_CFLAGS) \
906 $(INCLUDES) $(CHICKEN_INCLUDE) $(ISRCS) $(SRCS) \
907 $(CHICKEN_COMPILED_SCHEME) $(CHICKEN_COMPILED_MAIN)
908 $(CC) $(CHICKEN_COMPILED_OBJECT) $(CHICKEN_COMPILED_MAIN_OBJECT) \
909 $(OBJS) $(IOBJS) $(LIBS) $(CHICKEN_SHAREDLIBOPTS) -o $(TARGET)
911 chicken_static_cpp: $(CXXSRCS) $(CHICKSRCS)
912 $(SWIG) -c++ -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACEPATH)
913 $(CHICKEN) $(CHICKEN_GENERATED_SCHEME) $(CHICKENOPTS) \
914 -output-file $(CHICKEN_COMPILED_SCHEME)
915 $(CHICKEN) $(CHICKEN_MAIN) $(CHICKENOPTS) \
916 -output-file $(CHICKEN_MAIN:.scm=_chicken.c)
917 $(CXX) -c $(CCSHARED) $(CFLAGS) $(CHICKEN_CFLAGS) \
918 $(INCLUDES) $(CHICKEN_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS) \
919 $(CHICKEN_COMPILED_SCHEME) $(CHICKEN_COMPILED_MAIN)
920 $(CXX) $(CHICKEN_COMPILED_OBJECT) $(CHICKEN_COMPILED_MAIN_OBJECT) \
921 $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) $(CHICKEN_SHAREDLIBOPTS) -o $(TARGET)
923 # ----------------------------------------------------------------
924 # Build a shared library using csc
925 # ----------------------------------------------------------------
928 $(SWIG) -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACEPATH)
929 $(COMPILETOOL) $(CHICKEN_CSC) -s `echo $(INCLUDES) | sed 's/-I/-C -I/g'` $(CHICKEN_GENERATED_SCHEME) $(SRCS) $(ISRCS) -o $(TARGET)$(SO)
932 $(SWIG) -c++ -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACEPATH)
933 $(COMPILETOOL) $(CHICKEN_CSC) -s `echo $(INCLUDES) | sed 's/-I/-C -I/g'` $(CHICKEN_GENERATED_SCHEME) $(SRCS) $(ICXXSRCS) $(CXXSRCS) -o $(TARGET)$(SO)
936 $(SWIG) -chicken -external-runtime $(TARGET)
939 rm -f *_wrap* *~ .~* *_chicken*
940 rm -f core @EXTRA_CLEAN@
941 rm -f *.@OBJEXT@ *@SO@
943 ##################################################################
945 ##################################################################
947 # Extra CSharp specific dynamic linking options
948 CSHARP_DLNK = @CSHARPDYNAMICLINKING@
949 CSHARP_LIBPREFIX = @CSHARPLIBRARYPREFIX@
950 CSHARPCOMPILER = @CSHARPCOMPILER@
951 CSHARPCILINTERPRETER = @CSHARPCILINTERPRETER@
952 CSHARPCFLAGS = @CSHARPCFLAGS@
953 CSHARPSO = @CSHARPSO@
955 # ----------------------------------------------------------------
956 # Build a CSharp dynamically loadable module (C)
957 # ----------------------------------------------------------------
960 $(SWIG) -csharp $(SWIGOPT) $(INTERFACEPATH)
961 $(CC) -c $(CCSHARED) $(CFLAGS) $(CSHARPCFLAGS) $(SRCS) $(ISRCS) $(INCLUDES)
962 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(CSHARP_DLNK) $(LIBS) -o $(CSHARP_LIBPREFIX)$(TARGET)$(CSHARPSO)
964 # ----------------------------------------------------------------
965 # Build a CSharp dynamically loadable module (C++)
966 # ----------------------------------------------------------------
969 $(SWIG) -csharp -c++ $(SWIGOPT) $(INTERFACEPATH)
970 $(CXX) -c $(CCSHARED) $(CFLAGS) $(CSHARPCFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES)
971 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(CSHARP_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(CSHARP_LIBPREFIX)$(TARGET)$(CSHARPSO)
973 # ----------------------------------------------------------------
974 # Compile CSharp files
975 # ----------------------------------------------------------------
977 csharp_compile: $(SRCS)
978 $(COMPILETOOL) $(CSHARPCOMPILER) $(CSHARPFLAGS) $(CSHARPSRCS)
980 # -----------------------------------------------------------------
981 # Cleaning the CSharp examples
982 # -----------------------------------------------------------------
985 rm -f *_wrap* *~ .~* runme runme.exe *.exe.mdb gc.log `find . -name \*.cs | grep -v runme.cs`
986 rm -f core @EXTRA_CLEAN@
987 rm -f *.@OBJEXT@ *@CSHARPSO@
989 ##################################################################
991 ##################################################################
994 LUA_INCLUDE= @LUAFLAGS@
997 # Extra specific dynamic linking options
998 LUA_DLNK = @LUADYNAMICLINKING@
1001 # Extra code for lua static link
1002 LUA_INTERP = ../lua.c
1004 # ----------------------------------------------------------------
1005 # Build a C dynamically loadable module
1006 # ----------------------------------------------------------------
1009 $(SWIG) -lua $(SWIGOPT) $(INTERFACEPATH)
1010 $(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) $(LUA_INCLUDE)
1011 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(LUA_LIB) -o $(LIBPREFIX)$(TARGET)$(LUA_SO)
1013 # -----------------------------------------------------------------
1014 # Build a C++ dynamically loadable module
1015 # -----------------------------------------------------------------
1018 $(SWIG) -c++ -lua $(SWIGOPT) $(INTERFACEPATH)
1019 $(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) $(LUA_INCLUDE)
1020 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(LUA_LIB) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(LUA_SO)
1022 # -----------------------------------------------------------------
1023 # Build statically linked Lua interpreter
1024 # -----------------------------------------------------------------
1027 $(SWIG) -lua -module example $(SWIGOPT) $(INTERFACEPATH)
1028 $(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(LUA_INTERP) $(INCLUDES) \
1029 $(LUA_INCLUDE) $(LIBS) $(LUA_LIB) -o $(TARGET)
1031 lua_static_cpp: $(SRCS)
1032 $(SWIG) -c++ -lua -module example $(SWIGOPT) $(INTERFACEPATH)
1033 $(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(LUA_INTERP) $(INCLUDES) \
1034 $(LUA_INCLUDE) $(LIBS) $(LUA_LIB) -o $(TARGET)
1036 # -----------------------------------------------------------------
1037 # Cleaning the lua examples
1038 # -----------------------------------------------------------------
1041 rm -f *_wrap* *~ .~* mylua@EXEEXT@
1042 rm -f core @EXTRA_CLEAN@
1043 rm -f *.@OBJEXT@ *@SO@
1045 ##################################################################
1046 ##### ALLEGRO CL ######
1047 ##################################################################
1050 $(SWIG) -allegrocl -cwrap $(SWIGOPT) $(INTERFACEPATH)
1051 $(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(INCLUDES) $(SRCS)
1052 $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
1054 allegrocl_cpp: $(SRCS)
1055 $(SWIG) -c++ -allegrocl $(SWIGOPT) $(INTERFACEPATH)
1056 $(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES)
1057 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
1060 rm -f *_wrap* *~ .~*
1061 rm -f core @EXTRA_CLEAN@
1062 rm -f *.@OBJEXT@ *@SO@
1064 ##################################################################
1066 ##################################################################
1069 $(SWIG) -clisp $(SWIGOPT) $(INTERFACEPATH)
1072 $(SWIG) -c++ -clisp $(SWIGOPT) $(INTERFACEPATH)
1075 rm -f *_wrap* *~ .~*
1076 rm -f core @EXTRA_CLEAN@
1077 rm -f *.@OBJEXT@ *@SO@
1079 ##################################################################
1081 ##################################################################
1084 $(SWIG) -cffi $(SWIGOPT) $(INTERFACEPATH)
1085 # $(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(INCLUDES) $(SRCS)
1086 # $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
1089 $(SWIG) -c++ -cffi $(SWIGOPT) $(INTERFACEPATH)
1090 $(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES)
1091 $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
1094 rm -f *_wrap* *~ .~*
1095 rm -f core @EXTRA_CLEAN@
1096 rm -f *.@OBJEXT@ *@SO@
1098 ##################################################################
1100 ##################################################################
1103 $(SWIG) -uffi $(SWIGOPT) $(INTERFACEPATH)
1104 # $(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(INCLUDES) $(SRCS)
1105 # $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
1108 $(SWIG) -c++ -uffi $(SWIGOPT) $(INTERFACEPATH)
1109 # $(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES)
1110 # $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
1113 rm -f *_wrap* *~ .~*
1114 rm -f core @EXTRA_CLEAN@
1115 rm -f *.@OBJEXT@ *@SO@
1117 ##################################################################
1119 ##################################################################
1122 RCXXSRCS = $(INTERFACE:.i=_wrap.cpp) #Need to use _wrap.cpp for R build system as it does not understand _wrap.cxx
1123 RRSRC = $(INTERFACE:.i=.R)
1126 $(SWIG) -r $(SWIGOPT) $(INTERFACEPATH)
1127 +( PKG_LIBS="$(SRCS)" PKG_CPPFLAGS="$(INCLUDES)" $(COMPILETOOL) $(R) CMD SHLIB -o $(LIBPREFIX)$(TARGET)$(SO) $(ISRCS) )
1130 $(SWIG) -c++ -r $(SWIGOPT) -o $(RCXXSRCS) $(INTERFACEPATH)
1131 +( PKG_LIBS="$(CXXSRCS)" PKG_CPPFLAGS="$(INCLUDES)" $(COMPILETOOL) $(R) CMD SHLIB -o $(LIBPREFIX)$(TARGET)$(SO) $(RCXXSRCS) )
1134 rm -f *_wrap* *~ .~*
1135 rm -f core @EXTRA_CLEAN@
1136 rm -f *.@OBJEXT@ *@SO@ NAMESPACE
1137 rm -f $(RRSRC) runme.Rout .RData