Sven Sickert 6 лет назад
Родитель
Сommit
9730a15fa9
8 измененных файлов с 0 добавлено и 788 удалено
  1. 0 32
      INSTALL.txt
  2. 0 309
      Makefile
  3. 0 97
      Makefile.inc
  4. 0 38
      NOTES
  5. 0 8
      PACKAGES
  6. 0 58
      README
  7. 0 147
      readme.txt
  8. 0 99
      setenv.sh

+ 0 - 32
INSTALL.txt

@@ -1,32 +0,0 @@
-Normal procedure:
-
-source setenv.sh
-make
-
-After that executables and libraries should be available in BUILD_*. Settings for libraries can be changed in Makefile.config. Please note that this file will be created after running make for the first time.
-
-The following is just a list of typical pitfalls:
-
-(1) On some systems (openSuSE) some library links are not set appropiately
-
-ln -s /lib/libbz2.so.1 /lib/libbz2.so
-ln -s /usr/lib/libg2c.so.0 /usr/lib/libg2c.so
-
-(2) For running unit tests with "make check" you need
-zypper install cppunit-devel
-
-(3)
-
-BZLIB not found (see Makefile.config) ...
-/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: cannot find -lbz2
-
-This error occurs when the link to libbz2 is not set properly 
-32bit: ln -s /lib/libbz2.so.1 /lib/libbz2.so
-64bit: ln -s /lib64/libbz2.so.1 /lib64/libbz2.so
-
-The bz2 lib check successfully detects this mistake, however, Magick++-config uses -lbz2 anyway.
-
-(4)  compilation problems when ICE library is available somewhere in your system
-=> in older version, subroutines of ICE where used. Currently, the system is working independent from ICE. However, if ICEDIR is set on your machine, it will try to link against some methods and classes.
-=> unset ICEDIR (perhaps also in your bashrc)
-

+ 0 - 309
Makefile

@@ -1,309 +0,0 @@
-## --------------------------------
-# - initialization in top makefile
-#
-# here all variables used later on will be defined and initialized. also the
-# default target (i.e. the one made with a simple `make`) is redirected to do
-# something useful.
-
-#incomplete collection of warnings...
-CFLAGS_WARN=-Wall -Wextra -Wno-unused-parameter -Wno-strict-aliasing # -Wchar-subscripts -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wsign-compare -Wunused -Wuninitialized -Wpointer-arith -Wredundant-decls -Wmissing-declarations -Wlong-long -Wfloat-equal
-
-#some that are not really helpful
-# -Wpadded -Wunreachable-code
-#some more, only valid for C
-# -Wbad-function-cast -Wnested-externs -Wmissing-prototypes -Wstrict-prototypes
-
-ifdef OPTIMIZE
-CFLAGS=-fPIC -O3
-else
-CFLAGS=-fPIC -O0
-endif
-
-ifdef DEBUG
-CFLAGS+= -g $(CFLAGS_WARN) -DDEBUG
-else
-CFLAGS+= -g $(CFLAGS_WARN)
-endif
-
-CFLAGS+=-DUSE_64_BIT_PTR_CAST -DDISABLE_IPP_MAXMIN
-
-ifdef NOVISUAL
-CFLAGS+=-DNOVISUAL
-endif
-
-CFLAGS_CUDA=-Xcompiler "-fpic -O3 -pthread" 
-
-PLATFORM:=$(shell uname -m)
-
-AR=ar
-CC=gcc
-CXX=g++
-CXXCUDA=nvcc
-SYMLINK=ln -sf
-DOXYGEN=doxygen
-PKGCONFIG=pkg-config
-SED=sed
-MOC=echo "QT MOC is required. Please define the variable MOC in Makefile.config. "
-CPPUNIT_MAIN=templates/cppUnitTestRunner.cpp
-
-#normal mode
-VERBOSE := @\#
-VERBOSE2 :=
-#abstract mode
-#VERBOSE := @
-#VERBOSE2 := @
-
-USE_STATIC_LIBRARIES=1
-
-ifdef USE_STATIC_LIBRARIES
-    LINK_FILE_EXTENSION=a
-else
-    LINK_FILE_EXTENSION=so
-endif
-
-
-# various rules to create directory names
-PROJECTDIR:=$(shell pwd)/
-BUILDDIR:=BUILD_$(PLATFORM)$(NICE_BUILD)/
-OBJDIR=$(BUILDDIR)$(SUBDIR)
-LIBDIR=$(BUILDDIR)$(SUBDIR)
-BINDIR=$(BUILDDIR)$(SUBDIR)
-PKGDIR=$(BUILDDIR)$(SUBDIR)
-LIBSYMLINKDIR=$(BUILDDIR)lib/
-BINSYMLINKDIR=$(BUILDDIR)bin/
-PKGSYMLINKDIR=$(BUILDDIR)pkgconfig/
-ifeq "$(PKG_CONFIG_PATH)" ""
-export PKG_CONFIG_PATH:=$(PROJECTDIR)/$(PKGSYMLINKDIR)
-else
-export PKG_CONFIG_PATH:=$(PROJECTDIR)/$(PKGSYMLINKDIR):$(PKG_CONFIG_PATH)
-endif
-
-# "global" variables
-ALL_OBJS:=
-ALL_LIBRARIES:=
-ALL_BINARIES:=
-ALL_CHECKS:=
-SUBDIR:=
-
-# various rules to create file names
-LIBNAME=lib$(subst /,_,$(patsubst %/,%,$(1)))
-
-# these are commands for the libdepend.inc files
-FILE_DEPEND_EXT=$(eval EXTLIBS_$(OBJDIR)$(1)+=$(2))
-FILE_DEPEND_INT=$(eval INTLIBS_$(OBJDIR)$(1)+=$(2))
-PKG_DEPEND_EXT=$(eval EXTLIBS_$(OBJDIR)+=$(1))
-PKG_DEPEND_EXT_ESSENTIAL=$(if $($(1)_CFLAGS)$($(1)_LDFLAGS),$(eval EXTLIBS_$(OBJDIR)+=$(1)),$(eval SKIP_BUILD_$(OBJDIR)=1))
-PKG_DEPEND_INT=$(eval INTLIBS_$(OBJDIR)+=$(1))
-PKG_DESCRIPTION=$(eval PKGDESC_$(OBJDIR)=$(1))
-PKG_VERSION=$(eval PKGVERS_$(OBJDIR)=$(1))
-
-# these are internal variables used within the Makefile.inc files and the
-# rules below
-PRINT_EXTLIB_LIST=$(EXTLIBS_$(1)) $(EXTLIBS_$(dir $1))
-PRINT_EXTLIB_PKGCONFIG=$(foreach l,$(call PRINT_EXTLIB_LIST,$(1)),$($(l)_PKGCONFIG))
-
-#PRINT_EXTLIB_CFLAGS=$(foreach l,$(call PRINT_EXTLIB_LIST,$(1)),$($(l)_CFLAGS))
-PRINT_EXTLIB_CFLAGS=$(foreach l,$(call PRINT_EXTLIB_LIST,$(1)),$(if $($(l)_PKGCONFIG),`pkg-config $($(l)_PKGCONFIG) --cflags` )$($(l)_CFLAGS))
-PRINT_EXTLIB_CFLAGS_NOPKG=$(foreach l,$(call PRINT_EXTLIB_LIST,$(1)),$($(l)_CFLAGS))
-
-PRINT_EXTLIB_LDFLAGS=$(foreach l,$(call PRINT_EXTLIB_LIST,$(1)),$(if $($(l)_PKGCONFIG),`pkg-config $($(l)_PKGCONFIG) --libs` )$($(l)_LDFLAGS))
-PRINT_EXTLIB_LDFLAGS_NOPKG=$(foreach l,$(call PRINT_EXTLIB_LIST,$(1)),$($(l)_LDFLAGS))
-
-
-PRINT_INTLIB_DEPS=$(foreach l,$(INTLIBS_$(1)) $(INTLIBS_$(dir $(1))),$(BUILDDIR)$(patsubst %/,%,$(l))/$(call LIBNAME,$(l))$(2))
-
-PRINT_INTLIB_PKGCONFIG=$(foreach l,$(INTLIBS_$(1)) $(INTLIBS_$(dir $1)),$(call LIBNAME,$(l)))
-#PRINT_PKGCONFIG_SAFE=$(if $(strip $(1)),`$(PKGCONFIG) $(1) $(2)`)
-PRINT_PKGCONFIG_SAFE=$(foreach l,$(1),`$(PKGCONFIG) $(l) $(2)`)
-
-PRINT_INTLIB_CFLAGS=$(call PRINT_PKGCONFIG_SAFE,$(call PRINT_INTLIB_PKGCONFIG,$(1)),--cflags)
-PRINT_INTLIB_LDFLAGS=$(call PRINT_PKGCONFIG_SAFE,$(call PRINT_INTLIB_PKGCONFIG,$(1)),--libs)
-
-#PROCESS_DEPFILE=$(SED) -e's@^[^ ].*:@&$(call PRINT_INTLIB_PCS,$@)@'
-
-.PHONY:all alldep alllib allbin clean check doc
-
-all:alldep alllib allbin
-
-# -----------------------------
-# - configuration for libraries
-#
-# This configuration is moved to a separate configuration file. There the
-# necessary defines $($(x)_CFLAGS) and $($(x)_LDFLAGS) are set up. Within
-# this Makefile, one can simply say a target needs library $(x), and includes
-# as well as libraries will be found.
-PKGCONFIG_3RDPARTY=$(if $(shell pkg-config $(2) --exists && echo "1"),\
-    $(call CONFIGINFO,$(1),1)$(eval $(1)_PKGCOONFIG=$(2)) \
-    $(eval $(1)_CFLAGS=-DUSELIB_$(1)) \
-    $(call CONFIGINFO,$(1),0))
-
-$(info $(shell if [ ! -f Makefile.config ];then echo "+++ creating default Makefile.config - please manually check the configuration"; cp templates/Makefile.config.template Makefile.config;fi))
-
-include Makefile.config
-
-# --------------------
-# - cppunit test stuff
-
-ALL_OBJS+=$(CPPUNIT_MAIN_OBJ)
-CPPUNIT_MAIN_OBJ=$(CPPUNIT_MAIN:%.cpp=%.o)
-$(call FILE_DEPEND_EXT,$(CPPUNIT_MAIN_OBJ),CPPUNIT)
-
-# ------------------------
-# - include subdirectories
-#
-# in fact a simple "include Makefile.inc" would suffice to reach the top level
-# source directory, from where other directories can be included.
-
-SUBDIRS:=./
-include $(SUBDIRS:%=%/Makefile.inc)
-
-# --------------------------------------
-# - override the default list of targets
-
-ifneq "$(TARGETS_FROM)" ""
-ALL_OBJS:=$(filter $(BUILDDIR)$(TARGETS_FROM)%,$(ALL_OBJS))
-ALL_LIBRARIES:=$(filter $(BUILDDIR)$(TARGETS_FROM)%,$(ALL_LIBRARIES))
-ALL_BINARIES:=$(filter $(BUILDDIR)$(TARGETS_FROM)%,$(ALL_BINARIES))
-ALL_CHECKS:=$(filter $(BUILDDIR)$(TARGETS_FROM)%,$(ALL_CHECKS))
-endif
-
-# -----------------------------
-# - rules in top level makefile
-#
-# the rules are the heart of the makefile. all rules are defined implicitly
-# which has many advantages. you should definitely know what you are doing
-# if you add an implicit rule however.
-
-allbin:$(ALL_BINARIES)
-	
-
-alllib:$(ALL_LIBRARIES)
-
-alldep:allpkg $(ALL_OBJS:%.o=%.d)
-
-allpkg:$(ALL_LIBRARIES:%.$(LINK_FILE_EXTENSION)=%.pc)
-
-check:$(ALL_CHECKS)
-
-clean:
-	$(VERBOSE)echo "+++ removing all files"
-	$(VERBOSE2)rm -f $(ALL_OBJS) $(ALL_OBJS:%.o=%.d)
-	$(VERBOSE2)rm -f $(ALL_BINARIES) $(ALL_BINARIES:%=%.bd)
-	$(VERBOSE2)rm -f $(ALL_LIBRARIES) $(ALL_CHECKS)
-	$(VERBOSE2)find ./core/ -name moc*.cpp -delete
-
-#TODO: does not remove moc_*.C (created with QT-moc from .h files)
-#alternative solution is to just rm -rf BUILD
-
-doc: Makefile.config
-	$(VERBOSE)echo "+++ creating documentation"
-	$(VERBOSE2)cp Doxyfile Doxyfile.tmp
-	$(VERBOSE2)perl -e 'print "PREDEFINED =     "; while(<>){ if ( /(NICE_USELIB_\w+)/ ) { print "$$1 "; } }; print "\n"' Makefile.config >> Doxyfile.tmp
-	$(VERBOSE2)$(DOXYGEN) Doxyfile.tmp
-	$(VERBOSE2)rm Doxyfile.tmp
-
-MKOUTPUTDIR=[ -d $(@D) ] || mkdir -p $(@D)
-MKOUTPUTDIR2=[ -d $(dir $(1)) ] || mkdir -p $(dir $(1))
-
-$(BUILDDIR)%.d:%.c $(ALL_LIBRARIES:%.$(LINK_FILE_EXTENSION)=%.pc)
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ making dependencies $@"
-	$(VERBOSE2)$(CC) -MT '$@ $(@:%.d=%.o)' -MM -I. $(call PRINT_INTLIB_CFLAGS,$@) $(call PRINT_EXTLIB_CFLAGS,$@) $< > $@
-
-$(BUILDDIR)%.d:%.C $(ALL_LIBRARIES:%.$(LINK_FILE_EXTENSION)=%.pc)
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ making dependencies $@"
-	$(VERBOSE2)$(CC) -MT '$@ $(@:%.d=%.o)' -MM -I. $(call PRINT_INTLIB_CFLAGS,$@) $(call PRINT_EXTLIB_CFLAGS,$@) $< > $@
-
-$(BUILDDIR)%.d:%.cpp $(ALL_LIBRARIES:%.$(LINK_FILE_EXTENSION)=%.pc)
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ making dependencies $@"
-	$(VERBOSE2)$(CXX) -MT '$@ $(@:%.d=%.o)' -MM -I. $(call PRINT_INTLIB_CFLAGS,$@) $(call PRINT_EXTLIB_CFLAGS,$@) $< > $@
-
-$(BUILDDIR)%.d:%.cu $(ALL_LIBRARIES:%.$(LINK_FILE_EXTENSION)=%.pc)
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ making dependencies $@"
-	$(VERBOSE2)$(CXXCUDA) -M '$@ $(@:%.d=%.o)' -I. $(call PRINT_INTLIB_CFLAGS,$@) $(call PRINT_EXTLIB_CFLAGS,$@) $< > $@
-
-$(BUILDDIR)%.bd:$(ALL_LIBRARIES:%.$(LINK_FILE_EXTENSION)=%.pc)
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ making dependencies $@"
-	$(VERBOSE2)echo '$@:$(patsubst $(BUILDDIR)%,%,$(dir $@))libdepend.inc' > $@
-	$(VERBOSE2)echo '$(@:%.bd=%):$(@:%.bd=%.o) $(call PRINT_INTLIB_DEPS,$(@:%.bd=%),.$(LINK_FILE_EXTENSION))' >> $@
-
-$(BUILDDIR)%.o:%.c
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ compiling object $@"
-	$(VERBOSE2)$(CC) -c $(CFLAGS) -I. $(call PRINT_INTLIB_CFLAGS,$@) $(call PRINT_EXTLIB_CFLAGS,$@) $< -o $@
-
-$(BUILDDIR)%.o:%.C
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ compiling object $@"
-	$(VERBOSE2)$(CXX) -c $(CFLAGS) -I. $(call PRINT_INTLIB_CFLAGS,$@) $(call PRINT_EXTLIB_CFLAGS,$@) $< -o $@
-
-$(BUILDDIR)%.o:%.cpp
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ compiling object $@"
-	$(VERBOSE2)$(CXX) -c $(CFLAGS) -I. $(call PRINT_INTLIB_CFLAGS,$@) $(call PRINT_EXTLIB_CFLAGS,$@) $< -o $@
-
-$(BUILDDIR)%.o:%.cu
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ compiling cuda object $@"
-	$(VERBOSE2)$(CXXCUDA) -c $(CFLAGS_CUDA) -I. $(call PRINT_INTLIB_CFLAGS,$@) $(call PRINT_EXTLIB_CFLAGS,$@) $< -o $@
-
-moc_%.cpp:%.h
-	$(VERBOSE)echo "+++ creating moc $@"
-	$(VERBOSE2)$(MOC) $< -o $@
-
-$(BUILDDIR)%.a:
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ linking library $@"
-	$(VERBOSE2)test -n "$(filter %.o,$^)" && $(AR) -crs $@ $(filter %.o,$^); echo;
-	$(VERBOSE2)test -f "$@" || (touch emptysource.cpp; gcc -c emptysource.cpp; $(AR) -crs $@ emptysource.o; rm emptysource.*); echo
-	@touch $@
-	@$(call MKOUTPUTDIR2,$(LIBSYMLINKDIR))
-	$(VERBOSE2)cd $(LIBSYMLINKDIR);$(SYMLINK) ../$(@:$(BUILDDIR)%=%) $(@F)
-
-$(BUILDDIR)%.so:$(BUILDDIR)%.a
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ linking library $@"
-	$(VERBOSE2)$(CXX) -shared -o $@ -Wl,-whole-archive $< -Wl,-no-whole-archive
-	@$(call MKOUTPUTDIR2,$(LIBSYMLINKDIR))
-	$(VERBOSE2)cd $(LIBSYMLINKDIR);$(SYMLINK) ../$(@:$(BUILDDIR)%=%) $(@F)
-
-$(ALL_BINARIES):
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ linking binary $@"
-	$(VERBOSE2)$(CXX) -o $@ $(filter %.o,$^) $(call PRINT_INTLIB_LDFLAGS,$@) $(LDFLAGS) $(call PRINT_EXTLIB_LDFLAGS,$@)
-	@$(call MKOUTPUTDIR2,$(BINSYMLINKDIR))
-	$(VERBOSE2)cd $(BINSYMLINKDIR);$(SYMLINK) ../$(@:$(BUILDDIR)%=%) $(@F)
-
-$(ALL_CHECKS):
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ running test case $@"
-	$(VERBOSE2)$(CXX) -o $@ $(filter %.o,$^) $(call PRINT_INTLIB_LDFLAGS,$@) $(LDFLAGS) $(call PRINT_EXTLIB_LDFLAGS,$@)
-	$(VERBOSE2)cd $(patsubst $(BUILDDIR)%,%,$(dir $@)); $(PROJECTDIR)$@; mv $(PROJECTDIR)$@ $(PROJECTDIR)$@.bak
-
-$(BUILDDIR)%.pc:
-	@$(MKOUTPUTDIR)
-	$(VERBOSE)echo "+++ creating package $@"
-	$(VERBOSE2)echo "Name: $(notdir $@)" > $@
-	$(VERBOSE2)echo "Description: $(if $(PKGDESC_$(dir $@)),$(PKGDESC_$(dir $@)),Just a sub-library)" >> $@
-	$(VERBOSE2)echo "Version: $(if $(PKGVERS_$(dir $@)),$(PKGVERS_$(dir $@)),1.0.0)" >> $@
-	$(VERBOSE2)echo "Requires: $(call PRINT_INTLIB_PKGCONFIG,$@) $(call PRINT_EXTLIB_PKGCONFIG,$@)" >> $@
-	$(VERBOSE2)echo "Libs: -L$(PROJECTDIR)$(dir $@) -l$(patsubst lib%.pc,%,$(notdir $@)) $(call PRINT_EXTLIB_LDFLAGS_NOPKG,$@)" >> $@
-	$(VERBOSE2)echo "Cflags: -I$(PROJECTDIR) $(call PRINT_EXTLIB_CFLAGS_NOPKG,$@)" >> $@
-	@$(call MKOUTPUTDIR2,$(PKGSYMLINKDIR))
-	$(VERBOSE2)cd $(PKGSYMLINKDIR);$(SYMLINK) ../$(@:$(BUILDDIR)%=%) $(@F)
-
-# ----------------------
-# - include dependencies
-#
-# finally, if we know how to make them, we can include all depedency .d files.
-# personally i do not like this line, because you always always always have
-# to make the dependencies then, even if you `make non_existing_target`.
-# furthermore i do not like the idea of having one .d file for each source
-# file, but it seems to be the only way...
-
--include $(ALL_OBJS:%.o=%.d)
-

+ 0 - 97
Makefile.inc

@@ -1,97 +0,0 @@
-# LIBRARY-DIRECTORY-MAKEFILE
-# conventions:
-# - all subdirectories containing a "Makefile.inc" are considered sublibraries
-#   exception: "progs/" and "tests/" subdirectories!
-# - all ".C", ".cpp" and ".c" files in the current directory are linked to a
-#   library
-# - the library depends on all sublibraries 
-# - the library name is created with $(LIBNAME), i.e. it will be somehow
-#   related to the directory name and with the extension .a
-#   (e.g. lib1/sublib -> lib1_sublib.a)
-# - the library will be added to the default build list ALL_LIBRARIES
-
-# --------------------------------
-# - remember the last subdirectory
-#
-# set the variable $(SUBDIR) correctly to the current subdirectory. this
-# variable can be used throughout the current makefile.inc. The many 
-# SUBDIR_before, _add, and everything are only required so that we can recover
-# the previous content of SUBDIR before exitting the makefile.inc
-
-SUBDIR_add:=$(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
-SUBDIR_before:=$(SUBDIR)
-SUBDIR:=$(strip $(SUBDIR_add))
-SUBDIR_before_$(SUBDIR):=$(SUBDIR_before)
-ifeq "$(SUBDIR)" "./"
-SUBDIR:=
-endif
-
-# ------------------------
-# - include subdirectories
-#
-# note the variables $(SUBDIRS_OF_$(SUBDIR)) are required later on to recover
-# the dependencies automatically. if you handle dependencies on your own, you
-# can also dump the $(SUBDIRS_OF_$(SUBDIR)) variable, and include the
-# makefile.inc of the subdirectories on your own...
-
-SUBDIRS_OF_$(SUBDIR):=$(patsubst %/Makefile.inc,%,$(wildcard $(SUBDIR)*/Makefile.inc))
-include $(SUBDIRS_OF_$(SUBDIR):%=%/Makefile.inc)
-
-# ----------------------------
-# - include local dependencies
-#
-# you can specify libraries needed by the individual objects or by the whole
-# directory. the object specific additional libraries are only considered
-# when compiling the specific object files
-# TODO: update documentation...
-
--include $(SUBDIR)libdepend.inc
-
-$(foreach d,$(filter-out %progs %tests,$(SUBDIRS_OF_$(SUBDIR))),$(eval $(call PKG_DEPEND_INT,$(d))))
-
-# ---------------------------
-# - objects in this directory
-#
-# the use of the variable $(OBJS) is not mandatory. it is mandatory however
-# to update $(ALL_OBJS) in a way that it contains the path and name of
-# all objects. otherwise we can not include the appropriate .d files.
-
-OBJS:=$(patsubst %.cpp,$(OBJDIR)%.o,$(notdir $(wildcard $(SUBDIR)*.cpp))) \
-      $(patsubst %.C,$(OBJDIR)%.o,$(notdir $(wildcard $(SUBDIR)*.C))) \
-      $(patsubst %.c,$(OBJDIR)%.o,$(notdir $(wildcard $(SUBDIR)*.c)))
-ALL_OBJS += $(OBJS)
-
-# ----------------------------
-# - binaries in this directory
-#
-# output of binaries in this directory. none of the variables has to be used.
-# but everything you add to $(ALL_LIBRARIES) and $(ALL_BINARIES) will be
-# compiled with `make all`. be sure again to add the files with full path.
-
-LIBRARY_BASENAME:=$(call LIBNAME,$(SUBDIR))
-ifneq "$(SUBDIR)" ""
-ALL_LIBRARIES+=$(LIBDIR)$(LIBRARY_BASENAME).$(LINK_FILE_EXTENSION)
-endif
-
-# ---------------------
-# - binary dependencies
-#
-# there is no way of determining the binary dependencies automatically, so we
-# follow conventions. the current library depends on all sublibraries.
-# all other dependencies have to be added manually by specifying, that the
-# current .pc file depends on some other .pc file. binaries depending on
-# libraries should exclusivelly use the .pc files as well.
-
-$(LIBDIR)$(LIBRARY_BASENAME).a:$(OBJS) \
-	$(call PRINT_INTLIB_DEPS,$(PKGDIR)$(LIBRARY_BASENAME).a,.$(LINK_FILE_EXTENSION))
-$(PKGDIR)$(LIBRARY_BASENAME).pc: \
-	$(call PRINT_INTLIB_DEPS,$(PKGDIR)$(LIBRARY_BASENAME).pc,.pc)
-
-# -------------------
-# - subdir management
-#
-# as the last step, always add this line to correctly recover the subdirectory
-# of the makefile including this one!
-
-SUBDIR:=$(SUBDIR_before_$(SUBDIR))
-

+ 0 - 38
NOTES

@@ -1,38 +0,0 @@
-## Wichtigere Sachen
-*Für die generischen Klassen müssen wir uns etwas überlegen*. Die Implementationen müssen mit in die Header, aber wir können die Lib so "von außen" nicht benutzen, weil wir beim Kompilieren der Templates definitiv unser Buildsystem brauchen (die ganzen Makros, Libs...). Das macht eine Distribution von Binaries quasi unmöglich.
-
-```
-$ grep --include={*.h,*.tcc} -rnw ./ -e ".*def.*USELIB.*" | wc -l
-185
-
-```
-
-Daher mein Vorschlag:
-
-1. Wir schränken für jede betroffene Klasse die möglichen Instanzen ein und kompilieren alle davon explizit mit. Ein Beispiel habe ich in den Ordner "ignore" gepackt.
-Vorteile:
-	* Benutzer braucht nur noch die Header einzubinden und mit nice_core zu linken -> er muss nice_core nicht kompilieren, sondern kann einfach Binaries und Header installieren.
-	* Je nach Lizenzen können wir einige Libraries statisch reinlinken, dabei fallen die nicht benutzten Funktionen raus und die Benutzer muss nicht einmal die sos der Abhängigkeiten installieren.
-	* Wenn wir in der Implementierung eine weitere Abhängigkeit einbauen, machen wir dem Benutzer seinen Buildprozess nicht kaputt.
-Nachteile:
-	* Für Containertypen eher unbrauchbar.
-	* Speicher?
-
-## Buildsystem
--- WITH_QT OFF verhindert nicht das Kompilieren von libimagedisplay, die hängt aber von Qt ab.
-?? NICE_USELIB_QT verwenden, um in ImageDisplay.h die QT-Header auszuschließen
-
--- Das Verzeichnis von GLUT ist für Windows hardcoded, sollte eigentlich Umgebungsvariable nutzen. 
-?? Rausnehmen
-
--- WITH... sind Voreinstellungen in CMakeLists
-?? In Abhängigkeit der gefundenen Libs setzen
-
--- Die Abhängigkeiten werden in nice-core/CMakeLists.txt gesucht, aber in nice-core/core/CMakeLists.txt werden unabhängig davon die Ergebnisse der find_package()-Aufrufe benutzt.
-?? Wenn nice-core ohnehin nur aus "core" besteht, reicht vielleicht auch nur eine CMakeLists.txt. Dann können wir target_link_libraries aufrufen, nachdem wir eine Abhängigkeit gefunden haben. Alternativ: Wenn jedes Projekt seine eigenen Abhängigkeiten hat, dann kann auch jedes Projekt selbst danach suchen.
-
-## Aufräumen
--- "Filter.h is obsolete" - hängt noch sehr viel davon ab?
-
-## Bugs
--- Konstruktor von ImageT ruft string::substr mit falschen Parametern auf, wenn der Punkt im Dateinamen fehlt.

+ 0 - 8
PACKAGES

@@ -1,8 +0,0 @@
-Recommended packages for full functionality
-
-libqt4-dev
-libcppunit-dev
-libbz2-dev
-libmagick++-dev
-libjpeg62-dev
-libglut3-dev

+ 0 - 58
README

@@ -1,58 +0,0 @@
-Installation
-============
-
-git clone /home/dbv/git/nice/
-
--source the setenv.sh in the nice-directory (and nowhere else) to setup all necessary variables, relative paths, libraries etc.
--make
-
-
-Additional Sub-Libraries
-=======================
-
-gp-hik-core:
-cd ../nice-core/ (goto NICE path)
-git clone /home/dbv/git/nice/gp-hik-core/
-(*) This module is also available at git-hub. Please replace the clone-command by the corresponding github clone command.
-
-gp-hik-exp:
-cd ../nice-core/ (goto NICE path)
-git clone /home/dbv/git/nice/gp-hik-exp/
-
-optimization:
-cd ../nice-core/ (goto NICE path)
-git clone /home/dbv/git/nice/optimization/
-
-vislearning:
-cd ../nice/ (goto NICE path)
-git clone /home/dbv/git/nice/vislearning/
-
-
-Enable/Disable code optimization
-================================
-Activation:
-export OPTIMIZE
-
-De-Activation:
-unset OPTIMIZE
-
-Explanation:
-After writing (and debugging) your code, you can enable the optimization to obtain source code that usually runs up to several times faster compared to the non-optimized version. However,
-compilation time will be longer and debugging with gdb or similar tools will be almost impossible after this.
-
-Known Issues
-============
-
-- fixing the -lg2c problem
-=> sudo ln -s /usr/lib/libg2c.so.0 /usr/lib/libg2c.so
-   sudo ln -s /usr/lib64/libg2c.so.0 /usr/lib64/libg2c.so
-
-- problems with linking against ICE library
-=> in older version, subroutines of ICE where used. Currently, the system is working independent from ICE. However, if ICEDIR is set on your machine, it will try to link against some methods and classes.
-=> unset ICEDIR (perhaps also in your bashrc)
-
-Requirements
-============
-
-install gfortran ( openSUSE: gcc46-gfortran )
-install freeglut-devel

+ 0 - 147
readme.txt

@@ -1,147 +0,0 @@
-General CMake Notes:
-=========================================
-1. Indexing source code files:
-Never use GLOB_RECURSE. It's evil. E.g. if you add or remove source files, CMake has no way of knowing that it should be re-run. Just list all the files in your CMakeLists.txt (or, if you think the list is excessively long, create a file called e.g. files.cmake, put the list in there and INCLUDE it in the CMakeLists.txt file.
-
-2. Never do in-source builds. CMake creates many, many files, and you don't want to delete them all individually for a clean build. And there's no way to implement a safe "make clean" (e.g. your build system might be running a custom utility which generates files CMake knows nothing about).
-
-Notes on NICE to CMAKE transformation
-========================================
-
-Todos
------
-- libmagic++ scheint sehr aufwendig in der benutzung unter Windows: How to build it with vs, anleitung:http://www.graphicsmagick.org/INSTALL-windows.html#windows-xp-vista-7-visual-c-6-0-through-9-0-compilation
-unter windows doch einfacher: http://www.imagemagick.org/script/binary-releases.php#windows (sind nur die binaries, keine includes und libs)
-http://www.imagemagick.org/Magick++/ sources runterladen (getan. TODO: entpacken c/libraries/ImageMagick-6.8.3-6-windows.zip)
-braucht man überhaupt libmagick? warum nicht lieber opencv zum bilderlesen benutzen: momentan ist das lesen und schreiben eh mit throw exception not implemented verbunden:
-void ImageFile::readerMagick ( GrayColorImageCommonImplementationT<P> *image )
-{
-  fthrow ( ImageException, "Format not yet implemented (only available for standard images)." );
-}
-weil magick momentan der default imagereader ist: void ImageFile::reader(...), wenn keine libPNG und LibJpeg gegeben ist.
-
-
-- make compilable without Qt
-- make compileable without opengl
-
-- regex lib nutzen von boost (->config.h)
-- substitue FileMgt::DirectoryRecursive by platform independend code using boost::filesystem
-
-- Implement ResouceStatistics for windows
-
-- braucht man GLUT noch ? Alt??? enable build without glut atleast!!
-
-- remove all warnings for function shadowing
-- remove all warning unreachable code
-
-- fixing all these includes of template definitons:
-  //#ifdef __GNUC__
-  #include "core/vector/RowMatrixT.tcc"
-  //#endif
-  tcc are not cpps, they need to be included into the header file otherwise template usage will result in linking errors
-  See, Inclusion model of Template classes: http://stackoverflow.com/questions/3705740/c-lnk2019-error-unresolved-external-symbol-template-classs-constructor-and
-
-- porting core/basics/timer.h/cpp
-  highly unix dependend, better use 3rd party time functionality for now()
-  better use boost::timer ??
-
-- stringtools highly os dependented
-  ->recursive dir scan with "ls -r" syntax!!
-use 3rd party lib like boost oder qt
-use boost regex for regex syntax in stringtools::regex bla
-
-
-NICE defs to care about
------------------------
-NICE_USELIB_CUDACHOLESKY
-NICE_USELIB_IPP
-NICE_USELIB_OPENMP
-#ifdef NICE_USELIB_MATIO
-NICE_USELIB_PNG
-NICE_USELIB_JPG
-NICE_USELIB_LIBMAGICK
-
-#eigene definiton zum builden der sub-test-ordners
-
-Notes Using Libraries:
-======================
-
-
-needed libraries windows:
-------------------------
-- freeglut (download from: http://freeglut.sourceforge.net/index.php#download)
- adjust pathes GLUT_ROOT_PATH in root-CMakeLists.txt
-
-
-CPPUNIT verwenden
----------------------
-
-1) installation
-1-a) linux
-  if not already in path then:
-    download source from http://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/cppunit-1.12.1.tar.gz/download
-    unzip
-    create build_<pcname> dir
-    cd build_<pcname>
-    ../configure - -prefix=<path>/build_<pcname>/install
-    make 
-    make install
-    put <path>/build_<pcname>/install/include into system path variable, example in .bashrc:
-    PATH=/home/ruehle/libs/cppunit-1.12.1/build_sigma15/install/include/:$PATH
-
-1-b) Windows:
-  download http://www.comp.nus.edu.sg/~cs3215/tools/cppunitAll.html
-  build with visual studio
-  put path to generated lib in path variable (pointing to the */include path)
-2) enabling building cpp unit tests
-  NICE_BUILD_TESTS   
-  running tests: <build ordner>: cmake
-  make
-3) run the unit tests
-im <build ordner>: cmake --output-on-failure
-
-
-OpenCV inspired CMake notes:
-===========================
-Interessante Funktionen der OpenCV:
-----------------------------------
-
-macro add_all_subdirs()
-
-set(_all_headers)
-set(_all_sources)
-set(_all_linkings)
-
-#ge
-foreach dir in subdirlist
-{
-  add_directories( dir )
-  #add header, sources, linkings from subdir to _all_* variables
-
-}  
-
-
-endmacro
-
-set(NICE_CURR_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
-
-
-
-aus OpenCVUtils.cmake:
-macro(ocv_convert_to_full_paths VAR) # convert list of paths to full paths
-macro(ocv_get_real_path VAR PATHSTR) # get absolute path with symlinks resolved
-macro(ocv_list_add_suffix LST SUFFIX) # add suffix to each item in the list
-macro(ocv_list_add_prefix LST PREFIX) # add prefix to each item in the list
-macro(ocv_list_unique __lst)# stable & safe duplicates removal macro
-
-OpenCVModule.cmake
-ocv_glob_modules(pathcurrdir) -->in modules
-  in jedem untermodel, eg core
-  ocv_add_module(modname)
-    sets variable "the_module" => set(the_module opencv_${name})
-    extra abhängikeitens über zweites argument in der funktion, eg. ocv_add_module(core ${ZLIB_Lbla})
-  ocv_module_include_directories() ( auch mit zusatzincludes dann übergeben ${ZLib_include_Dir})
-  ocv_glob_module_sources() holt cpps und hpp h aus unterordnern -- sources bilden
-  ocv_create_module (binary build the module ->add_library,  set_target etc
-  
-

+ 0 - 99
setenv.sh

@@ -1,99 +0,0 @@
-# This script sets some enviroment variables for the NICE framework,
-# such as PATH and LD_LIBRARY_PATH
-# usage: source setenv.sh [NICEDIR]
-
-# DO NOT SUBMIT A CHANGED VERSION TO THIS FILE UNLESS YOU
-# KNOW WHAT YOU ARE DOING !!
-
-# current path
-MYPATH=`pwd`
-# list of possible nice directories
-POSSIBLE_NICE_DIRECTORIES="$1 $MYPATH $NICEHOME $HOME/code/nice $HOME/dev/nice $HOME/workspace/nice $HOME/libs/nice/ $HOME/src/nice/"
-for MYNICEDIR in $POSSIBLE_NICE_DIRECTORIES; do
-	# check whether we have an absolute path
-	echo checking $MYNICEDIR
-	if [ `echo $MYNICEDIR | cut -c1` != "/" ]; then
-		# this is not an absolute path
-		continue
-	fi
-	# check whether this is a suitable NICE core directory
-	if [ -d "$MYNICEDIR/core/" ]; then
-		NICEHOME=$MYNICEDIR
-		break
-	fi
-done
-echo Configuring NICE framework in $NICEHOME
-
-#export NICEHOME to have it accessible in child processes, e.g., in programs started on this shell aiming to read local settings, relative file names, or stuff like that
-export NICEHOME
-
-# Set the PKG_CONFIG_PATH to include the nice-core pc-files
-export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/:/usr/lib/pkgconfig/:/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig/:$NICEHOME/BUILD_`uname -m`$NICE_BUILD/pkgconfig/
-
-# Determine the GCC version, we might need it ...
-GCC_VERSION=`gcc --version | perl -e '$_=<>;/^gcc.+?([\d\.]+)/;print $1'`
-GCC_VERSION_MAJOR=`echo $GCC_VERSION | perl -e '$_=<>;/^(\d+\.\d+)\.\d+/;print $1'`
-
-# Use the slim-pkg-config program
-# (1) set the link
-ln -s $MYNICEDIR/slim-pkg-config/slim-pkg-config $MYNICEDIR/slim-pkg-config/pkg-config 2>/dev/null
-# (2) modify the PATH variable, because we want to use slim-pkg-config instead of the standard (slow!) pkg-config
-export PATH=$MYNICEDIR/slim-pkg-config/:$PATH
-echo "Using slim-pkg-config instead of pkg-config: which pkg-config = `which pkg-config`"
-
-PATH=$PATH:$NICEHOME/BUILD_`uname -m`$NICE_BUILD/bin
-LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NICEHOME/BUILD_`uname -m`$NICE_BUILD/lib
-
-echo "Configuring BUILDIR: $NICEHOME/BUILD_`uname -m`$NICE_BUILD"
-
-LOCAL_SETENV="$NICEHOME/setenv_local.sh"
-if [ -f "$LOCAL_SETENV" ]; then
-	 echo "Using your local version: $LOCAL_SETENV"
-	 source "$LOCAL_SETENV"
-	 return
-fi
-
-if [ -e $HOME/DBVFAIL ]; then
-  return
-fi
-
-if [ -d /home/dbv/ ]; then
-	# The following commands are tuned for the enviroment
-	# at the chair for computer vision, university of jena
-
-	echo "Configuring to use /home/dbv/ ..."
-	# check whether we have a 64bit machine 
-	if test "`uname -m`" == "x86_64"
-	then
-		 # Do we really need this gcc stuff anymore?
-		 #source /home/dbv/3rdparty64-gcc43/gcc/setenv.sh
-		 source /home/dbv/3rdparty64-gcc43/ipp53/setenv.sh
-		 source /home/dbv/3rdparty64-gcc43/FireCap/setenv.sh
-		 #source /home/dbv/3rdparty64-gcc43/Coin3dQt4/setenv.sh
-		 source /home/dbv/3rdparty64-gcc43/LinAl/setenv.sh
-		 source /home/dbv/3rdparty64-gcc43/cppunit/setenv.sh
-		 # source /home/dbv/3rdparty64-gcc43/qt4/setenv.sh
-		 source /home/dbv/3rdparty64-gcc43/opencv/setenv.sh
-		 source /home/dbv/3rdparty64/cudaSIFT/setenv.sh
-		 source /home/dbv/3rdparty64/cuda/setenv_cuda.sh
-		 # Do we really need this gcc stuff anymore?
-		 PATH=$PATH:/home/dbv/3rdparty64-gcc43/bin
-		 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dbv/3rdparty64-gcc43/libptu/lib:/home/dbv/3rdparty64-gcc43/Aria/lib
-	else
-		 #32 bit system 
-		 #source /home/dbv/3rdparty32/gcc/setenv.sh
-		 source /home/dbv/3rdparty32/ipp53/setenv.sh
-		 source /home/dbv/3rdparty32/FireCap/setenv.sh
-		 source /home/dbv/3rdparty32/Coin3d/setenv.sh
-		 source /home/dbv/3rdparty32/LinAl/setenv.sh
-		 #source /home/dbv/3rdparty64-gcc43/cppunit/setenv.sh
-		 #source /home/dbv/3rdparty32/qt4/setenv.sh
-		 source /home/dbv/3rdparty32-102/opencv/setenv.sh
-		 PATH=$PATH:/home/dbv/3rdparty32/bin:$NICEHOME/BUILD_i686/bin
-		 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NICEHOME/BUILD_i686/lib:/home/dbv/3rdparty32/qt4/lib:/home/dbv/3rdparty32/libptu/lib:/home/dbv/3rdparty32/Aria/lib
-	fi
-else	
-	echo "The directory /home/dbv/ does not exist, therefore, I guess you have a local copy and take care of your env variables yourself."
-    echo "Do not commit a local version of this script to the repository!"
-fi
-