pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Problems creating a new package ...



Matthew Grooms wrote:
Hello all,

I have a piece of software I'm trying to get to build using package source and am having a few issues trying to get it to work. Let me start by saying that if the correct dependencies are installed, the source compiles and builds without an issue. I have attached the makefile I am using. When I attempt to run make, the software is download and extracted. The cmake configure process also completes without error. But when make is run, I get strange errors during the compile ...

Scanning dependencies of target ike
[  1%] Building CXX object source/libike/CMakeFiles/ike.dir/libike.o
g++: cannot specify -o with -c or -S and multiple compilations

[wrapper.sh] note: The real command line, after the pkgsrc wrapper, was:
/usr/pkgsrc/security/ike/work/.gcc/bin/g++ -Dike_EXPORTS -fPIC -I/usr/pkgsrc/security/ike/work/ike/source -I/usr/pkgsrc/security/ike/work/ike/source/iked -I/usr/pkgsrc/security/ike/work/ike/source/libike -I/usr/pkgsrc/security/ike/work/ike/source/libip -D UNIX OPT_NATT QT_THREAD_SUPPORT -DQT_SHARED -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -D_REENTRANT -o source/libike/CMakeFiles/ike.dir/libike.o -c /usr/pkgsrc/security/ike/work/ike/source/libike/libike.cpp -I/usr/pkgsrc/security/ike/work/.buildlink/include -L/usr/pkgsrc/security/ike/work/.buildlink/lib

OPT_NATT isn't prefixed with "-D", but should be. The reason for the build failure was that _all_ other packages seemingly don't leave a space between the -D and the name to be defined. I've fixed it in mk/wrapper/arg-source revision 1.2.

------------------------------------------------------------------------

DISTNAME=               ike-2.0.1-beta-4
CATEGORIES=             security
MASTER_SITES=           http://www.shrew.net/vpn/
EXTRACT_SUFX=           .tbz2

MAINTAINER=             mgrooms%NetBSD.org@localhost
HOMEPAGE=               http://www.shrew.net/
COMMENT=                Shrew Soft IKE daemon and client tools

ONLY_FOR_PLATFORM=      NetBSD-[3-9].1-* Linux-2.[6-9].*-*

Please always add a comment _why_ ONLY_FOR_PLATFORM is needed.

WRKSRC=                 ${WRKDIR}/ike
BUILD_DEPENDS=          cmake>=2.4.*:../../devel/cmake
BUILD_DEPENDS+=         bison>=2.3:../../devel/bison

I prefer USE_TOOLS+=bison here.

USE_LANGUAGES=          c c++


The following should go into options.mk.

PKG_OPTIONS_VAR=        PKG_OPTIONS.ike
PKG_SUPPORTED_OPTIONS=  qtgui natt ldap debug
PKG_SUGGESTED_OPTIONS=  qtgui natt

.include "../../mk/bsd.options.mk"

CMAKE_ARGS+=            -DETCDIR=${PKG_SYSCONFDIR:Q}

.if !empty(PKG_OPTIONS:Mqtgui)
BUILDLINK_API_DEPENDS.qt3-libs?= qt3-libs>=3.3
CMAKE_ARGS+=            -DQTGUI=YES

What about adding this here:?

.include "../../x11/qt3/application.mk"

.endif

.if !empty(PKG_OPTIONS:Mnatt)
CMAKE_ARGS+=            -DNATT=YES
.endif

.if !empty(PKG_OPTIONS:Mldap)
BUILDLINK_API_DEPENDS.openldap-client?= openldap-client>=2.0
.include "../../databases/openldap-client/buildlink3.mk"
CMAKE_ARGS+=            -DLDAP=YES
.endif

.if !empty(PKG_OPTIONS:Mdebug)
CMAKE_ARGS+=            -DDEBUG=YES
.endif

do-configure:
        cd ${WRKSRC}; \
        cmake ${CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX=${PREFIX};

Remove the semicolon at the end, replace the semicolon in line 1 with &&. Add the necessary environment variables like in the original definition of do-configure.


do-build:
        cd ${WRKSRC}; \
        ${MAKE};

do-install:
        cd ${WRKSRC}; \
        ${MAKE} install;

Why do you override these targets? They seems to do the same as the default ones, only a bit more stub-like.

Roland



Home | Main Index | Thread Index | Old Index