You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
3.8 KiB
138 lines
3.8 KiB
# --------------------------------------------------------------- |
|
# 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 staticly rebuild Perl |
|
#SWIGLIB = -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 |
|
|
|
# X11 installation (possibly needed if using Perl-Tk) |
|
|
|
XLIB = @XLIBSW@ |
|
XINCLUDE = @XINCLUDES@ |
|
|
|
# Perl installation |
|
|
|
PERL_INCLUDE = -I@PERL5EXT@ |
|
PERL_LIB = -L@PERL5EXT@ -lperl |
|
PERL_FLAGS = -Dbool=char -Dexplicit= |
|
|
|
# Tcl installation. If using Tk you might need this |
|
|
|
TCL_INCLUDE = @TCLINCLUDE@ |
|
TCL_LIB = @TCLLIB@ |
|
|
|
# Build libraries (needed for static builds) |
|
|
|
LIBM = @LIBM@ |
|
LIBC = @LIBC@ |
|
SYSLIBS = $(LIBM) $(LIBC) @LIBS@ |
|
|
|
# Build options (uncomment only one these) |
|
|
|
#TK_LIB = $(TCL_LIB) -ltcl -ltk $(XLIB) |
|
BUILD_LIBS = $(LIBS) # Dynamic loading |
|
#BUILD_LIBS = $(PERL_LIB) $(TK_LIB) $(LIBS) $(SYSLIBS) # Static linking |
|
|
|
# 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) $(SWIGLIB) $(INTERFACE) |
|
|
|
$(TARGET): $(WRAPOBJ) $(ALLOBJS) |
|
$(BUILD) $(WRAPOBJ) $(ALLOBJS) $(BUILD_LIBS) -o $(TARGET) |
|
|
|
clean: |
|
rm -f $(COBJS) $(CXXOBJS) $(OBJCOBJS) $(WRAPOBJ) $(WRAPFILE) $(TARGET) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|