| # --------------------------------------------------------------- |
| # SWIG Perl5 Makefile |
| # |
| # This file can be used to build various Perl5 extensions with SWIG. |
| # By default this file is set up for dynamic loading, but it can |
| # be easily customized for static extensions by modifying various |
| # portions of the file. |
| # |
| # SRCS = C source files |
| # CXXSRCS = C++ source files |
| # OBJCSRCS = Objective-C source files |
| # OBJS = Additional .o files (compiled previously) |
| # INTERFACE = SWIG interface file |
| # TARGET = Name of target module or executable |
| # |
| # Many portions of this file were created by the SWIG configure |
| # script and should already reflect your machine. |
| #---------------------------------------------------------------- |
| |
| SRCS = |
| CXXSRCS = |
| OBJCSRCS = |
| OBJS = |
| INTERFACE = |
| WRAPFILE = $(INTERFACE:.i=_wrap.c) |
| WRAPOBJ = $(INTERFACE:.i=_wrap.o) |
| TARGET = module@SO@ # Use this kind of target for dynamic loading |
| #TARGET = myperl # Use this target for static linking |
| |
| prefix = @prefix@ |
| exec_prefix = @exec_prefix@ |
| |
| CC = @CC@ |
| CXX = @CXX@ |
| OBJC = @CC@ -Wno-import # -Wno-import needed for gcc |
| CFLAGS = |
| INCLUDES = |
| LIBS = |
| |
| # SWIG Options |
| # SWIG = location of the SWIG executable |
| # SWIGOPT = SWIG compiler options |
| # SWIGCC = Compiler used to compile the wrapper file |
| |
| SWIG = $(exec_prefix)/bin/swig |
| SWIGOPT = -perl5 |
| SWIGCC = $(CC) |
| |
| # SWIG Library files. Uncomment this to statically rebuild Perl |
| #SWIGLIBS = -static -lperlmain.i |
| |
| # Rules for creating .o files from source. |
| |
| COBJS = $(SRCS:.c=.o) |
| CXXOBJS = $(CXXSRCS:.cxx=.o) |
| OBJCOBJS = $(OBJCSRCS:.m=.o) |
| ALLOBJS = $(COBJS) $(CXXOBJS) $(OBJCOBJS) $(OBJS) |
| |
| # Command that will be used to build the final extension. |
| BUILD = $(SWIGCC) |
| |
| # Uncomment the following if you are using dynamic loading |
| CCSHARED = @CCSHARED@ |
| BUILD = @LDSHARED@ |
| |
| # Uncomment the following if you are using dynamic loading with C++ and |
| # need to provide additional link libraries (this is not always required). |
| |
| #DLL_LIBS = -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.5.1/2.7.2 \ |
| -L/usr/local/lib -lg++ -lstdc++ -lgcc |
| |
| # Perl installation |
| |
| PERL_INCLUDE = -I@PERL5EXT@ |
| PERL_LIB = -L@PERL5EXT@ -lperl |
| PERL_FLAGS = -Dbool=char -Dexplicit= |
| |
| # Build libraries (needed for static builds) |
| |
| LIBM = @LIBM@ |
| LIBC = @LIBC@ |
| SYSLIBS = $(LIBM) $(LIBC) @LIBS@ |
| |
| # Build options |
| |
| BUILD_LIBS = $(LIBS) # Dynamic loading |
| |
| # Compilation rules for non-SWIG components |
| |
| .SUFFIXES: .c .cxx .m |
| |
| .c.o: |
| $(CC) $(CCSHARED) $(CFLAGS) $(INCLUDES) -c $< |
| |
| .cxx.o: |
| $(CXX) $(CCSHARED) $(CXXFLAGS) $(INCLUDES) -c $< |
| |
| .m.o: |
| $(OBJC) $(CCSHARED) $(CFLAGS) $(INCLUDES) -c $< |
| |
| |
| # ---------------------------------------------------------------------- |
| # Rules for building the extension |
| # ---------------------------------------------------------------------- |
| |
| all: $(TARGET) |
| |
| # Convert the wrapper file into an object file |
| |
| $(WRAPOBJ) : $(WRAPFILE) |
| $(SWIGCC) -c $(CCSHARED) $(CFLAGS) $(INCLUDES) $(PERL_INCLUDE) $(PERL_FLAGS) $(WRAPFILE) |
| |
| $(WRAPFILE) : $(INTERFACE) |
| $(SWIG) $(SWIGOPT) -o $(WRAPFILE) $(SWIGLIBS) $(INTERFACE) |
| |
| $(TARGET): $(WRAPOBJ) $(ALLOBJS) |
| $(BUILD) $(WRAPOBJ) $(ALLOBJS) $(BUILD_LIBS) -o $(TARGET) |
| |
| clean: |
| rm -f $(COBJS) $(CXXOBJS) $(OBJCOBJS) $(WRAPOBJ) $(WRAPFILE) $(TARGET) |