usr/src/cmd/subversion/Makefile.sfw
author Jon Tibble <meths@btinternet.com>
Fri, 10 Feb 2012 16:19:42 +0000
branchoi_151a
changeset 114 b6d40d0a7b17
parent 100 0a3c3c0e0ff2
child 226 21c05f2041ca
permissions -rw-r--r--
Added tag oi_151a_prestable1 for changeset b1282e88c680

#
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# ident	"@(#)Makefile.sfw	1.16	09/10/21 SMI"

VER=subversion-1.6.5
VERPY26=subversion-1.6.5-py26
SVN_PACKAGES=SUNWsvn SUNWsvn-java SUNWsvn-perl SUNWsvn-python
SWIGPROG=$(ROOT)/usr/bin/swig
PERL=/usr/perl5/bin/perl
GSED=/usr/bin/gsed
TOP = $(SRC)/cmd/subversion
DESTDIR = $(TOP)/proto-$(MACH)

SVN_LDFLAGS=-R/usr/lib/svn:$(APR_USR_PREFIX)/lib:$(APR_UTIL_USR_PREFIX)/lib \
    -L$(ROOT)$(APR_USR_PREFIX)/lib \
    -L$(ROOT)$(APR_UTIL_USR_PREFIX)/lib \
    -L$(ROOT)/usr/lib \
    -M $(SRC)/cmd/mapfile_noexstk \
    -lsocket -lresolv -lnsl -lgen -z ignore

include ../Makefile.cmd
include $(SRC)/cmd/apache2/apache.build.env
include $(SRC)/cmd/apr/apr-1.3/apr.build.env
include $(SRC)/cmd/apr-util/apr-util-1.3/apr-util.build.env

PREFIX=/usr
PICFLAG = -KPIC -DPIC
COMPAT_VERSION=5
CFLAGS_GENERIC = -Xc -xc99=%all -features=extinl,extensions -xprefetch=auto
CFLAGS_GENERIC += -xbuiltin=%none -xnorunpath -xcsi -xinline=%auto
CFLAGS_GENERIC += -xustr=ascii_utf16_ushort -xF=%none -xthreadvar=%all
CFLAGS_GENERIC += -xspace -xldscope=symbolic -KPIC -mt -D_REENTRANT
CFLAGS_GENERIC += -D__EXTENSIONS__=1 -D_LARGEFILE_SOURCE
CFLAGS_GENERIC += -D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=600 -D_XPG6
CFLAGS_GENERIC += -D_POSIX_PTHREAD_SEMANTICS -D_POSIX_C_SOURCE=200112L
CFLAGS_GENERIC += -D__XOPEN_OR_POSIX -D_STRICT_STDC -D_STRICT_STDC__
CFLAGS_GENERIC += -D_STDC_C99 -D_ISOC99_SOURCE -D__C99FEATURES__ -DSOLARIS

CFLAGS_i386 = -m32 -xregs=no%frameptr -xarch=generic -xO3 -s
CFLAGS_sparc = -m32 -xmemalign=8i
CFLAGS_sparc += -xtarget=ultra2 -xarch=sparcvis -xchip=ultra2 -xO4 -s
CFLAGS = $(CFLAGS_GENERIC) $(CFLAGS_$(MACH))

CXXFLAGS_sparc = -xtarget=ultra2 -xarch=sparcvis -xchip=ultra2 
CXXFLAGS_sparc += -xbuiltin=%none -xmemalign=8i $(PICFLAG) -xO4 -s
CXXFLAGS_i386 = -xregs=no%frameptr -xO3 -s -xbuiltin=%none $(PICFLAG)

CCFLAGS_GENERIC = -features=except,rtti,export,extensions,nestedaccess,tmplife,tmplrefstatic
CCFLAGS_GENERIC += -instances=global
CCFLAGS_GENERIC += -template=geninlinefuncs
CCFLAGS_GENERIC += -verbose=template
CCFLAGS_GENERIC += $(CXXFLAGS_$(MACH))
CCFLAGS_GENERIC += -xlang=c99
CCFLAGS_GENERIC += -xbuiltin=%none
CCFLAGS_GENERIC += -xinline=
CCFLAGS_GENERIC += -xspace
CCFLAGS_GENERIC += -xustr=ascii_utf16_ushort
CCFLAGS_GENERIC += -norunpath
CCFLAGS_GENERIC += -z ignore $(PICFLAG)
CCFLAGS_GENERIC += -mt -D_REENTRANT -DNDEBUG
CCFLAGS_GENERIC += -D__EXTENSIONS__
CCFLAGS_GENERIC += -D_LARGEFILE_SOURCE
CCFLAGS_GENERIC += -D_FILE_OFFSET_BITS=64
CCFLAGS_GENERIC += -D_XOPEN_SOURCE=500
CCFLAGS_GENERIC += -D_XPG5
CCFLAGS_GENERIC += -D_POSIX_PTHREAD_SEMANTICS -s
CCFLAGS = $(CCFLAGS_GENERIC) $(CXXFLAGS_$(MACH))

CPPFLAGS = -I$(ROOT)/usr/include/neon -I$(ROOT)/usr/include

LDFLAGS = -L$(ROOT)/usr/lib -L/usr/lib -R/usr/lib
LDFLAGS += -m32 -s -z ignore

PYVER24=2.4
PYVER26=2.6
PYTHON24=/usr/bin/python$(PYVER24)
PYTHON26=/usr/bin/python$(PYVER26)
PYDIR24=$(ROOTLIB)/python$(PYVER24)
PYDIR26=$(ROOTLIB)/python$(PYVER26)
PYVENDORDIR24=$(PYDIR24)/vendor-packages
PYVENDORDIR26=$(PYDIR26)/vendor-packages
PYMODS=client core delta fs ra repos wc

all: $(VER)/config.status $(VERPY26)/config.status
	$(INCREFIXUP) $(VER)
	$(INCREFIXUP) $(VERPY26)
	( cd $(VER) ; \
	    $(GSED) -e "s#-I/usr/include/neon#-I$(ROOT)/usr/include/neon#g" Makefile > Makefile.sed ; \
	    cp -fp Makefile.sed Makefile ; \
	    touch -acm Makefile ; \
	    rm -f Makefile.sed )
	( cd $(VERPY26) ; \
	    $(GSED) -e "s#-I/usr/include/neon#-I$(ROOT)/usr/include/neon#g" Makefile > Makefile.sed ; \
	    cp -fp Makefile.sed Makefile ; \
	    touch -acm Makefile ; \
	    rm -f Makefile.sed )
	( cd $(VER) ; env - \
	    "PYVER=$(PYVER24)" \
	    "PYTHON=$(PYTHON24)" \
	    "PYDIR=$(PYDIR24)" \
	    "PYVENDORDIR=$(PYVENDORDIR24)" \
	    "PYMODS=$(PYMODS)" \
	    "LDFLAGS=$(LDFLAGS) $(SVN_LDFLAGS)" \
	    "LD_OPTIONS=$(LDFLAGS) $(SVN_LDFLAGS)" \
	    "SWIG_LDFLAGS=$(LDFLAGS) $(SVN_LDFLAGS)" \
	    CC=$(CC) CXX=$(CCC) \
	    "CPPFLAGS=$(CPPFLAGS)" \
	    "CFLAGS=$(CFLAGS)" \
	    "CXXFLAGS=$(CCFLAGS)" \
	    NEON_LIBS="-L$(ROOT)/usr/lib -lneon" \
	    MAKE=$(GMAKE) \
	    PATH=$(SFW_PATH) \
	    INSTALL=$(GINSTALL) \
	    $(GMAKE) all swig-py swig-pl javahl )
	( cd $(VERPY26) ; env - \
	    "PYVER=$(PYVER26)" \
	    "PYTHON=$(PYTHON26)" \
	    "PYDIR=$(PYDIR26)" \
	    "PYVENDORDIR=$(PYVENDORDIR26)" \
	    "PYMODS=$(PYMODS)" \
	    "LDFLAGS=$(LDFLAGS) $(SVN_LDFLAGS)" \
	    "LD_OPTIONS=$(LDFLAGS) $(SVN_LDFLAGS)" \
	    "SWIG_LDFLAGS=$(LDFLAGS) $(SVN_LDFLAGS)" \
	    CC=$(CC) CXX=$(CCC) \
	    "CPPFLAGS=$(CPPFLAGS)" \
	    "CFLAGS=$(CFLAGS)" \
	    "CXXFLAGS=$(CCFLAGS)" \
	    NEON_LIBS="-L$(ROOT)/usr/lib -lneon" \
	    MAKE=$(GMAKE) \
	    PATH=$(SFW_PATH) \
	    INSTALL=$(GINSTALL) \
	    $(GMAKE) all swig-py )
	@find . -name core -exec rm -f {} \;

_ARCH:sh=arch
PLARCH=$(_ARCH)-solaris-64int
PLVER=5.10.0
PLDIR=$(ROOT)/usr/perl5/$(PLVER)
PLVENDORDIR=$(ROOT)/usr/perl5/vendor_perl/$(PLVER)
PLVENDORARCHDIR=$(PLVENDORDIR)/$(PLARCH)
PLMODS= Fs Core Wc Client Repos Ra Delta

install: install_svn
	INSTDIR=$(DESTDIR) TOP=$(TOP) $(SH) ./install-sfw
	for pkg in $(SVN_PACKAGES) ; do \
	    $(SRC)/tools/protofix --pkg $$pkg --perm ; \
	done

install_svn: all .WAIT install_perl
	mkdir -p $(DESTDIR)
	( cd $(VER) ; \
	    env - "DESTDIR=$(DESTDIR)" \
	    "INSTALL=$(GINSTALL)" \
	    "MAKE=$(GMAKE)" \
	    "PYVER=$(PYVER24)" \
	    "PYTHON=$(PYTHON24)" \
	    "PYDIR=$(PYDIR24)" \
	    "PYVENDORDIR=$(PYVENDORDIR24)" \
	    "PYMODS=$(PYMODS)" \
	    $(GMAKE) DESTDIR=$(DESTDIR) \
	    INSTALL=$(GINSTALL) install install-lib \
	    install-swig-pl-lib install-swig-py install-javahl-lib \
	    install-bin install-docs )
	( cd $(VERPY26) ; \
	    env - "DESTDIR=$(DESTDIR)" \
	    "INSTALL=$(GINSTALL)" \
	    "MAKE=$(GMAKE)" \
	    "PYVER=$(PYVER26)" \
	    "PYTHON=$(PYTHON26)" \
	    "PYDIR=$(PYDIR26)" \
	    "PYVENDORDIR=$(PYVENDORDIR26)" \
	    "PYMODS=$(PYMODS)" \
	    $(GMAKE) DESTDIR=$(DESTDIR) \
	    INSTALL=$(GINSTALL) install-swig-py )
	( cd $(VER) ; \
	    env - "DESTDIR=$(DESTDIR)" \
	    "INSTALL=$(GINSTALL)" \
	    "MAKE=$(GMAKE)" \
	    $(GMAKE) DESTDIR=$(DESTDIR) \
	    INSTALL=$(GINSTALL) install-javahl )
	( cd $(VER) ; \
	    rm -f $(ROOTAPACHEMODS) ; \
	    env - "DESTDIR=$(DESTDIR)" \
	    "INSTALL=$(GINSTALL)" \
	    "MAKE=$(GMAKE)" \
	    $(GMAKE) DESTDIR=$(DESTDIR) \
	    INSTALL=$(GINSTALL) install-mods-shared )

install_perl:
	$(PERL) -MExtUtils::Install -e \
	    'install({@ARGV}, '\''0'\'', 0, '\''0'\'');' \
	  $(VER)/subversion/bindings/swig/perl/native/blib/lib $(PLVENDORDIR) \
	  $(VER)/subversion/bindings/swig/perl/native/blib/arch $(PLVENDORDIR)/$(PLARCH) \
	  $(VER)/subversion/bindings/swig/perl/native/blib/man3 $(PLDIR)/man/man3

$(VER)/config.status: $(VER)/configure
	( cd $(VER) ; env - \
	    "PYVER=$(PYVER24)" \
	    "PYTHON=$(PYTHON24)" \
	    "PYDIR=$(PYDIR24)" \
	    "PYVENDORDIR=$(PYVENDORDIR24)" \
	    "PYMODS=$(PYMODS)" \
	    "CC=$(CC)" \
	    "CXX=$(CCC)" \
	    "CPPFLAGS=$(CPPFLAGS)" \
	    "CFLAGS=$(CFLAGS)" \
	    "CXXFLAGS=$(CCFLAGS)" \
	    "LDFLAGS=$(LDFLAGS) $(SVN_LDFLAGS)" \
	    "SWIG=$(SWIGPROG)" \
	    "PERL=$(PERL)" \
	    "ROOT=$(ROOT)" \
	    "INSTALL=$(GINSTALL)" \
	    "PATH=$(SFW_PATH)" \
	    "MAKE=$(GMAKE)" \
	    "NEON_LIBS=-L$(ROOT)/usr/lib -lneon" \
	    ./configure \
	    --prefix=$(PREFIX) \
	    --libdir=$(PREFIX)/lib/svn \
	    --localstatedir=/var \
	    --enable-shared \
	    --disable-static \
	    --disable-libtool-lock \
	    --disable-neon-version-check \
	    --disable-experimental-libtool \
	    --with-apxs=$(ROOT)$(APACHE_USR_PREFIX)/bin/apxs \
	    --with-ssl \
	    --with-zlib=$(ROOT)/usr \
	    --with-jdk=$(JAVA_ROOT) \
	    --with-apr=$(ROOT)$(APR_USR_PREFIX) \
	    --with-apr-util=$(ROOT)$(APR_UTIL_USR_PREFIX) \
	    --enable-nls \
	    --disable-mod-activation \
	    --enable-javahl \
	    --disable-static \
	    --enable-shared \
	    --with-swig \
	    --with-neon=$(ROOT)/usr )

$(VERPY26)/config.status: $(VERPY26)/configure
	( cd $(VERPY26) ; env - \
	    "PYVER=$(PYVER26)" \
	    "PYTHON=$(PYTHON26)" \
	    "PYDIR=$(PYDIR26)" \
	    "PYVENDORDIR=$(PYVENDORDIR26)" \
	    "PYMODS=$(PYMODS)" \
	    "CC=$(CC)" \
	    "CXX=$(CCC)" \
	    "CPPFLAGS=$(CPPFLAGS)" \
	    "CFLAGS=$(CFLAGS)" \
	    "CXXFLAGS=$(CCFLAGS)" \
	    "LDFLAGS=$(LDFLAGS) $(SVN_LDFLAGS)" \
	    "SWIG=$(SWIGPROG)" \
	    "PERL=$(PERL)" \
	    "ROOT=$(ROOT)" \
	    "INSTALL=$(GINSTALL)" \
	    "PATH=$(SFW_PATH)" \
	    "MAKE=$(GMAKE)" \
	    "NEON_LIBS=-L$(ROOT)/usr/lib -lneon" \
	    ./configure \
	    --prefix=$(PREFIX) \
	    --libdir=$(PREFIX)/lib/svn \
	    --localstatedir=/var \
	    --enable-shared \
	    --disable-static \
	    --disable-libtool-lock \
	    --disable-neon-version-check \
	    --disable-experimental-libtool \
	    --with-apxs=$(ROOT)$(APACHE_USR_PREFIX)/bin/apxs \
	    --with-ssl \
	    --with-zlib=$(ROOT)/usr \
	    --with-jdk=$(JAVA_ROOT) \
	    --with-apr=$(ROOT)$(APR_USR_PREFIX) \
	    --with-apr-util=$(ROOT)$(APR_UTIL_USR_PREFIX) \
	    --enable-nls \
	    --disable-mod-activation \
	    --enable-javahl \
	    --disable-static \
	    --enable-shared \
	    --with-swig \
	    --with-neon=$(ROOT)/usr )

$(VER)/configure: $(VER).tar.gz
	gzip -dc $(VER).tar.gz | tar xopf -
	( cd $(VER) ; \
	    gpatch -p0 <../$(VER).patch )
	touch $(VER)/configure
	chmod 0755 $(VER)/configure
	chmod 0755 $(VER)
	find $(VER) -type d -exec chmod 0755 {} \;

$(VERPY26)/configure: $(VER).tar.gz
	mkdir -p tmp
	gzip -dc $(VER).tar.gz | ( cd tmp ; $(TAR) xopf - )
	mv tmp/$(VER) $(VERPY26)
	rm -rf tmp
	( cd $(VERPY26) ; \
	    gpatch -p0 <../$(VERPY26).patch )
	chmod 0755 $(VERPY26)/configure
	chmod 0755 $(VERPY26)
	find $(VERPY26) -type d -exec chmod 0755 {} \;

clean:
	-rm -rf $(VER) $(VERPY26) $(DESTDIR)

include ../Makefile.targ