PageRenderTime 58ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 1ms

/tags/rel-1-3-24/SWIG/Examples/Makefile.in

#
Autoconf | 864 lines | 454 code | 168 blank | 242 comment | 25 complexity | 67ed8fb15c8ad48f345d1d61151b358e MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. # ------------------------------------------------------------
  2. # SWIG Examples Makefile
  3. #
  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.
  7. #
  8. # Other notes:
  9. #
  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
  13. # accordingly.
  14. #
  15. # 2. To use this makefile, simply set SRCS, INTERFACE, INCLUDES, LIBS,
  16. # TARGET, and do a
  17. # $(MAKE) -f Makefile.template.in SRCS='$(SRCS)' \
  18. # INCLUDES='$(INCLUDES) LIBS='$(LIBS)' INTERFACE='$(INTERFACE)' \
  19. # TARGET='$(TARGET)' method
  20. #
  21. # 'method' describes what is being built.
  22. #---------------------------------------------------------------
  23. TARGET =
  24. CC = @CC@
  25. CXX = @CXX@
  26. CFLAGS = @PLATFLAGS@
  27. prefix = @prefix@
  28. exec_prefix= @exec_prefix@
  29. SRCS =
  30. INCLUDES =
  31. LIBS =
  32. INTERFACE =
  33. SWIGOPT =
  34. SWIG = swig@release_suffix@
  35. LIBM = @LIBM@
  36. LIBC = @LIBC@
  37. LIBCRYPT = @LIBCRYPT@
  38. SYSLIBS = $(LIBM) $(LIBC) $(LIBCRYPT)
  39. LIBPREFIX =
  40. # X11 options
  41. XLIB = @XLIBSW@
  42. XINCLUDE = @XINCLUDES@
  43. IWRAP = $(INTERFACE:.i=_wrap.i)
  44. ISRCS = $(IWRAP:.i=.c)
  45. ICXXSRCS = $(IWRAP:.i=.cxx)
  46. IOBJS = $(IWRAP:.i=.@OBJEXT@)
  47. ##################################################################
  48. # Dynamic loading for C++
  49. # If you are going to be building dynamic loadable modules in C++,
  50. # you may need to edit this line appropriately.
  51. #
  52. # This line works for g++, but I'm not sure what it might be
  53. # for other C++ compilers
  54. ##################################################################
  55. CPP_DLLIBS = #-L/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.7.2 \
  56. -L/usr/local/lib -lg++ -lstdc++ -lgcc
  57. # Solaris workshop 5.0
  58. # CPP_DLLIBS = -L/opt/SUNWspro/lib -lCrun
  59. # Symbols used for using shared libraries
  60. SO= @SO@
  61. LDSHARED= @LDSHARED@
  62. CCSHARED= @CCSHARED@
  63. CXXSHARED= @CXXSHARED@
  64. # This is used for building shared libraries with a number of C++
  65. # compilers. If it doesn't work, comment it out.
  66. @TRYLINKINGWITHCXX@
  67. OBJS = $(SRCS:.c=.@OBJEXT@) $(CXXSRCS:.cxx=.@OBJEXT@)
  68. ##################################################################
  69. ##### Tcl/Tk ######
  70. ##################################################################
  71. # Set these to your local copy of Tcl/Tk.
  72. TCL_INCLUDE = @TCLINCLUDE@
  73. TCL_LIB = @TCLLIB@
  74. TCL_OPTS = @LIBS@
  75. TK_OPTS = -ltk -ltcl @LIBS@
  76. # Extra Tcl specific dynamic linking options
  77. TCL_DLNK = @TCLDYNAMICLINKING@
  78. TCL_LDSHARED = @TCL_LDSHARED@
  79. TCL_CXXSHARED = @TCL_CXXSHARED@
  80. TCL_SO = @TCL_SO@
  81. # -----------------------------------------------------------
  82. # Build a new version of the tclsh shell
  83. # -----------------------------------------------------------
  84. tclsh: $(SRCS)
  85. $(SWIG) -tcl8 $(SWIGOPT) $(TCL_SWIGOPTS) -ltclsh.i $(INTERFACE)
  86. $(CC) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(TCL_INCLUDE) \
  87. $(TCL_LIB) $(TCL_OPTS) $(LIBS) $(SYSLIBS) -o $(TARGET)
  88. tclsh_cpp: $(SRCS)
  89. $(SWIG) -tcl8 -c++ $(SWIGOPT) $(TCL_SWIGOPTS) -ltclsh.i $(INTERFACE)
  90. $(CXX) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(TCL_INCLUDE) \
  91. $(TCL_LIB) $(TCL_OPTS) $(LIBS) $(SYSLIBS) -o $(TARGET)
  92. # -----------------------------------------------------------
  93. # Build a new copy of wish
  94. # -----------------------------------------------------------
  95. wish: $(SRCS)
  96. $(SWIG) -tcl8 $(SWIGOPT) $(TCL_SWIGOPTS) -lwish.i $(INTERFACE)
  97. $(CC) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(TCL_INCLUDE) \
  98. $(XINCLUDE) $(TCL_LIB) $(TK_OPTS) $(XLIB) $(LIBS) $(SYSLIBS) -o $(TARGET)
  99. wish_cpp: $(SRCS)
  100. $(SWIG) -tcl8 -c++ $(SWIGOPT) $(TCL_SWIGOPTS) -lwish.i $(INTERFACE)
  101. $(CXX) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(TCL_INCLUDE) \
  102. $(XINCLUDE) $(TCL_LIB) $(TK_OPTS) $(XLIB) $(LIBS) $(SYSLIBS) -o $(TARGET)
  103. # -----------------------------------------------------------
  104. # Build a Tcl dynamic loadable module (you might need to tweak this)
  105. # -----------------------------------------------------------
  106. tcl: $(SRCS)
  107. $(SWIG) -tcl8 $(SWIGOPT) $(TCL_SWIGOPTS) $(INTERFACE)
  108. $(CC) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(TCL_INCLUDE)
  109. $(TCL_LDSHARED) $(OBJS) $(IOBJS) $(TCL_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(TCL_SO)
  110. # -----------------------------------------------------------
  111. # Build a Tcl7.5 dynamic loadable module for C++
  112. # -----------------------------------------------------------
  113. tcl_cpp: $(SRCS)
  114. $(SWIG) -tcl8 -c++ $(SWIGOPT) $(TCL_SWIGOPTS) $(INTERFACE)
  115. $(CXX) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(TCL_INCLUDE)
  116. $(TCL_CXXSHARED) $(OBJS) $(IOBJS) $(TCL_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(TCL_SO)
  117. # -----------------------------------------------------------------
  118. # Cleaning the Tcl examples
  119. # -----------------------------------------------------------------
  120. tcl_clean:
  121. rm -f *.@OBJEXT@ *@SO@ *_wrap* *~ .~* core @EXTRA_CLEAN@ mytclsh@EXEEXT@
  122. ##################################################################
  123. ##### PERL 5 ######
  124. ##################################################################
  125. # You need to set this variable to the Perl5 directory containing the
  126. # files "perl.h", "EXTERN.h" and "XSUB.h". With Perl5.003, it's
  127. # usually something like /usr/local/lib/perl5/arch-osname/5.003/CORE.
  128. PERL5_INCLUDE= @PERL5EXT@
  129. # Extra Perl specific dynamic linking options
  130. PERL5_DLNK = @PERL5DYNAMICLINKING@
  131. PERL5_CCFLAGS = @PERL5CCFLAGS@
  132. # ----------------------------------------------------------------
  133. # Build a Perl5 dynamically loadable module (C)
  134. # ----------------------------------------------------------------
  135. perl5: $(SRCS)
  136. $(SWIG) -perl5 $(SWIGOPT) $(INTERFACE)
  137. $(CC) -c -Dbool=char $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(PERL5_CCFLAGS) -I$(PERL5_INCLUDE)
  138. $(LDSHARED) $(OBJS) $(IOBJS) $(PERL5_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
  139. # ----------------------------------------------------------------
  140. # Build a Perl5 dynamically loadable module (C++)
  141. # ----------------------------------------------------------------
  142. perl5_cpp: $(SRCS)
  143. $(SWIG) -perl5 -c++ $(SWIGOPT) $(INTERFACE)
  144. $(CXX) -c $(CCSHARED) $(CFLAGS) -Dexplicit= $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(PERL5_CCFLAGS) -I$(PERL5_INCLUDE)
  145. $(CXXSHARED) $(OBJS) $(IOBJS) $(PERL5_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
  146. # ----------------------------------------------------------------
  147. # Build a module from existing XS C source code. (ie. from xsubpp).
  148. # ----------------------------------------------------------------
  149. perl5_xs: $(SRCS)
  150. $(CC) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(INCLUDES) -I$(PERL5_INCLUDE)
  151. $(LDSHARED) $(OBJS) $(LIBS) -o $(TARGET)$(SO)
  152. # ----------------------------------------------------------------
  153. # Build a statically linked Perl5 executable
  154. # ----------------------------------------------------------------
  155. PERL5_LIB = -L$(PERL5_INCLUDE) -l@PERL5LIB@ @LIBS@ $(SYSLIBS)
  156. perl5_static: $(SRCS)
  157. $(SWIG) -perl5 -static -lperlmain.i $(SWIGOPT) $(INTERFACE)
  158. $(CC) $(CFLAGS) -Dbool=char $(SRCS) $(ISRCS) $(INCLUDES) -I$(PERL5_INCLUDE) $(PERL5_LIB) $(LIBS) -o $(TARGET)
  159. perl5_static_cpp: $(SRCS)
  160. $(SWIG) -perl5 -c++ -static -lperlmain.i $(SWIGOPT) $(INTERFACE)
  161. $(CXX) $(CFLAGS) -Dexplicit= $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) -I$(PERL5_INCLUDE) $(PERL5_LIB) $(LIBS) -o $(TARGET)
  162. # -----------------------------------------------------------------
  163. # Cleaning the Perl5 examples
  164. # -----------------------------------------------------------------
  165. perl5_clean:
  166. rm -f *.@OBJEXT@ *@SO@ *_wrap* *~ .~* core @EXTRA_CLEAN@ myperl@EXEEXT@ *.pm
  167. ##################################################################
  168. ##### PYTHON ######
  169. ##################################################################
  170. # Make sure these locate your Python installation
  171. PYTHON_INCLUDE= -DHAVE_CONFIG_H @PYINCLUDE@
  172. PYTHON_LIB = @PYLIB@
  173. # Extra Python specific dynamic linking options
  174. PYTHON_DLNK = @PYTHONDYNAMICLINKING@
  175. PYTHON_SO = @PYTHON_SO@
  176. # ----------------------------------------------------------------
  177. # Build a C dynamically loadable module
  178. # ----------------------------------------------------------------
  179. python: $(SRCS)
  180. $(SWIG) -python $(SWIGOPT) $(INTERFACE)
  181. $(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) $(PYTHON_INCLUDE)
  182. $(LDSHARED) $(OBJS) $(IOBJS) $(PYTHON_DLNK) $(LIBS) -o $(LIBPREFIX)_$(TARGET)$(PYTHON_SO)
  183. # -----------------------------------------------------------------
  184. # Build a C++ dynamically loadable module
  185. # -----------------------------------------------------------------
  186. python_cpp: $(SRCS)
  187. $(SWIG) -c++ -python $(SWIGOPT) $(INTERFACE)
  188. $(CXX) -c $(CCSHARED) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) $(PYTHON_INCLUDE)
  189. $(CXXSHARED) $(OBJS) $(IOBJS) $(PYTHON_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)_$(TARGET)$(PYTHON_SO)
  190. # -----------------------------------------------------------------
  191. # Build statically linked Python interpreter
  192. #
  193. # These should only be used in conjunction with the %include embed.i
  194. # library file
  195. # -----------------------------------------------------------------
  196. #TKINTER = -L/usr/X11R6.3/lib -L/usr/local/compat/lib -ltk4.0 -ltcl7.4 -lX11
  197. TKINTER =
  198. PYTHON_LIBOPTS = @PYLINK@ @LIBS@ $(TKINTER) $(SYSLIBS)
  199. python_static: $(SRCS)
  200. $(SWIG) -python -lembed.i $(SWIGOPT) $(INTERFACE)
  201. $(CC) $(CFLAGS) @LINKFORSHARED@ $(ISRCS) $(SRCS) $(INCLUDES) \
  202. $(PYTHON_INCLUDE) $(LIBS) -L$(PYTHON_LIB) $(PYTHON_LIBOPTS) -o $(TARGET)
  203. python_static_cpp: $(SRCS)
  204. $(SWIG) -c++ -python -lembed.i $(SWIGOPT) $(INTERFACE)
  205. $(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
  206. $(PYTHON_INCLUDE) $(LIBS) -L$(PYTHON_LIB) $(PYTHON_LIBOPTS) -o $(TARGET)
  207. # -----------------------------------------------------------------
  208. # Cleaning the python examples
  209. # -----------------------------------------------------------------
  210. python_clean:
  211. rm -f *.@OBJEXT@ *@SO@ *_wrap* *~ .~* core @EXTRA_CLEAN@ mypython@EXEEXT@ *.pyc
  212. ##################################################################
  213. ##### GUILE ######
  214. ##################################################################
  215. # Make sure these locate your Guile installation
  216. GUILE_INCLUDE = @GUILEINCLUDE@
  217. GUILE_LIB = @GUILELIB@
  218. GUILE_SO = @GUILE_SO@
  219. GUILE_LIBPREFIX = lib
  220. #------------------------------------------------------------------
  221. # Build a dynamically loaded module with passive linkage and the scm interface
  222. #------------------------------------------------------------------
  223. guile: $(SRCS)
  224. $(SWIG) -guile -scm -Linkage passive $(SWIGOPT) $(INTERFACE)
  225. $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS)
  226. $(LDSHARED) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
  227. guile_cpp: $(SRCS)
  228. $(SWIG) -c++ -guile -scm -Linkage passive $(SWIGOPT) $(INTERFACE)
  229. $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
  230. $(CXXSHARED) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
  231. #------------------------------------------------------------------
  232. # Build a dynamically loaded module with passive linkage and the gh interface
  233. #------------------------------------------------------------------
  234. guile_gh: $(SRCS)
  235. $(SWIG) -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACE)
  236. $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS)
  237. $(LDSHARED) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
  238. guile_gh_cpp: $(SRCS)
  239. $(SWIG) -c++ -guile -gh -Linkage passive $(SWIGOPT) $(INTERFACE)
  240. $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
  241. $(CXXSHARED) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
  242. # -----------------------------------------------------------------
  243. # Build a dynamically loadable module with passive linkage
  244. # -----------------------------------------------------------------
  245. guile_passive: $(SRCS)
  246. $(SWIG) -guile -Linkage passive $(SWIGOPT) $(INTERFACE)
  247. $(CC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ISRCS) $(SRCS)
  248. $(LDSHARED) $(OBJS) $(IOBJS) $(LIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
  249. guile_passive_cpp: $(SRCS)
  250. $(SWIG) -c++ -guile -Linkage passive $(SWIGOPT) $(INTERFACE)
  251. $(CXX) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(GUILE_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS)
  252. $(CXXSHARED) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(GUILE_LIBPREFIX)$(TARGET)$(GUILE_SO)
  253. # -----------------------------------------------------------------
  254. # Build statically linked Guile interpreter
  255. # -----------------------------------------------------------------
  256. GUILE_LIBOPTS = @GUILELINK@ @LIBS@ $(SYSLIBS)
  257. guile_static: $(SRCS)
  258. $(SWIG) -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACE)
  259. $(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \
  260. -DSWIGINIT="SCM scm_init_$(TARGET)_module(void); scm_init_$(TARGET)_module();" \
  261. $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
  262. guile_static_cpp: $(SRCS)
  263. $(SWIG) -c++ -guile -lguilemain.i -Linkage ltdlmod $(SWIGOPT) $(INTERFACE)
  264. $(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
  265. -DSWIGINIT="SCM scm_init_$(TARGET)_module(void); scm_init_$(TARGET)_module();" \
  266. $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
  267. guile_simple: $(SRCS)
  268. $(SWIG) -guile -lguilemain.i -Linkage simple $(SWIGOPT) $(INTERFACE)
  269. $(CC) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) \
  270. $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
  271. guile_simple_cpp: $(SRCS)
  272. $(SWIG) -c++ -guile -lguilemain.i -Linkage simple $(SWIGOPT) $(INTERFACE)
  273. $(CXX) $(CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
  274. $(GUILE_INCLUDE) $(LIBS) -L$(GUILE_LIB) $(GUILE_LIBOPTS) -o $(TARGET)-guile
  275. # -----------------------------------------------------------------
  276. # Cleaning the Guile examples
  277. # -----------------------------------------------------------------
  278. guile_clean:
  279. rm -f *.@OBJEXT@ *@SO@ *.$(GUILE_SO) *_wrap* *~ .~* core @EXTRA_CLEAN@ my-guile@EXEEXT@ $(TARGET)@EXEEXT@
  280. ##################################################################
  281. ##### JAVA ######
  282. ##################################################################
  283. # You need to set this variable to the java directories containing the
  284. # files "jni.h" and "md.h"
  285. # usually something like /usr/java/include and /usr/java/include/<arch-osname>.
  286. JAVA_INCLUDE= @JAVAINC@
  287. # Extra Java specific dynamic linking options
  288. JAVA_DLNK = @JAVADYNAMICLINKING@
  289. JAVA_LIBPREFIX = @JAVALIBRARYPREFIX@
  290. JAVASO =@JAVASO@
  291. JAVALDSHARED = @JAVALDSHARED@
  292. JAVACXXSHARED = @JAVACXXSHARED@
  293. JAVACFLAGS = @JAVACFLAGS@
  294. # ----------------------------------------------------------------
  295. # Build a java dynamically loadable module (C)
  296. # ----------------------------------------------------------------
  297. java: $(SRCS)
  298. $(SWIG) -java $(SWIGOPT) $(INTERFACE)
  299. $(CC) -c $(CCSHARED) $(CFLAGS) $(JAVACFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(JAVA_INCLUDE)
  300. $(JAVALDSHARED) $(OBJS) $(IOBJS) $(JAVA_DLNK) $(LIBS) -o $(JAVA_LIBPREFIX)$(TARGET)$(JAVASO)
  301. # ----------------------------------------------------------------
  302. # Build a java dynamically loadable module (C++)
  303. # ----------------------------------------------------------------
  304. java_cpp: $(SRCS)
  305. $(SWIG) -java -c++ $(SWIGOPT) $(INTERFACE)
  306. $(CXX) -c $(CCSHARED) $(CFLAGS) $(JAVACFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(JAVA_INCLUDE)
  307. $(JAVACXXSHARED) $(OBJS) $(IOBJS) $(JAVA_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(JAVA_LIBPREFIX)$(TARGET)$(JAVASO)
  308. # -----------------------------------------------------------------
  309. # Cleaning the java examples
  310. # -----------------------------------------------------------------
  311. java_clean:
  312. rm -f *.@OBJEXT@ *@JAVASO@ *_wrap* *~ .~* core @EXTRA_CLEAN@ *.class `find . -name \*.java | grep -v main.java`
  313. ##################################################################
  314. ##### MODULA3 ######
  315. ##################################################################
  316. MODULA3_INCLUDE= @MODULA3INC@
  317. # ----------------------------------------------------------------
  318. # Build a modula3 dynamically loadable module (C)
  319. # ----------------------------------------------------------------
  320. modula3: $(SRCS)
  321. $(SWIG) -modula3 $(SWIGOPT) $(INTERFACE)
  322. # $(CC) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) \
  323. # $(OBJS) $(IOBJS) $(LIBS)
  324. modula3_cpp: $(SRCS)
  325. $(SWIG) -modula3 -c++ $(SWIGOPT) $(INTERFACE)
  326. # -----------------------------------------------------------------
  327. # Cleaning the modula3 examples
  328. # -----------------------------------------------------------------
  329. modula3_clean:
  330. rm -f *_wrap* *.i3 *.m3
  331. ##################################################################
  332. ##### MZSCHEME ######
  333. ##################################################################
  334. MZC = test -n "@MZC@" && @MZC@
  335. MZDYNOBJ = @MZDYNOBJ@
  336. MZSCHEME_SO = @MZSCHEME_SO@
  337. # ----------------------------------------------------------------
  338. # Build a C/C++ dynamically loadable module
  339. # ----------------------------------------------------------------
  340. mzscheme: $(SRCS)
  341. $(SWIG) -mzscheme $(SWIGOPT) $(INTERFACE)
  342. $(MZC) ++ccf "$(INCLUDES)" --cc $(ISRCS) $(SRCS)
  343. $(MZC) --ld $(TARGET)$(MZSCHEME_SO) $(OBJS) $(IOBJS)
  344. mzscheme_cpp: $(SRCS)
  345. $(SWIG) -mzscheme -c++ $(SWIGOPT) $(INTERFACE)
  346. $(MZC) ++ccf "$(INCLUDES)" --cc $(ICXXSRCS) $(SRCS) $(CXXSRCS)
  347. $(CXXSHARED) -o $(LIBPREFIX)$(TARGET)$(MZSCHEME_SO) $(OBJS) $(IOBJS) $(MZDYNOBJ) $(CPP_DLLIBS)
  348. # -----------------------------------------------------------------
  349. # Cleaning the mzscheme examples
  350. # -----------------------------------------------------------------
  351. mzscheme_clean:
  352. rm -f *.@OBJEXT@ *@SO@ *_wrap* *~ .~* core @EXTRA_CLEAN@
  353. ##################################################################
  354. ##### Ocaml #####
  355. ##################################################################
  356. OCC=@OCAMLC@
  357. OCAMLDLGEN=@OCAMLDLGEN@
  358. OCAMLFIND=@OCAMLFIND@
  359. OCAMLMKTOP=@OCAMLMKTOP@ $(SWIGWHERE)
  360. NOLINK ?= false
  361. OCAMLPP= -pp "camlp4o ./swigp4.cmo"
  362. OCAMLCORE=\
  363. rm -rf swig.mli swig.ml swigp4.ml && \
  364. $(SWIG) -ocaml -co swig.mli 2>/dev/null && \
  365. $(SWIG) -ocaml -co swig.ml 2>/dev/null && \
  366. $(SWIG) -ocaml -co swigp4.ml 2>/dev/null && \
  367. $(OCC) -c swig.mli && \
  368. $(OCC) -c swig.ml && \
  369. $(OCC) -I `camlp4 -where` -pp "camlp4o pa_extend.cmo q_MLast.cmo" \
  370. -c swigp4.ml
  371. ocaml_static: $(SRCS)
  372. $(OCAMLCORE)
  373. $(SWIG) -ocaml $(SWIGOPT) $(INTERFACE)
  374. $(OCC) -g -c -ccopt -g -ccopt "$(INCLUDES)" $(ISRCS) $(SRCS)
  375. $(OCC) -g -c $(INTERFACE:%.i=%.mli)
  376. $(OCC) -g -c $(INTERFACE:%.i=%.ml)
  377. test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
  378. $(OCC) $(OCAMLPP) -c $(PROGFILE)
  379. $(NOLINK) || $(OCC) -g -ccopt -g -cclib -g -custom -o $(TARGET) \
  380. swig.cmo \
  381. $(INTERFACE:%.i=%.cmo) \
  382. $(PROGFILE:%.ml=%.cmo) \
  383. $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)"
  384. ocaml_dynamic: $(SRCS)
  385. $(OCAMLCORE)
  386. $(SWIG) -ocaml $(SWIGOPT) $(INTERFACE)
  387. $(OCC) -g -c -ccopt -g -ccopt "$(INCLUDES)" $(ISRCS) $(SRCS)
  388. $(CXXSHARED) $(CCSHARED) $(CFLAGS) -o $(INTERFACE:%.i=%@SO@) \
  389. $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) $(LIBS)
  390. $(OCAMLDLGEN) $(INTERFACE:%.i=%.ml) $(INTERFACE:%.i=%@SO@) > \
  391. $(INTERFACE:%.i=%_dynamic.ml)
  392. mv $(INTERFACE:%.i=%_dynamic.ml) $(INTERFACE:%.i=%.ml)
  393. rm $(INTERFACE:%.i=%.mli)
  394. $(OCAMLFIND) $(OCC) -g -c -package dl $(INTERFACE:%.i=%.ml)
  395. test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
  396. $(OCC) $(OCAMLPP) -c $(PROGFILE)
  397. $(NOLINK) || $(OCAMLFIND) \
  398. $(OCC) -g -ccopt -g -cclib -g -custom -o $(TARGET) \
  399. swig.cmo \
  400. -package dl -linkpkg \
  401. $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo)
  402. ocaml_static_toplevel: $(SRCS)
  403. $(OCAMLCORE)
  404. $(SWIG) -ocaml $(SWIGOPT) $(INTERFACE)
  405. $(OCC) -g -c -ccopt -g -ccopt "$(INCLUDES)" $(ISRCS) $(SRCS)
  406. $(OCC) -g -c $(INTERFACE:%.i=%.mli)
  407. $(OCC) -g -c $(INTERFACE:%.i=%.ml)
  408. test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
  409. $(OCC) $(OCAMLPP) -c $(PROGFILE)
  410. $(NOLINK) || $(OCAMLMKTOP) \
  411. swig.cmo \
  412. -I `camlp4 -where` camlp4o.cma swigp4.cmo \
  413. -g -ccopt -g -cclib -g -custom -o $(TARGET)_top \
  414. $(INTERFACE:%.i=%.cmo) \
  415. $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) -cclib "$(LIBS)"
  416. ocaml_static_cpp: $(SRCS)
  417. $(OCAMLCORE)
  418. $(SWIG) -ocaml -c++ $(SWIGOPT) $(INTERFACE)
  419. cp $(ICXXSRCS) $(ICXXSRCS:%.cxx=%.c)
  420. $(OCC) -cc '$(CXX)' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \
  421. $(ICXXSRCS:%.cxx=%.c) $(SRCS) $(CXXSRCS)
  422. $(OCC) -g -c $(INTERFACE:%.i=%.mli)
  423. $(OCC) -g -c $(INTERFACE:%.i=%.ml)
  424. test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
  425. $(OCC) $(OCAMLPP) -c $(PROGFILE)
  426. $(NOLINK) || $(OCC) -g -ccopt -g -cclib -g -custom -o $(TARGET) \
  427. swig.cmo \
  428. $(INTERFACE:%.i=%.cmo) \
  429. $(PROGFILE:%.ml=%.cmo) \
  430. $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) \
  431. -cclib "$(LIBS)" -cc '$(CXX)'
  432. ocaml_static_cpp_toplevel: $(SRCS)
  433. $(OCAMLCORE)
  434. $(SWIG) -ocaml -c++ $(SWIGOPT) $(INTERFACE)
  435. cp $(ICXXSRCS) $(ICXXSRCS:%.cxx=%.c)
  436. $(OCC) -cc '$(CXX)' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \
  437. $(ICXXSRCS:%.cxx=%.c) $(SRCS) $(CXXSRCS)
  438. $(OCC) -g -c $(INTERFACE:%.i=%.mli)
  439. $(OCC) -g -c $(INTERFACE:%.i=%.ml)
  440. test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
  441. $(OCC) $(OCAMLPP) -c $(PROGFILE)
  442. $(NOLINK) || $(OCAMLMKTOP) \
  443. swig.cmo \
  444. -I `camlp4 -where` camlp4o.cma swigp4.cmo \
  445. -g -ccopt -g -cclib -g -custom -o $(TARGET)_top \
  446. $(INTERFACE:%.i=%.cmo) \
  447. $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) \
  448. -cclib "$(LIBS)" -cc '$(CXX)'
  449. ocaml_dynamic_cpp: $(SRCS)
  450. $(OCAMLCORE)
  451. $(SWIG) -ocaml -c++ $(SWIGOPT) $(INTERFACE)
  452. cp $(ICXXSRCS) $(ICXXSRCS:%.cxx=%.c)
  453. $(OCC) -cc '$(CXX)' -g -c -ccopt -g -ccopt "-xc++ $(INCLUDES)" \
  454. $(ICXXSRCS:%.cxx=%.c) $(SRCS) $(CXXSRCS) -ccopt -fPIC
  455. $(CXXSHARED) $(CXXFLAGS) -o $(INTERFACE:%.i=%@SO@) \
  456. $(INTERFACE:%.i=%_wrap.@OBJEXT@) $(OBJS) \
  457. $(CPP_DLLIBS) $(LIBS)
  458. $(OCAMLDLGEN) $(INTERFACE:%.i=%.ml) $(INTERFACE:%.i=%@SO@) > \
  459. $(INTERFACE:%.i=%_dynamic.ml)
  460. mv $(INTERFACE:%.i=%_dynamic.ml) $(INTERFACE:%.i=%.ml)
  461. rm $(INTERFACE:%.i=%.mli)
  462. $(OCAMLFIND) $(OCC) -g -c -package dl $(INTERFACE:%.i=%.ml)
  463. test -z "$(PROGFILE)" || test -f "$(PROGFILE)" && \
  464. $(OCC) $(OCAMLPP) -c $(PROGFILE)
  465. $(NOLINK) || $(OCAMLFIND) \
  466. swig.cmo \
  467. $(OCC) -cclib -export-dynamic -g -ccopt -g -cclib -g -custom \
  468. -o $(TARGET) \
  469. -package dl -linkpkg \
  470. $(INTERFACE:%.i=%.cmo) $(PROGFILE:%.ml=%.cmo) -cc '$(CXX)'
  471. ocaml_clean:
  472. rm -f *.@OBJEXT@ *@SO@ *_wrap* *~ .~* core @EXTRA_CLEAN@ *.cmo *.cmi $(MLFILE) $(MLFILE)i swig.mli swig.cmi swig.ml swig.cmo swigp4.ml swigp4.cmo
  473. ##################################################################
  474. ##### RUBY ######
  475. ##################################################################
  476. # Make sure these locate your Ruby installation
  477. RUBY_CFLAGS= @RUBYCCDLFLAGS@ -DHAVE_CONFIG_H
  478. RUBY_INCLUDE= @RUBYINCLUDE@
  479. RUBY_LIB = @RUBYLIB@
  480. RUBY_DLNK = @RUBYDYNAMICLINKING@
  481. # ----------------------------------------------------------------
  482. # Build a C dynamically loadable module
  483. # ----------------------------------------------------------------
  484. ruby: $(SRCS)
  485. $(SWIG) -ruby $(SWIGOPT) $(INTERFACE)
  486. $(CC) -c $(CCSHARED) $(CFLAGS) $(RUBY_CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) $(RUBY_INCLUDE)
  487. $(LDSHARED) $(OBJS) $(IOBJS) $(RUBY_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
  488. # -----------------------------------------------------------------
  489. # Build a C++ dynamically loadable module
  490. # -----------------------------------------------------------------
  491. ruby_cpp: $(SRCS)
  492. $(SWIG) -c++ -ruby $(SWIGOPT) $(INTERFACE)
  493. $(CXX) -c $(CCSHARED) $(CFLAGS) $(RUBY_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) $(RUBY_INCLUDE)
  494. $(CXXSHARED) $(OBJS) $(IOBJS) $(RUBY_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
  495. # -----------------------------------------------------------------
  496. # Build statically linked Ruby interpreter
  497. #
  498. # These should only be used in conjunction with the %include embed.i
  499. # library file
  500. # -----------------------------------------------------------------
  501. RUBY_LIBOPTS = @RUBYLINK@ @LIBS@ $(SYSLIBS)
  502. ruby_static: $(SRCS)
  503. $(SWIG) -ruby -lembed.i $(SWIGOPT) $(INTERFACE)
  504. $(CC) $(CFLAGS) $(RUBY_CFLAGS) @LINKFORSHARED@ $(ISRCS) $(SRCS) $(INCLUDES) \
  505. $(RUBY_INCLUDE) $(LIBS) -L$(RUBY_LIB) $(RUBY_LIBOPTS) -o $(TARGET)
  506. ruby_cpp_static: $(SRCS)
  507. $(SWIG) -c++ -ruby -lembed.i $(SWIGOPT) $(INTERFACE)
  508. $(CXX) $(CFLAGS) $(RUBY_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
  509. $(RUBY_INCLUDE) $(LIBS) -L$(RUBY_LIB) $(RUBY_LIBOPTS) -o $(TARGET)
  510. # -----------------------------------------------------------------
  511. # Cleaning the Ruby examples
  512. # -----------------------------------------------------------------
  513. ruby_clean:
  514. rm -f *.@OBJEXT@ *@SO@ *_wrap* *~ .~* core @EXTRA_CLEAN@ myruby@EXEEXT@ *.pm
  515. ##################################################################
  516. ##### PHP ######
  517. ##################################################################
  518. # -------------------------------------------------------------------
  519. # Build a PHP4 dynamically loadable module (C)
  520. # -------------------------------------------------------------------
  521. PHP4_INCLUDE = @PHP4INC@
  522. PHP4_SO = @PHP4_SO@
  523. php4: $(SRCS)
  524. $(SWIG) -php4 -cppext cxx $(SWIGOPT) $(INTERFACE)
  525. $(CC) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(ISRCS) $(INCLUDES) $(PHP4_INCLUDE)
  526. $(LDSHARED) $(OBJS) $(IOBJS) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(PHP4_SO)
  527. # --------------------------------------------------------------------
  528. # Build a PHP4 dynamically loadable module (C++)
  529. # --------------------------------------------------------------------
  530. php4_cpp: $(SRCS)
  531. $(SWIG) -php4 -cppext cxx -c++ $(SWIGOPT) $(INTERFACE)
  532. $(CXX) -c $(CCSHARED) $(CFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES) $(PHP4_INCLUDE)
  533. $(CXXSHARED) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(PHP4_SO)
  534. # -----------------------------------------------------------------
  535. # Running a PHP4 example
  536. # -----------------------------------------------------------------
  537. PHP4=@PHP4@
  538. php4_run:
  539. env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH $(PHP4) -q -d extension_dir=. $(SCRIPT)
  540. # -----------------------------------------------------------------
  541. # Cleaning the PHP4 examples
  542. # -----------------------------------------------------------------
  543. php4_clean:
  544. rm -f *.@OBJEXT@ *$(SO) *_wrap* *~ .~* core @EXTRA_CLEAN@ *.php
  545. ##################################################################
  546. ##### Pike ######
  547. ##################################################################
  548. # Make sure these locate your Pike installation
  549. PIKE_CFLAGS = @PIKECCDLFLAGS@ -DHAVE_CONFIG_H
  550. PIKE_INCLUDE = @PIKEINCLUDE@
  551. PIKE_LIB = @PIKELIB@
  552. PIKE_DLNK = @PIKEDYNAMICLINKING@
  553. # ----------------------------------------------------------------
  554. # Build a C dynamically loadable module
  555. # ----------------------------------------------------------------
  556. pike: $(SRCS)
  557. $(SWIG) -pike $(SWIGOPT) $(INTERFACE)
  558. $(CC) -c $(CCSHARED) $(CFLAGS) $(PIKE_CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) $(PIKE_INCLUDE)
  559. $(LDSHARED) $(OBJS) $(IOBJS) $(PIKE_DLNK) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
  560. # -----------------------------------------------------------------
  561. # Build a C++ dynamically loadable module
  562. # -----------------------------------------------------------------
  563. pike_cpp: $(SRCS)
  564. $(SWIG) -c++ -pike $(SWIGOPT) $(INTERFACE)
  565. $(CXX) -c $(CCSHARED) $(CFLAGS) $(PIKE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) $(PIKE_INCLUDE)
  566. $(CXXSHARED) $(OBJS) $(IOBJS) $(PIKE_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO)
  567. # -----------------------------------------------------------------
  568. # Build statically linked Pike interpreter
  569. #
  570. # These should only be used in conjunction with the %include embed.i
  571. # library file
  572. # -----------------------------------------------------------------
  573. PIKE_LIBOPTS = @PIKELINK@ @LIBS@ $(SYSLIBS)
  574. pike_static: $(SRCS)
  575. $(SWIG) -pike -lembed.i $(SWIGOPT) $(INTERFACE)
  576. $(CC) $(CFLAGS) $(PIKE_CFLAGS) @LINKFORSHARED@ $(ISRCS) $(SRCS) $(INCLUDES) \
  577. $(PIKE_INCLUDE) $(LIBS) -L$(PIKE_LIB) $(PIKE_LIBOPTS) -o $(TARGET)
  578. pike_cpp_static: $(SRCS)
  579. $(SWIG) -c++ -pike -lembed.i $(SWIGOPT) $(INTERFACE)
  580. $(CXX) $(CFLAGS) $(PIKE_CFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) \
  581. $(PIKE_INCLUDE) $(LIBS) -L$(PIKE_LIB) $(PIKE_LIBOPTS) -o $(TARGET)
  582. # -----------------------------------------------------------------
  583. # Cleaning the Pike examples
  584. # -----------------------------------------------------------------
  585. pike_clean:
  586. rm -f *.@OBJEXT@ *$(SO) *_wrap* *~ .~* core @EXTRA_CLEAN@ mypike@EXEEXT@
  587. ##################################################################
  588. ##### Chicken ######
  589. ##################################################################
  590. CHICKEN = @CHICKEN@
  591. CHICKEN_CSC = @CHICKEN_CSC@
  592. CHICKEN_LIBOPTS = @CHICKENLIB@ $(SYSLIBS)
  593. CHICKEN_SHAREDLIBOPTS = @CHICKENSHAREDLIB@ $(SYSLIBS)
  594. CHICKEN_CFLAGS = @CHICKENOPTS@
  595. CHICKENOPTS = -quiet
  596. CHICKEN_MAIN =
  597. # SWIG produces $(ISRCS) (the C wrapper file)
  598. # and $(CHICKEN_GENERATED_SCHEME) (the Scheme wrapper file):
  599. CHICKEN_GENERATED_SCHEME = $(INTERFACE:.i=.scm)
  600. CHICKEN_COMPILED_SCHEME = $(INTERFACE:.i=_chicken.c)
  601. CHICKEN_COMPILED_OBJECT = $(CHICKEN_COMPILED_SCHEME:.c=.@OBJEXT@)
  602. # flags for the main chicken sources (only used when compiling staticly)
  603. CHICKEN_COMPILED_MAIN = $(CHICKEN_MAIN:.scm=_chicken.c)
  604. CHICKEN_COMPILED_MAIN_OBJECT = $(CHICKEN_COMPILED_MAIN:.c=.@OBJEXT@)
  605. # -----------------------------------------------------------------
  606. # Build a CHICKEN dynamically loadable module
  607. # -----------------------------------------------------------------
  608. chicken: $(SRCS)
  609. $(SWIG) -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACE)
  610. $(CHICKEN) $(CHICKEN_GENERATED_SCHEME) $(CHICKENOPTS) \
  611. -dynamic -feature chicken-compile-shared \
  612. -output-file $(CHICKEN_COMPILED_SCHEME)
  613. $(CC) -c $(CCSHARED) $(CFLAGS) $(CHICKEN_CFLAGS) \
  614. $(INCLUDES) $(CHICKEN_INCLUDE) $(ISRCS) $(SRCS) $(CHICKEN_COMPILED_SCHEME)
  615. $(LDSHARED) $(CHICKEN_COMPILED_OBJECT) $(OBJS) $(IOBJS) \
  616. $(LIBS) $(CHICKEN_SHAREDLIBOPTS) -o $(LIBPREFIX)$(TARGET)$(SO)
  617. chicken_cpp: $(CXXSRCS) $(CHICKSRCS)
  618. $(SWIG) -c++ -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACE)
  619. $(CHICKEN) $(CHICKEN_GENERATED_SCHEME) $(CHICKENOPTS) \
  620. -dynamic -feature chicken-compile-shared \
  621. -output-file $(CHICKEN_COMPILED_SCHEME)
  622. $(CXX) -c $(CCSHARED) $(CFLAGS) $(CHICKEN_CFLAGS) \
  623. $(INCLUDES) $(CHICKEN_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(CHICKEN_COMPILED_SCHEME)
  624. $(CXXSHARED) $(CHICKEN_COMPILED_OBJECT) $(OBJS) $(IOBJS) \
  625. $(LIBS) $(CPP_DLLIBS) $(CHICKEN_SHAREDLIBOPTS) -o $(LIBPREFIX)$(TARGET)$(SO)
  626. # -----------------------------------------------------------------
  627. # Build statically linked CHICKEN interpreter
  628. # -----------------------------------------------------------------
  629. # The following two targets are also used by the test suite
  630. chicken_static: $(SRCS) $(CHICKSRCS)
  631. $(SWIG) -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACE)
  632. $(CHICKEN) $(CHICKEN_GENERATED_SCHEME) $(CHICKENOPTS) \
  633. -output-file $(CHICKEN_COMPILED_SCHEME)
  634. $(CHICKEN) $(CHICKEN_MAIN) $(CHICKENOPTS) \
  635. -output-file $(CHICKEN_MAIN:.scm=_chicken.c)
  636. $(CC) -c $(CCSHARED) $(CFLAGS) $(CHICKEN_CFLAGS) \
  637. $(INCLUDES) $(CHICKEN_INCLUDE) $(ISRCS) $(SRCS) \
  638. $(CHICKEN_COMPILED_SCHEME) $(CHICKEN_COMPILED_MAIN)
  639. $(CC) $(CHICKEN_COMPILED_OBJECT) $(CHICKEN_COMPILED_MAIN_OBJECT) \
  640. $(OBJS) $(IOBJS) $(LIBS) $(CHICKEN_SHAREDLIBOPTS) -o $(TARGET)
  641. chicken_static_cpp: $(CXXSRCS) $(CHICKSRCS)
  642. $(SWIG) -c++ -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACE)
  643. $(CHICKEN) $(CHICKEN_GENERATED_SCHEME) $(CHICKENOPTS) \
  644. -output-file $(CHICKEN_COMPILED_SCHEME)
  645. $(CHICKEN) $(CHICKEN_MAIN) $(CHICKENOPTS) \
  646. -output-file $(CHICKEN_MAIN:.scm=_chicken.c)
  647. $(CXX) -c $(CCSHARED) $(CFLAGS) $(CHICKEN_CFLAGS) \
  648. $(INCLUDES) $(CHICKEN_INCLUDE) $(ICXXSRCS) $(SRCS) $(CXXSRCS) \
  649. $(CHICKEN_COMPILED_SCHEME) $(CHICKEN_COMPILED_MAIN)
  650. $(CXX) $(CHICKEN_COMPILED_OBJECT) $(CHICKEN_COMPILED_MAIN_OBJECT) \
  651. $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) $(CHICKEN_SHAREDLIBOPTS) -o $(TARGET)
  652. # ----------------------------------------------------------------
  653. # Build a shared library using csc
  654. # ----------------------------------------------------------------
  655. chicken_csc:
  656. $(SWIG) -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACE)
  657. $(CHICKEN_CSC) -sv $(CHICKEN_GENERATED_SCHEME) $(SRCS) $(ISRCS) -o $(TARGET)$(SO)
  658. chicken_csc_cpp:
  659. $(SWIG) -c++ -chicken $(SWIGOPT) $(INCLUDE) $(INTERFACE)
  660. $(CHICKEN_CSC) -sv $(CHICKEN_GENERATED_SCHEME) $(SRCS) $(ICXXSRCS) $(CXXSRCS) -o $(TARGET)$(SO)
  661. chicken_clean:
  662. rm -f *.@OBJEXT@ *$(SO) *_wrap* *~ .~* core @EXTRA_CLEAN@ *_chicken*
  663. ##################################################################
  664. ##### CSHARP ######
  665. ##################################################################
  666. # Extra CSharp specific dynamic linking options
  667. CSHARP_DLNK = @CSHARPDYNAMICLINKING@
  668. CSHARP_LIBPREFIX = @CSHARPLIBRARYPREFIX@
  669. CSHARPCOMPILER = @CSHARPCOMPILER@
  670. CSHARPCILINTERPRETER = @CSHARPCILINTERPRETER@
  671. CSHARPCFLAGS = @CSHARPCFLAGS@
  672. CSHARPSO = @CSHARPSO@
  673. # ----------------------------------------------------------------
  674. # Build a CSharp dynamically loadable module (C)
  675. # ----------------------------------------------------------------
  676. csharp: $(SRCS)
  677. $(SWIG) -csharp $(SWIGOPT) $(INTERFACE)
  678. $(CC) -c $(CCSHARED) $(CFLAGS) $(CSHARPCFLAGS) $(SRCS) $(ISRCS) $(INCLUDES)
  679. $(LDSHARED) $(OBJS) $(IOBJS) $(CSHARP_DLNK) $(LIBS) -o $(CSHARP_LIBPREFIX)$(TARGET)$(CSHARPSO)
  680. # ----------------------------------------------------------------
  681. # Build a CSharp dynamically loadable module (C++)
  682. # ----------------------------------------------------------------
  683. csharp_cpp: $(SRCS)
  684. $(SWIG) -csharp -c++ $(SWIGOPT) $(INTERFACE)
  685. $(CXX) -c $(CCSHARED) $(CFLAGS) $(CSHARPCFLAGS) $(SRCS) $(CXXSRCS) $(ICXXSRCS) $(INCLUDES)
  686. $(CXXSHARED) $(OBJS) $(IOBJS) $(CSHARP_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(CSHARP_LIBPREFIX)$(TARGET)$(CSHARPSO)
  687. # ----------------------------------------------------------------
  688. # Compile CSharp files
  689. # ----------------------------------------------------------------
  690. csharp_compile: $(SRCS)
  691. $(CSHARPCOMPILER) $(CSHARPFLAGS) $(CSHARPSRCS)
  692. # -----------------------------------------------------------------
  693. # Cleaning the CSharp examples
  694. # -----------------------------------------------------------------
  695. csharp_clean:
  696. rm -f *.@OBJEXT@ *@CSHARPSO@ *_wrap* *~ .~* core @EXTRA_CLEAN@ runme runme.exe gc.log `find . -name \*.cs | grep -v runme.cs`