Annotation of pkgsrc/pkgtools/pkg_install/Makefile, Revision 1.213
1.213 ! joerg 1: # $NetBSD: Makefile,v 1.212 2015/10/20 08:18:12 jperkin Exp $
1.4 hubertf 2:
1.58 schmonz 3: # Notes to package maintainers:
1.57 hubertf 4: #
1.58 schmonz 5: # Updating this package does not automatically necessitate bumping
6: # PKGTOOLS_REQD in bsd.pkg.mk. Do so if and only if there is a critical
7: # change in the pkg_* tools that pkgsrc relies on for proper operation.
1.57 hubertf 8:
1.202 obache 9: PKGNAME= pkg_install-${VERSION}
1.1 agc 10: CATEGORIES= pkgtools
11:
1.182 agc 12: MAINTAINER= agc@NetBSD.org
1.82 reed 13: HOMEPAGE= http://www.pkgsrc.org/
1.90 grant 14: COMMENT= Package management and administration tools for pkgsrc
1.163 wiz 15: LICENSE= modified-bsd
1.60 schmonz 16:
1.155 joerg 17: BOOTSTRAP_PKG= yes
1.164 joerg 18: SKIP_LICENSE_CHECK= yes
1.133 joerg 19:
1.132 adrianp 20: CONFLICTS+= audit-packages-[0-9]*
21:
1.115 rillig 22: GNU_CONFIGURE= yes
1.205 adam 23: CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
24: CONFIGURE_ARGS+= --with-pkgdbdir=${PKG_DBDIR}
1.113 jlam 25:
1.142 jlam 26: USE_FEATURES= nbcompat
27:
1.159 joerg 28: NBCOMPAT_CONFIGURE_ARGS+= --enable-bsd-getopt --enable-db
1.148 joerg 29:
1.121 erh 30: SKIP_AUDIT_PACKAGES= yes
1.122 rillig 31: NO_PKGTOOLS_REQD_CHECK= yes
32: PKG_PRESERVE= yes
1.144 joerg 33: CHECK_PERMS= no
1.1 agc 34:
1.97 jlam 35: # These are needed to solve a chicken-and-egg problem where pkgsrc uses
1.96 jlam 36: # newer features of pkg_install, but older NetBSD installations won't
37: # support them. In this case, we explicitly use the native GCC
38: # compiler to avoid problems with depending on pkgsrc GCC for building
1.128 jlam 39: # pkg_install.
1.117 jlam 40: #
1.147 joerg 41: # We also use the newly built pkg_{add,create,delete} since upgrading
1.195 riastrad 42: # from an older pkg_install might required features of the new
43: # program, provided that we are not cross-compiling. (XXX If we are
44: # cross-compiling, we should maybe have a host build dependency on
45: # ourselves...)
1.159 joerg 46: #
1.156 joerg 47: # Note that the definitions are only overriden for the phases that are
48: # supposed to use them. pkg_admin pmatch might be used when looking for
49: # dependencies. If that is ever changed in a incompatible way, this has to
50: # be rethought.
1.96 jlam 51: USE_NATIVE_GCC= yes
1.156 joerg 52:
1.196 obache 53: .include "../../mk/bsd.prefs.mk"
54:
1.203 ryoon 55: .if ${OS_VARIANT} == "SCOOSR5"
56: # SCO OpenServer 5.0.7/3.2's strings.h defines strcasecmp with
57: # "unsigned size_t". We cannot use -Werror for net/libfetch.
58: MAKE_FLAGS+= NOGCCERROR=yes
59: .endif
60:
1.195 riastrad 61: .if defined(_PKGSRC_BARRIER) && empty(USE_CROSS_COMPILE:M[yY][eE][sS])
1.147 joerg 62: PKG_ADD_CMD= ${WRKSRC}/add/pkg_add
63: PKG_CREATE_CMD= ${WRKSRC}/create/pkg_create
64: PKG_DELETE_CMD= ${WRKSRC}/delete/pkg_delete
1.201 richard 65: #
66: # Special case for dependency checking in 'non-bootstrap' builds:
67: # don't redefine 'pkg_info' if it already exists.
68: #
69: . if defined(PKG_INFO_CMD) && !exists(${PKG_INFO_CMD})
1.149 jlam 70: PKG_INFO_CMD= ${WRKSRC}/info/pkg_info
1.201 richard 71: . endif
1.154 he 72: .endif
1.89 grant 73:
1.139 joerg 74: CPPFLAGS+= -D_LARGEFILE_SOURCE -D_LARGE_FILES
75: CPPFLAGS+= -D_FILE_OFFSET_BITS=64
76:
1.100 tv 77: CPPFLAGS+= -DDEF_UMASK=${DEF_UMASK}
78:
1.212 jperkin 79: MAKE_ENV+= PKGSRC_MACHINE_ARCH=${MACHINE_ARCH}
1.205 adam 80: MAKE_ENV+= OPSYS=${OPSYS}
1.199 jperkin 81: MAKE_ENV+= CATMAN_SECTION_SUFFIX=${CATMAN_SECTION_SUFFIX:Q}
1.185 joerg 82: MAKE_ENV+= MANINSTALL=${MANINSTALL:Q}
1.91 grant 83:
1.92 jlam 84: PKG_DBDIR?= /var/db/pkg
1.132 adrianp 85: EGDIR= ${PREFIX}/share/examples/pkg_install
1.92 jlam 86:
1.205 adam 87: PLIST_SUBST+= PKG_DBDIR=${PKG_DBDIR}
1.117 jlam 88:
1.125 jlam 89: DEINSTALL_SRC= # empty
1.124 jlam 90: INSTALL_SRC= ${PKGDIR}/INSTALL
1.205 adam 91: FILES_SUBST+= PKG_DBDIR=${PKG_DBDIR} \
92: PKG_TOOLS_BIN=${PKG_TOOLS_BIN:Q} \
1.124 jlam 93: MKDIR=${MKDIR:Q}
1.205 adam 94: MESSAGE_SUBST+= PKGVULNDIR=${PKG_DBDIR} \
95: EGDIR=${EGDIR}
1.124 jlam 96:
1.193 wiz 97: .include "../../mk/compiler.mk"
98:
99: .if !empty(CC_VERSION:Mclang*)
100: MAKE_FLAGS+= ACTIVE_CC=clang
101: .endif
102:
1.172 joerg 103: VERSION!= ${AWK} '/PKGTOOLS_VERSION/ {print $$3}' \
1.58 schmonz 104: ${FILESDIR}/lib/version.h
1.78 jlam 105:
1.177 joerg 106: # raw format appeared in libarchive 2.8.
107: BUILDLINK_API_DEPENDS.libarchive+= libarchive>=2.8.0
1.152 joerg 108:
1.137 joerg 109: .include "../../archivers/bzip2/builtin.mk"
110: .include "../../archivers/libarchive/builtin.mk"
111: .include "../../devel/zlib/builtin.mk"
1.159 joerg 112: .include "../../security/openssl/builtin.mk"
113:
1.171 joerg 114: .include "options.mk"
115:
1.159 joerg 116: .if !empty(USE_BUILTIN.openssl:M[yY][eE][sS])
117: CONFIGURE_ARGS+= --with-ssl
118:
119: .include "../../security/openssl/buildlink3.mk"
120: .endif
1.137 joerg 121:
122: .if empty(USE_BUILTIN.bzip2:M[yY][eE][sS]) || \
123: empty(USE_BUILTIN.zlib:M[yY][eE][sS])
124: USE_BUILTIN.libarchive= no
125: .endif
126:
127: FILESDIR.bzip2?= ${.CURDIR}/../../archivers/bzip2/files
128: FILESDIR.libarchive?= ${.CURDIR}/../../archivers/libarchive/files
129: FILESDIR.zlib?= ${.CURDIR}/../../devel/zlib/files
1.150 joerg 130: FILESDIR.libfetch?= ${.CURDIR}/../../net/libfetch/files
1.209 jperkin 131: FILESDIR.netpgpverify?= ${.CURDIR}/../../security/netpgpverify/files
1.137 joerg 132:
133: .if empty(USE_BUILTIN.bzip2:M[yY][eE][sS])
134: CPPFLAGS+= -I${WRKDIR}/bzip2
135: LDFLAGS+= -L${WRKDIR}/bzip2
136: .endif
137: .if empty(USE_BUILTIN.zlib:M[yY][eE][sS])
138: CPPFLAGS+= -I${WRKDIR}/zlib
139: LDFLAGS+= -L${WRKDIR}/zlib
140: .endif
141: .if empty(USE_BUILTIN.libarchive:M[yY][eE][sS])
142: CPPFLAGS+= -I${WRKDIR}/libarchive/libarchive
143: LDFLAGS+= -L${WRKDIR}/libarchive/.libs
1.174 joerg 144:
1.186 jperkin 145: # Until we support pkgsrc openssl at bootstrap time, disable it completely
146: # if asked to avoid the builtin.
1.205 adam 147: . if empty(USE_BUILTIN.openssl:M[Yy][Ee][Ss])
1.213 ! joerg 148: LIBARCHIVE_CONFIGURE_ARGS+= --without-openssl
1.205 adam 149: . endif
1.186 jperkin 150:
1.205 adam 151: LIBARCHIVE_LIBS= ${SED} -n -e 's/^Libs.private://p' \
1.179 joerg 152: ${WRKDIR}/libarchive/build/pkgconfig/libarchive.pc 2>/dev/null || echo
153: LIBS+= ${LIBARCHIVE_LIBS:sh}
154:
1.208 joerg 155: CONFIG_GUESS_OVERRIDE+= ${WRKDIR}/libarchive/build/autoconf/config.guess \
156: ${WRKSRC}/config.guess
157: CONFIG_SUB_OVERRIDE+= ${WRKDIR}/libarchive/build/autoconf/config.sub \
158: ${WRKSRC}/config.sub
1.174 joerg 159:
1.192 obache 160: . if ${OPSYS} == "Cygwin"
1.191 obache 161: CPPFLAGS+= -DLIBARCHIVE_STATIC
162: . endif
163:
1.178 tron 164: . if ${OPSYS} == "Darwin"
165: # Make sure that the linker used our static library instead of the
166: # (outdated) dynamic library "/usr/lib/libarchive.dylib".
167: LDFLAGS+= -Wl,-search_paths_first
168: . endif
169:
1.205 adam 170: . if ${OPSYS} == "SunOS"
1.184 cheusov 171: # workaround for pkg/45491
172: CONFIGURE_ENV+= ac_cv_header_ext2fs_ext2_fs_h=no
1.205 adam 173: . endif
1.184 cheusov 174:
1.174 joerg 175: # Hack to make sure that the libarchive version is replaced
1.175 obache 176: pre-configure: config-guess-override config-sub-override
1.137 joerg 177: .endif
1.150 joerg 178: CPPFLAGS+= -I${WRKDIR}/libfetch
179: LDFLAGS+= -L${WRKDIR}/libfetch
1.209 jperkin 180: # Avoid duplicate and conflicting headers, pull in any we need
181: # directly with <netpgpgverify/*.h>
182: CPPFLAGS+= -I${WRKDIR}
183: LDFLAGS+= -L${WRKDIR}/netpgpverify
1.137 joerg 184:
1.179 joerg 185: CONFIGURE_ENV+= LIBS=${LIBS:Q}
186:
1.58 schmonz 187: do-extract:
1.107 tv 188: @${CP} -R ${FILESDIR} ${WRKSRC}
1.137 joerg 189: .if empty(USE_BUILTIN.bzip2:M[yY][eE][sS])
190: @${CP} -R ${FILESDIR.bzip2} ${WRKDIR}/bzip2
191: .endif
192: .if empty(USE_BUILTIN.zlib:M[yY][eE][sS])
193: @${CP} -R ${FILESDIR.zlib} ${WRKDIR}/zlib
194: .endif
195: .if empty(USE_BUILTIN.libarchive:M[yY][eE][sS])
196: @${CP} -R ${FILESDIR.libarchive} ${WRKDIR}/libarchive
197: .endif
1.150 joerg 198: @${CP} -R ${FILESDIR.libfetch} ${WRKDIR}/libfetch
1.209 jperkin 199: @${CP} -R ${FILESDIR.netpgpverify} ${WRKDIR}/netpgpverify
1.137 joerg 200:
201: pre-configure:
202: .if empty(USE_BUILTIN.bzip2:M[yY][eE][sS])
203: cd ${WRKDIR}/bzip2 && ${BUILD_MAKE_CMD} libbz2.a
204: .endif
205: .if empty(USE_BUILTIN.zlib:M[yY][eE][sS])
206: cd ${WRKDIR}/zlib && ${BUILD_MAKE_CMD} libz.a
207: .endif
208: .if empty(USE_BUILTIN.libarchive:M[yY][eE][sS])
1.205 adam 209: cd ${WRKDIR}/libarchive && ${SETENV} ${_CONFIGURE_SCRIPT_ENV} \
210: ${CONFIG_SHELL} ${CONFIG_SHELL_FLAGS} ./configure \
211: --disable-bsdcpio --disable-bsdtar --disable-shared \
212: --disable-dependency-tracking --without-expat \
213: --without-iconv --without-lzo2 --without-nettle \
214: --without-xml2 \
1.186 jperkin 215: ${LIBARCHIVE_CONFIGURE_ARGS}
1.137 joerg 216: cd ${WRKDIR}/libarchive && ${BUILD_MAKE_CMD}
217: .endif
1.207 jperkin 218: cd ${WRKDIR}/libfetch && ${TOUCH} fetch.cat3 && \
219: ${SETENV} ${MAKE_ENV} ${BSD_MAKE_ENV} \
1.151 joerg 220: ${MAKE_PROGRAM} ${MAKE_FLAGS} ${BUILD_MAKE_FLAGS} \
221: -f ${MAKE_FILE} depend all
1.209 jperkin 222: cd ${WRKDIR}/netpgpverify && \
223: ${SED} -e '/zlib/d' Makefile.lib.in >Makefile.in && \
1.211 jperkin 224: ${RM} -f bzlib.h zlib.h && \
1.210 jperkin 225: ${CONFIG_SHELL} ${CONFIG_SHELL_FLAGS} ./configure && \
226: ${SETENV} ${MAKE_ENV} ${BSD_MAKE_ENV} ${MAKE_PROGRAM} \
227: ${MAKE_FLAGS} ${BUILD_MAKE_FLAGS} -f ${MAKE_FILE} all
1.12 hubertf 228:
1.106 erh 229: # XXX Reverse the order that update does things since
230: # XXX we need pkg_delete built before we can deinstall.
231: # XXX This should probably be the default order for all packages.
232: update:
233: ${MAKE}
1.127 jlam 234: ${MAKE} deinstall _UPDATE_RUNNING=YES
1.118 jlam 235: ${MAKE} ${UPDATE_TARGET}
1.108 jklos 236: ${MAKE} clean
1.106 erh 237:
1.170 joerg 238: update-catpages:
239: for f in lib/pkgsrc.7 add/pkg_add.1 admin/pkg_admin.1 \
240: create/pkg_create.1 delete/pkg_delete.1 info/pkg_info.1 \
241: lib/pkg_summary.5 lib/pkgsrc.7; do \
242: nroff -mdoc ${FILESDIR}/$$f > \
243: ${FILESDIR}/$${f%%.[157]}.cat; \
244: done
245: nroff -mdoc ${FILESDIR}/lib/pkg_install.conf.5.in > \
246: ${FILESDIR}/lib/pkg_install.conf.cat.in
247:
1.1 agc 248: .include "../../mk/bsd.pkg.mk"
CVSweb <webmaster@jp.NetBSD.org>