Fix and simplify C examples makefiles
Make "make check-c-examples" perform the correct build commands, e.g. not link the proxy code into the shared library as this can't work because it defines the same functions that are already present in it. Also fix the c_xxx targets to work when SWIG is built in a separate build directory. Finally, simplify them by removing the unnecessary variables. Notice that std_vector example still doesn't build, but at least now it is due to a real problem in the C module and not makefile bugs.
This commit is contained in:
parent
7c402ad148
commit
19ed0b531d
5 changed files with 71 additions and 65 deletions
|
|
@ -82,10 +82,9 @@ RUNPIPE=
|
|||
RUNME = runme
|
||||
|
||||
IWRAP = $(INTERFACE:.i=_wrap.i)
|
||||
IPROXYSRCS = $(INTERFACE:.i=_proxy.c)
|
||||
ISRCS = $(IWRAP:.i=.c)
|
||||
ICXXSRCS = $(IWRAP:.i=.cxx)
|
||||
IOBJS = $(IWRAP:.i=.o) $(IPROXYSRCS:.c=.o)
|
||||
IOBJS = $(IWRAP:.i=.@OBJEXT@)
|
||||
|
||||
##################################################################
|
||||
# Some options for silent output
|
||||
|
|
@ -1735,20 +1734,40 @@ C_LDSHARED = @C_LDSHARED@
|
|||
CXX_LDSHARED = @CXX_LDSHARED@
|
||||
C_SO = @C_SO@
|
||||
|
||||
c: $(SRCS)
|
||||
$(SWIG) -c $(SWIGOPT) $(INTERFACEPATH)
|
||||
$(CC) -c $(CCSHARED) $(CFLAGS) $(ISRCS) $(SRCS) $(INCLUDES)
|
||||
$(CC) -c $(CCSHARED) $(CFLAGS) $(IPROXYSRCS) $(INCLUDES)
|
||||
PROXYSRC := $(INTERFACE:.i=_proxy.c)
|
||||
PROXYOBJ := $(PROXYSRC:.c=.@OBJEXT@)
|
||||
|
||||
c: $(SRCDIR_SRCS)
|
||||
$(SWIG) -c $(SWIGOPT) -o $(ISRCS) $(INTERFACEPATH)
|
||||
$(CC) -c $(CCSHARED) -I$(SRCDIR) $(CFLAGS) $(ISRCS) $(SRCDIR_SRCS) $(INCLUDES)
|
||||
$(CC) -c $(CCSHARED) $(CFLAGS) $(PROXYSRC) $(INCLUDES)
|
||||
$(C_LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) -o $(CLIBPREFIX)$(TARGET)$(C_SO)
|
||||
|
||||
c_cpp: $(SRCS)
|
||||
$(SWIG) -c++ -c $(SWIGOPT) $(INTERFACEPATH)
|
||||
$(CXX) -c $(CCSHARED) $(CXXFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES)
|
||||
$(CC) -c $(CCSHARED) $(CFLAGS) $(IPROXYSRCS) $(INCLUDES)
|
||||
c_cpp: $(SRCDIR_SRCS)
|
||||
$(SWIG) -c++ -c $(SWIGOPT) -o $(ISRCS) $(INTERFACEPATH)
|
||||
$(CXX) -c $(CCSHARED) -I$(SRCDIR) $(CXXFLAGS) $(ISRCS) $(SRCDIR_CXXSRCS) $(INCLUDES)
|
||||
$(CC) -c $(CCSHARED) $(CFLAGS) $(PROXYSRC) $(INCLUDES)
|
||||
$(CXX_LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(LIBS) $(CPP_DLLIBS) -o $(CLIBPREFIX)$(TARGET)$(C_SO)
|
||||
|
||||
c_compile: $(RUNME) $(PROXY)
|
||||
$(CC) $(RUNME) $(PROXY) -L. -l$(TARGET) -o $(RUNME:.c=)
|
||||
c_compile: $(SRCDIR)$(RUNME).c $(PROXYOBJ)
|
||||
$(COMPILETOOL) $(CC) -o $(RUNME) -I. $^ -L. -l$(TARGET)
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Run C example
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
c_run: c_compile
|
||||
$(RUNTOOL) ./$(RUNME) $(RUNPIPE)
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Cleaning the C examples
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
c_clean:
|
||||
rm -f *_wrap.c *_proxy.[ch]
|
||||
rm -f core @EXTRA_CLEAN@
|
||||
rm -f *.@OBJEXT@ *@SO@
|
||||
rm -f $(RUNME)
|
||||
|
||||
##################################################################
|
||||
##### SCILAB ######
|
||||
|
|
|
|||
|
|
@ -1,21 +1,18 @@
|
|||
TOP = ../..
|
||||
SWIG = $(TOP)/../preinst-swig
|
||||
SWIGEXE = $(TOP)/../swig
|
||||
SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
|
||||
CXXSRCS = example.cxx
|
||||
TARGET = example
|
||||
INTERFACE = example.i
|
||||
RUNME = runme.c
|
||||
PROXY = example_proxy.c
|
||||
|
||||
all::
|
||||
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c_cpp
|
||||
$(MAKE) -f $(TOP)/Makefile RUNME='$(RUNME)' PROXY='$(PROXY)' \
|
||||
TARGET='$(TARGET)' c_compile
|
||||
check: build
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c_run
|
||||
|
||||
run:
|
||||
env LD_LIBRARY_PATH=. ./runme
|
||||
build:
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
|
||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c_cpp
|
||||
|
||||
clean:
|
||||
rm -f *.o *.out *.so *.a *.dll *.dylib *.exe *_wrap* *_proxy* *~ runme
|
||||
|
||||
check: all
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' c_clean
|
||||
|
|
|
|||
|
|
@ -1,21 +1,18 @@
|
|||
TOP = ../..
|
||||
SWIG = $(TOP)/../preinst-swig
|
||||
SWIGEXE = $(TOP)/../swig
|
||||
SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
|
||||
CXXSRCS = example.cxx
|
||||
TARGET = example
|
||||
INTERFACE = example.i
|
||||
RUNME = runme.c
|
||||
PROXY = example_proxy.c
|
||||
|
||||
all::
|
||||
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c_cpp
|
||||
$(MAKE) -f $(TOP)/Makefile RUNME='$(RUNME)' PROXY='$(PROXY)' \
|
||||
TARGET='$(TARGET)' c_compile
|
||||
check: build
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c_run
|
||||
|
||||
run:
|
||||
env LD_LIBRARY_PATH=. ./runme
|
||||
build:
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
|
||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c_cpp
|
||||
|
||||
clean:
|
||||
rm -f *.o *.out *.so *.a *.dll *.dylib *.exe *_wrap* *_proxy* *~ runme
|
||||
|
||||
check: all
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' c_clean
|
||||
|
|
|
|||
|
|
@ -1,21 +1,18 @@
|
|||
TOP = ../..
|
||||
SWIG = $(TOP)/../preinst-swig
|
||||
SWIGEXE = $(TOP)/../swig
|
||||
SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
|
||||
SRCS = example.c
|
||||
TARGET = example
|
||||
INTERFACE = example.i
|
||||
RUNME = runme.c
|
||||
PROXY = example_proxy.c
|
||||
|
||||
all::
|
||||
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c
|
||||
$(MAKE) -f $(TOP)/Makefile RUNME='$(RUNME)' PROXY='$(PROXY)' \
|
||||
TARGET='$(TARGET)' c_compile
|
||||
check: build
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c_run
|
||||
|
||||
run:
|
||||
env LD_LIBRARY_PATH=. ./runme
|
||||
build:
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c
|
||||
|
||||
clean:
|
||||
rm -f *.o *.so *.out *.a *.exe *.dll *.dylib *_wrap* *_proxy* *~ runme
|
||||
|
||||
check: all
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' c_clean
|
||||
|
|
|
|||
|
|
@ -1,22 +1,18 @@
|
|||
TOP = ../..
|
||||
SWIG = $(TOP)/../preinst-swig
|
||||
SWIGEXE = $(TOP)/../swig
|
||||
SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
|
||||
CXXSRCS = example.cxx
|
||||
TARGET = example
|
||||
INTERFACE = example.i
|
||||
RUNME = runme.c
|
||||
PROXY = example_proxy.c
|
||||
INCLUDES =
|
||||
|
||||
all::
|
||||
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' INCLUDES='$(INCLUDES)' c_cpp
|
||||
$(MAKE) -f $(TOP)/Makefile RUNME='$(RUNME)' PROXY='$(PROXY)' \
|
||||
TARGET='$(TARGET)' c_compile
|
||||
check: build
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \
|
||||
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c_run
|
||||
|
||||
run:
|
||||
env LD_LIBRARY_PATH=. ./runme
|
||||
build:
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
|
||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' c_cpp
|
||||
|
||||
clean:
|
||||
rm -f *.o *.out *.so *.a *.dll *.dylib *.exe *_wrap* *_proxy* *~ runme
|
||||
|
||||
check: all
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' c_clean
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue