Switch lensfun to CMake, dropping build-time Python dependency and

lowering overall patches count. Also enables libauxfun to build.

The main point is to stop putting wrong soname in shared objects,
to unbreak lib-depends-check in dependant ports.

okay sthen@
This commit is contained in:
zhuk 2015-07-05 12:03:34 +00:00
parent cc76150531
commit aee6cc5bcb
11 changed files with 147 additions and 120 deletions

View File

@ -1,9 +1,11 @@
# $OpenBSD: Makefile,v 1.14 2015/06/23 22:00:55 sthen Exp $
# $OpenBSD: Makefile,v 1.15 2015/07/05 12:03:34 zhuk Exp $
COMMENT= library to adjust for photographic lens characteristics
DISTNAME= lensfun-0.2.7
SHARED_LIBS= lensfun 1.0
REVISION= 1
REVISION= 2
SHARED_LIBS= lensfun 1.0
SHARED_LIBS+= auxfun 0.0
CATEGORIES= graphics
HOMEPAGE= http://lensfun.sourceforge.net/
@ -16,39 +18,31 @@ WANTLIB += c glib-2.0 m png pthread stdc++ z
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=lensfun.berlios/}
EXTRACT_SUFX= .tar.bz2
MODULES= lang/python devel/gettext
MODPY_RUNDEP= No
MODULES= devel/cmake devel/gettext
BUILD_DEPENDS= devel/doxygen>=1.7.2
LIB_DEPENDS= devel/glib2 \
graphics/png
MAKE_FLAGS= V=1 INSTDIR_manual=${PREFIX}/share/doc/lensfun \
LIBlensfun_VERSION=${LIBlensfun_VERSION}
CONFIGURE_ARGS= -DBUILD_DOC=Yes \
-DBUILD_AUXFUN=Yes
USE_GMAKE= Yes
CONFIGURE_STYLE= simple
CONFIGURE_SCRIPT= ${MODPY_BIN} ./configure
CONFIGURE_ARGS+= --docdir=${PREFIX}/share/doc/lensfun \
--libdir=${PREFIX}/lib \
--vectorization=SSE
TEST_PROGS= tfun example
NO_TEST = Yes
do-test:
.for p in ${TEST_PROGS}
cd ${WRKBUILD}/tests; ./$p
.endfor
CFLAGS+= -I/usr/include
MAKE_FILE= GNUmakefile
ALL_TARGET = all
SUBST_VARS = MAKE_PROGRAM
pre-configure:
${SUBST_CMD} ${WRKSRC}/configure ${WRKSRC}/tibs.py
DOC_DIR= ${PREFIX}/share/doc/lensfun
MANUAL_DIR= ${DOC_DIR}/manual
post-install:
mv ${PREFIX}/lib/liblensfun.so \
${PREFIX}/lib/liblensfun.so.${LIBlensfun_VERSION}
cd ${WRKSRC}/out/posix*/release; \
${INSTALL_PROGRAM} tmod ${PREFIX}/bin
cd ${PREFIX}/bin; rm ${TEST_PROGS}
${INSTALL_DATA_DIR} ${DOC_DIR}
${INSTALL_DATA} ${WRKSRC}/README ${DOC_DIR}
${INSTALL_DATA} ${WRKSRC}/docs/*-3.0.txt ${DOC_DIR}
rm -Rf ${MANUAL_DIR}
mv ${PREFIX}/share/doc/${DISTNAME}.* ${MANUAL_DIR}
.include <bsd.port.mk>

View File

@ -0,0 +1,25 @@
$OpenBSD: patch-CMakeLists_txt,v 1.1 2015/07/05 12:03:34 zhuk Exp $
Do not force those values but use cache for them, allowing
to override from command line.
--- CMakeLists.txt.orig Tue Feb 12 13:52:21 2013
+++ CMakeLists.txt Tue Feb 12 13:55:05 2013
@@ -73,11 +73,14 @@ IF(BUILD_STATIC)
ENDIF()
# define destination dirs (relative to prefix)
-SET(BINDIR bin)
-SET(LIBDIR lib${LIB_SUFFIX})
-SET(INCLUDEDIR include)
-SET(DATADIR share/lensfun)
-SET(DOCDIR share/doc/lensfun-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}.${VERSION_BUGFIX})
+SET(BINDIR bin CACHE PATH "Directory for library example programs")
+SET(LIBDIR lib${LIB_SUFFIX} CACHE PATH "Directory for library itself")
+SET(INCLUDEDIR include CACHE PATH "Directory for library header files")
+SET(DATADIR share/lensfun CACHE PATH "Directory for library data files")
+
+IF(BUILD_DOC)
+ SET(DOCDIR share/doc/lensfun-${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}.${VERSION_BUGFIX} CACHE PATH "Directory to put library documentation in")
+ENDIF(BUILD_DOC)
IF(WIN32)
# install into place in build-dir

View File

@ -0,0 +1,64 @@
$OpenBSD: patch-build_CMakeModules_FindGLIB2_cmake,v 1.1 2015/07/05 12:03:34 zhuk Exp $
Avoid messing up between paths found by pkg-config and CMake itself.
--- build/CMakeModules/FindGLIB2.cmake.orig Mon Oct 8 00:14:34 2012
+++ build/CMakeModules/FindGLIB2.cmake Sun Jul 5 05:11:54 2015
@@ -1,12 +1,12 @@
IF(NOT WIN32)
INCLUDE(FindPkgConfig)
- PKG_SEARCH_MODULE( GLIB2 REQUIRED glib-2.0 )
+ PKG_SEARCH_MODULE( PC_GLIB2 REQUIRED glib-2.0 )
ENDIF()
-IF ( WIN32 OR (NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUND))
FIND_PATH(GLIB2_GLIB2CONFIG_INCLUDE_PATH
NAMES glibconfig.h
PATHS
+ ${PC_GLIB2_LIBDIR}
/usr/local/lib
/usr/lib
/usr/lib64
@@ -17,9 +17,10 @@ IF ( WIN32 OR (NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUN
)
- FIND_PATH(GLIB2_INCLUDE_DIRS
+ FIND_PATH(GLIB2_INCLUDE_DIR
NAMES glib.h
PATHS
+ ${PC_GLIB2_INCLUDEDIR}
/usr/local/include
/usr/include
/opt/local/include
@@ -27,9 +28,10 @@ IF ( WIN32 OR (NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUN
PATH_SUFFIXES gtk-2.0 glib-2.0 glib20
)
- FIND_LIBRARY(GLIB2_LIBRARIES
+ FIND_LIBRARY(GLIB2_LIBRARY
NAMES glib-2.0 glib20 glib
PATHS
+ ${PC_GLIB2_LIBDIR}
/usr/local/lib
/usr/lib
/usr/lib64
@@ -37,17 +39,15 @@ IF ( WIN32 OR (NOT GLIB2_FOUND AND NOT PKG_CONFIG_FOUN
${GLIB2_BASE_DIR}/lib
)
- IF(GLIB2_GLIB2CONFIG_INCLUDE_PATH AND GLIB2_INCLUDE_DIRS AND GLIB2_LIBRARIES)
- SET( GLIB2_INCLUDE_DIRS ${GLIB2_GLIB2CONFIG_INCLUDE_PATH} ${GLIB2_INCLUDE_DIRS} )
- SET( GLIB2_LIBRARIES ${GLIB2_LIBRARIES} )
+ IF(GLIB2_GLIB2CONFIG_INCLUDE_PATH AND GLIB2_INCLUDE_DIR AND GLIB2_LIBRARY)
+ SET( GLIB2_INCLUDE_DIRS ${GLIB2_GLIB2CONFIG_INCLUDE_PATH} ${GLIB2_INCLUDE_DIR} )
+ SET( GLIB2_LIBRARIES ${GLIB2_LIBRARY} )
SET( GLIB2_FOUND 1)
ELSE()
SET( GLIB2_INCLUDE_DIRS )
SET( GLIB2_LIBRARIES )
SET( GLIB2_FOUND 0)
ENDIF()
-
-ENDIF ()
#INCLUDE( FindPackageHandleStandardArgs )
#FIND_PACKAGE_HANDLE_STANDARD_ARGS( GLIB2 DEFAULT_MSG GLIB2_LIBRARIES GLIB2_GLIB2CONFIG_INCLUDE_PATH GLIB2_GLIB2_INCLUDE_PATH )

View File

@ -1,30 +0,0 @@
$OpenBSD: patch-build_tibs_compiler_gcc_mak,v 1.1 2010/09/16 10:05:20 sthen Exp $
--- build/tibs/compiler/gcc.mak.orig Wed Mar 24 22:40:12 2010
+++ build/tibs/compiler/gcc.mak Wed Apr 7 03:58:13 2010
@@ -3,7 +3,7 @@
.SUFFIXES: .c .cpp .o .lo .a .pc .pc.in
GCC.CC ?= gcc -c
-GCC.CFLAGS = -pipe -Wall \
+GCC.CFLAGS = -Wall \
$(GCC.CFLAGS.$(MODE)) $(GCC.CFLAGS.DEF) $(GCC.CFLAGS.INC) $(CFLAGS)
GCC.CFLAGS.DEF = $(CFLAGS.DEF)
GCC.CFLAGS.INC = $(if $(DIR.INCLUDE.C),-I$(subst :, -I,$(DIR.INCLUDE.C)))
@@ -11,7 +11,7 @@ ifneq ($(TARGET),windows)
GCC.CFLAGS.SHARED ?= -fPIC
endif
-GCC.CFLAGS.release = -s -O3 -fomit-frame-pointer -funroll-loops
+GCC.CFLAGS.release =
GCC.CFLAGS.debug = -D__DEBUG__ -g
ifeq ($(ARCH),arm)
@@ -77,7 +77,7 @@ endef
LINK.GCC.AR = $(GCC.AR) $(GCC.ARFLAGS) $@ $^
LINK.GCC.EXEC = $(GCC.LD) -o $@ $(GCC.LDFLAGS) $(LDFLAGS) $1 $^ $(GCC.LDFLAGS.LIBS) $(LDFLAGS.LIBS) $2
define LINK.GCC.SO.VER
- $(GCC.LD) -o $@.$(SHARED.$3) $(call GCC.LDFLAGS.SHARED,$(notdir $@).$(basename $(basename $(SHARED.$3))),$(dir $@)) $(GCC.LDFLAGS) $(LDFLAGS) $1 $^ $(GCC.LDFLAGS.LIBS) $(LDFLAGS.LIBS) $2
+ $(GCC.LD) -o $@.$(SHARED.$3) $(call GCC.LDFLAGS.SHARED,$(notdir $@).$(SHARED.$3),$(dir $@)) $(GCC.LDFLAGS) $(LDFLAGS) $1 $^ $(GCC.LDFLAGS.LIBS) $(LDFLAGS.LIBS) $2
ln -fs $(notdir $@.$(SHARED.$3)) $@.$(basename $(basename $(SHARED.$3)))
ln -fs $(notdir $@.$(basename $(basename $(SHARED.$3)))) $@
endef

View File

@ -1,18 +0,0 @@
$OpenBSD: patch-build_tibs_host_posix_mak,v 1.1 2010/09/16 10:05:20 sthen Exp $
--- build/tibs/host/posix.mak.orig Mon Mar 22 20:32:47 2010
+++ build/tibs/host/posix.mak Wed Apr 7 03:59:08 2010
@@ -5,12 +5,12 @@ SHELL := /bin/sh
# $1 - file, $2 - target dir, $3 - mode
define SINGLE.INSTALL
if [ ! -d $2 ]; then install -m 0755 -d $2; fi
- if [ -L $1 ]; then cp -d $1 $(patsubst %/,%,$2)/$(notdir $1); else install -m $3 $1 $(patsubst %/,%,$2)/$(notdir $1); fi
+ if [ -L $1 ]; then cp -RP $1 $(patsubst %/,%,$2)/$(notdir $1); else install -m $3 $1 $(patsubst %/,%,$2)/$(notdir $1); fi
endef
# $1 - directory, $2 - target dir, $3 - mode for files
define SINGLE.INSTALLDIR
if [ ! -d $2 ]; then install -m 0755 -d $2; fi
- cp -drP $1* $2
+ cp -RP $1* $2
find $2 -type f -print0 | xargs -0 chmod $3
endef

View File

@ -1,14 +0,0 @@
$OpenBSD: patch-configure,v 1.3 2013/10/26 07:39:19 brad Exp $
Remove GNU make check since its broken with newer versions.
--- configure.orig Sun Jan 27 11:51:06 2013
+++ configure Sat Oct 26 00:04:35 2013
@@ -45,7 +45,6 @@ if tibs.TARGET [0] == "windows":
}
# Check for tools
-tibs.check_program ("GNU Make", "make --version", ".*?([0-9\.]+).*", "3.81", True)
if tibs.check_program ("makedep", "makedep -V", ".*Version.*?([0-9\.]+).*", "0.1.0"):
tibs.add_config_mak ("MAKEDEP", "makedep")
makedep = "yes"

View File

@ -0,0 +1,25 @@
$OpenBSD: patch-docs_CMakeLists_txt,v 1.1 2015/07/05 12:03:34 zhuk Exp $
1. This directory is already covered by BUILD_DOC option, so
no reason to not to add "doc" target in build-by-default list;
2. Actually depend on configured file, CMake already takes care on
depending on source file;
3. No need for GLOB, we can simply use "INSTALL(DIRECTORY foo/"
syntax here.
--- docs/CMakeLists.txt.orig Sun Feb 12 15:19:39 2012
+++ docs/CMakeLists.txt Tue Feb 12 13:51:13 2013
@@ -12,12 +12,12 @@ CONFIGURE_FILE(doxyfile.in.cmake ${DOXYFILE} @ONLY)
# now build documentation
ADD_CUSTOM_TARGET(doc
+ ALL
COMMAND "${DOXYGEN_EXECUTABLE}"
- DEPENDS doxyfile.in.cmake manual-main.txt ../include/lensfun/lensfun.h.in
+ DEPENDS "${DOXYFILE}" manual-main.txt ../include/lensfun/lensfun.h.in
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
COMMENT "Building documentation with doxygen"
)
# install documentation
-FILE(GLOB doc_files "${CMAKE_DOC_OUT}/*.*")
-INSTALL(FILES ${doc_files} DESTINATION ${DOCDIR})
+INSTALL(DIRECTORY ${CMAKE_DOC_OUT}/ DESTINATION ${DOCDIR})

View File

@ -1,6 +1,7 @@
$OpenBSD: patch-libs_auxfun_image_cpp,v 1.3 2013/06/05 15:24:19 naddy Exp $
--- libs/auxfun/image.cpp.orig Tue May 22 03:55:37 2012
+++ libs/auxfun/image.cpp Wed Jun 5 09:12:06 2013
$OpenBSD: patch-libs_auxfun_image_cpp,v 1.4 2015/07/05 12:03:34 zhuk Exp $
Unbreak compilation.
--- libs/auxfun/image.cpp.orig Thu Aug 1 21:24:19 2013
+++ libs/auxfun/image.cpp Thu Aug 1 21:28:17 2013
@@ -7,6 +7,7 @@
#include <zlib.h>
#include <png.h>

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-libs_lensfun_lensfun_mak,v 1.2 2010/09/16 10:04:54 sthen Exp $
--- libs/lensfun/lensfun.mak.orig Wed Mar 24 01:00:22 2010
+++ libs/lensfun/lensfun.mak Wed Apr 7 04:00:06 2010
@@ -3,7 +3,7 @@ DESCRIPTION.lensfun = Photographic lens database libra
DIR.INCLUDE.C += :include/lensfun
TARGETS.lensfun = lensfun$L
SRC.lensfun$L := $(wildcard libs/lensfun/*.cpp libs/lensfun/$(TARGET)/*.cpp)
-SHARED.lensfun$L = $(if $(SHAREDLIBS),$(CONF_VERSION))
+SHARED.lensfun$L = $(LIBlensfun_VERSION)
LIBS.lensfun = $(TARGETS.regex)
SYSLIBS.lensfun = GLIB_20
INSTALL.TARGETS += lensfun

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-tibs_py,v 1.1 2010/09/16 10:05:20 sthen Exp $
--- tibs.py.orig Wed Mar 24 00:51:29 2010
+++ tibs.py Wed Apr 7 03:55:25 2010
@@ -38,7 +38,7 @@ PROJ = "Unknown"
# Version number (major.minor.release)
VERSION = "0.0.0"
-PREFIX = "/usr/local"
+PREFIX = "${TRUEPREFIX}"
BINDIR = None
DATADIR = None
SYSCONFDIR = None

View File

@ -1,6 +1,12 @@
@comment $OpenBSD: PLIST,v 1.5 2013/05/16 09:04:03 sthen Exp $
@comment $OpenBSD: PLIST,v 1.6 2015/07/05 12:03:34 zhuk Exp $
@bin bin/tmod
include/lensfun.h
@bin bin/trwxml
include/auxfun/
include/auxfun/image.h
include/auxfun/rgbpixel.h
include/lensfun/
include/lensfun/lensfun.h
@lib lib/libauxfun.so.${LIBauxfun_VERSION}
@lib lib/liblensfun.so.${LIBlensfun_VERSION}
lib/pkgconfig/lensfun.pc
share/doc/lensfun/
@ -22,8 +28,6 @@ share/doc/lensfun/manual/credits.html
share/doc/lensfun/manual/database.html
share/doc/lensfun/manual/dbformat.html
share/doc/lensfun/manual/dbsearch.html
share/doc/lensfun/manual/dir_417636b0694695296d5af3eb7f0630e3.html
share/doc/lensfun/manual/dir_d44c64559bbebec7f509842c48db8b23.html
share/doc/lensfun/manual/doxygen.css
share/doc/lensfun/manual/doxygen.png
share/doc/lensfun/manual/dynsections.js