pkgsrc/www/firefox/Makefile.common

228 lines
7.2 KiB
Makefile

# $NetBSD: Makefile.common,v 1.23 2007/08/23 20:27:19 heinz Exp $
MOZ_DIST_VER?= ${MOZ_VER}
DISTNAME?= mozilla-${MOZ_DIST_VER}-source
PKGNAME= ${MOZILLA}-${MOZ_VER}
MASTER_SITES?= ${MASTER_SITE_MOZILLA:=mozilla${MOZ_DIST_VER}/source/}
CATEGORIES= www
MAINTAINER= taya@NetBSD.org
HOMEPAGE?= http://www.mozilla.org/
FILESDIR= ${.CURDIR}/../../www/seamonkey/files
BUILD_DEPENDS+= zip>=2.3:../../archivers/zip
WRKSRC= ${WRKDIR}/mozilla
USE_LANGUAGES= c c++
USE_TOOLS+= autoconf213 gmake perl pkg-config
GNU_CONFIGURE= yes
INSTALL_TEMPLATES+= ${.CURDIR}/../../www/seamonkey/INSTALL
CONFIG_GUESS_OVERRIDE= build/autoconf/config.guess
CONFIG_GUESS_OVERRIDE+= nsprpub/build/autoconf/config.guess
CONFIG_GUESS_OVERRIDE+= directory/c-sdk/config/autoconf/config.guess
CONFIG_SUB_OVERRIDE= build/autoconf/config.sub
CONFIG_SUB_OVERRIDE+= nsprpub/build/autoconf/config.sub
CONFIG_SUB_OVERRIDE+= directory/c-sdk/config/autoconf/config.sub
CONFIG_STATUS_OVERRIDE= build/config.status
CONFIG_STATUS_OVERRIDE+= nsprpub/config.status
CONFIG_STATUS_OVERRIDE+= directory/c-sdk/config.status
# Some .pc files are filled in by the build process, so we can't fix the
# rpaths until this has happened.
PKGCONFIG_OVERRIDE_STAGE= post-build
PKGCONFIG_OVERRIDE= build/unix/*.pc
CONFIGURE_ARGS+= --disable-tests
CONFIGURE_ARGS+= --disable-pedantic
CONFIGURE_ARGS+= --with-system-jpeg=${BUILDLINK_PREFIX.jpeg:Q}
CONFIGURE_ARGS+= --with-system-png=${BUILDLINK_PREFIX.png:Q}
CONFIGURE_ARGS+= --enable-crypto
SHAREMODE?= 644
BUILD_TARGET= # empty
UNLIMIT_RESOURCES= datasize memorysize stacksize
.include "../../x11/xextproto/buildlink3.mk"
.include "../../x11/libXt/buildlink3.mk"
.include "../../x11/libXinerama/buildlink3.mk"
.include "../../x11/libXi/buildlink3.mk"
.include "../../graphics/jpeg/buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
.if defined(MOZILLA_USE_GTK2)
.include "../../net/libIDL/buildlink3.mk"
.include "../../x11/gtk2/buildlink3.mk"
.include "../../x11/libXext/buildlink3.mk"
CONFIGURE_ARGS+= --enable-default-toolkit=gtk2 --disable-gnomevfs
.else
.include "../../graphics/freetype2/buildlink3.mk"
.include "../../graphics/gdk-pixbuf/buildlink3.mk"
.include "../../net/ORBit/buildlink3.mk"
.include "../../x11/libXp/buildlink3.mk"
.include "../../x11/gtk/buildlink3.mk"
CONFIGURE_ARGS+= --enable-default-toolkit=gtk
.endif
# NetBSD-*-m68k builds, but "regchrome" dumps core.
NOT_FOR_PLATFORM= NetBSD-1.4.*-* NetBSD-*-m68k
MAKE_ENV+= MOZILLA_PKG_NAME=${MOZILLA:Q}
MOZ_LIBDIR= ${PREFIX}/lib/${MOZILLA}
MAKE_ENV+= LIBRUNPATH=${MOZ_LIBDIR:Q}
CONFIGURE_ENV+= LIBRUNPATH=${MOZ_LIBDIR:Q}
LDFLAGS+= ${COMPILER_RPATH_FLAG}${MOZ_LIBDIR}
.if defined(BUILD_SVG)
CONFIGURE_ARGS+= --enable-svg
CONFIGURE_ARGS+= --enable-svg-renderer=cairo
.include "../../graphics/cairo/buildlink3.mk"
CONFIGURE_ARGS+= --enable-system-cairo
.endif
.if defined(BUILD_CALENDAR)
CONFIGURE_ARGS+= --enable-calendar
.endif
.if defined(BUILD_MATHML)
CONFIGURE_ARGS+= --enable-mathml
.endif
.if (exists(${X11BASE}/include/X11/extensions/Xinerama.h) && \
exists(${X11BASE}/lib/libXinerama.so)) || ${X11_TYPE} != "native"
CONFIGURE_ARGS+= --enable-xinerama
.endif
# avoid creating a .mozilla directory in the users home
# directory
SCRIPTS_ENV+= HOME=${WRKDIR:Q}
PLIST_SUBST+= MOZILLA=${MOZILLA:Q}
PLIST_SUBST+= MOZILLA_BIN=${MOZILLA_BIN:Q}
FILES_SUBST+= MOZILLA=${MOZILLA:Q}
FILES_SUBST+= MOZILLA_BIN=${MOZILLA_BIN:Q}
.if ${OBJECT_FMT} == "ELF"
SO_SUFFIX= so
SCRIPTS_ENV+= MOZ_INSTALL_LIB=${INSTALL_PROGRAM:Q}
.elif ${OBJECT_FMT} == "Mach-O"
SO_SUFFIX= dylib
SCRIPTS_ENV+= MOZ_INSTALL_LIB=${INSTALL_LIB:Q}
.else
SO_SUFFIX= so.1.0
SCRIPTS_ENV+= MOZ_INSTALL_LIB=${INSTALL_PROGRAM:Q}
.endif
PLIST_SUBST+= SO_SUFFIX=${SO_SUFFIX:Q}
.if ${OPSYS} == "SunOS" && ${PKGSRC_COMPILER} == "gcc"
MAKEFLAGS+= NS_USE_GCC=YES
.endif
SCRIPTS_ENV+= OBJECT_FMT=${OBJECT_FMT:Q}
SCRIPTS_ENV+= PLIST_SRC=${PLIST_SRC:Q}
SCRIPTS_ENV+= SED=${SED:Q}
SCRIPTS_ENV+= RM=${RM:Q}
SCRIPTS_ENV+= EGREP=${EGREP:Q}
SCRIPTS_ENV+= CHOWN=${CHOWN:Q}
SCRIPTS_ENV+= CHGRP=${CHGRP:Q}
SCRIPTS_ENV+= CHMOD=${CHMOD:Q}
SCRIPTS_ENV+= BINOWN=${BINOWN:Q}
SCRIPTS_ENV+= BINGRP=${BINGRP:Q}
SCRIPTS_ENV+= BINMODE=${BINMODE:Q}
SCRIPTS_ENV+= SETENV=${SETENV:Q}
SCRIPTS_ENV+= MOZILLA=${MOZILLA:Q}
SCRIPTS_ENV+= MOZILLA_BIN=${MOZILLA_BIN:Q}
SCRIPTS_ENV+= SO_SUFFIX=${SO_SUFFIX:Q}
PTHREAD_OPTS+= native optional
.if (${OPSYS} == "NetBSD" && ${MACHINE_ARCH} == "x86_64")
GCC_REQD+= 3.4
.endif
.include "../../mk/compiler.mk"
.if !empty(CC_VERSION:Mgcc*)
COPTS?= -O2
.endif
CONFIGURE_ARGS+= --enable-optimize=${COPTS:Q}
XPTCFILES+= xptcinvoke_asm_sparc64_netbsd.s xptcstubs_asm_sparc64_netbsd.s
XPTCFILES+= xptcinvoke_sparc64_netbsd.cpp xptcstubs_sparc64_netbsd.cpp
.if ${OPSYS} == "Darwin"
BUILDLINK_PASSTHRU_DIRS+=/Developer
.endif
post-extract:
cd ${FILESDIR:Q} \
&& ${CP} ${XPTCFILES} ${WRKSRC:Q}/xpcom/reflect/xptcall/src/md/unix/
pre-configure:
cd ${WRKSRC:Q} && autoconf
cd ${WRKSRC:Q}/nsprpub && autoconf
cd ${WRKSRC:Q}/directory/c-sdk && autoconf
post-build:
${ECHO} skin,install,select,classic/1.0 >> \
${WRKSRC:Q}/dist/bin/chrome/installed-chrome.txt
${ECHO} locale,install,select,en-US >> \
${WRKSRC:Q}/dist/bin/chrome/installed-chrome.txt
# The exact set of libfreebl* libs built and installed depends on the
# operating system and platform. For example, on solaris/sparc you might
# get
# libfreebl_32fpu_3.so
# libfreebl_32int_3.so
# libfreebl_32int64_3.so
# and on others
# libfreebl3.so
# Since this has been a continual problem in many mozilla packages, just
# do that part dynamically rather than trying to always keep our conditionals
# up to date. Note that the exact set of libfreebl libs has had a history
# of changing even on minor releases.
PLIST_SRC= ${WRKDIR}/PLIST
pre-install:
cd ${WRKSRC:Q}/dist/bin && ls libfreebl*.${SO_SUFFIX} | ${SORT} | \
${AWK} '{print "lib/$${MOZILLA}/" $$0}' > ${WRKSRC}/PLIST.libfreebl
cd ${WRKSRC:Q}/dist/bin && ls libfreebl*.chk | ${SORT} | \
${AWK} '{print "lib/$${MOZILLA}/" $$0}' > ${WRKSRC}/PLIST.libfreebl.chk
${AWK} '/@comment libfreebl$$/ {exit} {print}' ${.CURDIR}/PLIST > ${PLIST_SRC}
${CAT} ${WRKSRC}/PLIST.libfreebl >> ${PLIST_SRC}
${AWK} '/@comment libfreebl.chk/ {exit} ok == 1 {print} /@comment libfreebl$$/ {ok=1}' \
${.CURDIR}/PLIST >> ${PLIST_SRC}
${CAT} ${WRKSRC}/PLIST.libfreebl.chk >> ${PLIST_SRC}
${AWK} 'ok == 1 {print} /@comment libfreebl.chk/ {ok=1}' \
${.CURDIR}/PLIST >> ${PLIST_SRC}
do-install:
${SETENV} ${SCRIPTS_ENV} DESTDIR=${DESTDIR} ${SH} ${FILESDIR:Q}/moz-install
post-install:
${FIND} ${DESTDIR:Q}${PREFIX:Q}/lib/${MOZILLA}/defaults -type f -exec ${CHMOD} u+w {} \;
.include "../../mk/pthread.buildlink3.mk"
.if defined(PTHREAD_TYPE) && (${PTHREAD_TYPE} == "none")
CONFIGURE_ARGS+= --without-pthreads
.else
CONFIGURE_ARGS+= --with-pthreads
.endif
.if ${MOZILLA_USE_XFT} == "YES"
CONFIGURE_ARGS+= --enable-xft
# pkgconfig defaults to a "build" dependency, which is what we want.
.include "../../x11/libXft/buildlink3.mk"
.endif
# Fix for firefox* packages.
SUBST_CLASSES+= pc
SUBST_STAGE.pc= post-extract
SUBST_FILES.pc= build/unix/*.pc.in
SUBST_SED.pc= -e 's|%includedir%|${PREFIX}/include/${MOZILLA}|g'
SUBST_SED.pc+= -e 's|%libdir%|${PREFIX}/lib/${MOZILLA}|g'
SUBST_MESSAGE.pc= Fixing pkgconfig files.
.include "../../www/seamonkey/options.mk"