view src/Makefile @ 906:475a5a2a08cb

Fix make rules and handling of "shared" libraries. * Makefile: we wanted to have shared libraries for strel.so and connectivity.so but that's not really possible (Octave's pkg does not have a system to handle this). So we create object files and statically link them. This the closest we can do at the moment. Also change setting CXXFLAGS to only add '-std=c++0x' rather than defining all the other options again. * conndef.h, connectivity.h: renamed the first as the later. * conndef.cc: moved the definition of the connectivity class into its own connectivity.cc file and include that. The idea is to then create a shared library without Fconndef and Fiptcheckconn but that did not reallt happen yet. * connectivity.cc: definition of the connectivity class, from conndef.cc. * bwlabeln.cc: change the include for the name connectivity header file. * COPYING: update license for the new files.
author Carnë Draug <carandraug@octave.org>
date Thu, 30 Oct 2014 21:34:55 +0000
parents 3d1d76c830c6
children
line wrap: on
line source

MKOCTFILE ?= mkoctfile -Wall

## We can't link oct files, and Octave's package system does not handle
## shared libraries. Because of this, we need to create object files for
## our "shared" libraries and statically link to selected oct files.

conn_dependent = conndef.oct bwlabeln.oct
strel_dependent = imerode.oct
libs = connectivity.o strel.o

all: __spatial_filtering__.oct __bilateral__.oct __custom_gaussian_smoothing__.oct \
	__boundary__.oct bwfill.oct rotate_scale.oct hough_line.oct \
	graycomatrix.oct bwdist.oct nonmax_supress.oct \
	$(strel_dependent) $(conn_dependent)

%.o: %.cc
	$(MKOCTFILE) -c $<

## Actually, only bwlabeln needs c++0x
$(conn_dependent): %.oct: %.cc connectivity.o
	CXXFLAGS=$$($(MKOCTFILE) -p CXXFLAGS)' -std=c++0x' $(MKOCTFILE) $^

$(strel_dependent): %.oct: %.cc strel.o
	$(MKOCTFILE) $^

%.oct: %.cc
	$(MKOCTFILE) $<

clean:
	rm -f *.o octave-core core *.oct *~