[csw-devel] SF.net SVN: gar:[10119] csw/mgar/pkg/libxft2

theferret at users.sourceforge.net theferret at users.sourceforge.net
Tue Jun 8 03:33:16 CEST 2010


Revision: 10119
          http://gar.svn.sourceforge.net/gar/?rev=10119&view=rev
Author:   theferret
Date:     2010-06-08 01:33:16 +0000 (Tue, 08 Jun 2010)

Log Message:
-----------
libxft2: This version should hopefully work for amd64 as well

Modified Paths:
--------------
    csw/mgar/pkg/libxft2/trunk/Makefile
    csw/mgar/pkg/libxft2/trunk/pkginfo
    csw/mgar/pkg/libxft2/trunk/prototype.i386
    csw/mgar/pkg/libxft2/trunk/prototype.sparc

Added Paths:
-----------
    csw/mgar/pkg/libxft2/Makefile

Added: csw/mgar/pkg/libxft2/Makefile
===================================================================
--- csw/mgar/pkg/libxft2/Makefile	                        (rev 0)
+++ csw/mgar/pkg/libxft2/Makefile	2010-06-08 01:33:16 UTC (rev 10119)
@@ -0,0 +1,15 @@
+
+# This is somewhat of a "stub" Makefile, for 
+# directories managed by the "createpkg" TEMPLATES.
+#
+# Not all of targets listed here may actualy be supported by
+# the subdir in question. But they are a goal
+
+DEFAULT_DIR=trunk
+
+
+# The -C means you must use gmake, unfortunately.
+
+all package build garchive extract configure clean distclean reallyclean :
+	@echo Going to make $@ in $(DEFAULT_DIR)
+	$(MAKE) -C  $(DEFAULT_DIR) $@

Modified: csw/mgar/pkg/libxft2/trunk/Makefile
===================================================================
--- csw/mgar/pkg/libxft2/trunk/Makefile	2010-06-08 01:29:07 UTC (rev 10118)
+++ csw/mgar/pkg/libxft2/trunk/Makefile	2010-06-08 01:33:16 UTC (rev 10119)
@@ -1,85 +1,213 @@
-#This Makefile originally generated from a template under 
-# pkg/TEMPLATES/createpkg
-# You will most likely have to use GNU make to use it.
-# This is one specifically hacked to make building sparcv9 packages
-# easier.
-#
-# Steps to use:
-# 
-# 1. put your normal prototype  as prototype.i386
-# 2. copy to prototype.sparc and edit as appropriate
-# 3. search for "XXX" and replace with appropriate string
-#
-# 4. build your package with:
-#    "make", "make sparcv9", "make package"
+# This file is from TEMPLATES/createpkg/Makefile.lib
+# You MUST build this with gnu make, unfortunately.
+# Mainly just because of the ARCH expansion, but also for "?="
 
 
-#Uncomment one of these definitions. The -b invokation,
-# is suitable for use with small packages, where you want to have a few files
-# in your top level src directory. It is also suitable for
-# "relocateable" packages. see the createpkg docs for more details.
-#CREATEPKG=createpkg -b `pwd`
+# If you do NOT want to build 64bit libs, remove the $(ARCH)-64 from
+# the "all:" target.
+
+# If you DO want to, then leave it in, and also customize your
+#  the build/.stage-$(ARCH)-64.done    target(s),
+# PLUS, customize your prototype file(s) as needed
+# Dont forget to handle any 64bit pkg-config .pc files properly!!
+
+# Organization: variable defintions up top,
+# targets in second half.
+# Note that assignments with "?=" mean "assign if not already assigned.
+
+# Where do we keep local downloads of software src files
+ARCHIVEDIR ?= /home/src
+ARCHIVENAME ?= libXft-2.1.14.tar.gz
+EXTRACTPROG ?= /usr/sfw/bin/gtar zfx
+
+# Only use ONE here. The name is used for compat with 'gar'.
+MASTER_SITES ?= http://xorg.freedesktop.org/releases/X11R7.5/src/lib
+
+ARCH := $(shell /bin/uname -p)
+
+LDFLAGS_COMMON :=
+
+SRCDIR= build/*
+
+# DO NOT specify the arch-64 stuff such as -m64 here.
+# the individual targets will do that.
+
+CFLAGS_COMMON   ?= -mt -xnorunpath -xO2
+CXXFLAGS_COMMON ?= -mt -norunpath  -xO2
+CFLAGS_sparc    ?= -xarch=v8
+CFLAGS_i386     ?= -xarch=i386
+
+# Keep this arch-neutral if possible. add arch-specific tweaks
+# to arch-specific target
+CONFIGURE=./configure --prefix=/opt/csw --enable-static=no
+
+CONFIGURE_64_sparc= --libexecdir=/opt/csw/libexec/sparcv9
+CONFIGURE_64_i386= --libexecdir=/opt/csw/libexec/amd64
+
+CONFIGURE_64_EXTRAS:= --libdir=/opt/csw/lib/64 $(CONFIGURE_64_$(ARCH))
+
+
+
 CREATEPKG=createpkg -r `pwd`/build/*/cswstage
 
-## hax for sparcv9
-RAWLIB=libXft.so.2.1.13
 
+all:	$(ARCH)-32 build/.stage1 $(ARCH)-64 package
 
-BUILDDIR=build/*
+# ARCH-XX handles configure, build, and stage for its own combo
+# 
 
+EXTRACTPROG ?= /bin/echo ERROR: need to set EXTRACTPROG ; exit 1 ;
 
 
-STDFILES=pkginfo copyright prototype
-FILES=
 
-all:	build
+extract:
+	test -d build || mkdir build
+	@if test -f  $(ARCHIVEDIR)/$(ARCHIVENAME) ; then \
+		echo Extracting $(ARCHIVENAME) under build dir... ;\
+		( cd build && $(EXTRACTPROG) $(ARCHIVEDIR)/$(ARCHIVENAME) ) ; \
+	else echo Cannot extract - $(ARCHIVEDIR)/$(ARCHIVENAME) does not exist ;\
+		exit 1; \
+	fi
+	
 
+clean distclean:
+	@echo Calling $@ in $(SRCDIR)
+	$(MAKE) -C $(SRCDIR) $@
 
-build:	build/.config.done
-	(cd $(BUILDDIR) ; \
-	$(MAKE) ; \
-	stagepkg  )
+# This is a bit of a hack.. it does a "make clean", 
+# only when we're between 32bit and 64bit builds, when doing "make all".
+# Once we're IN the 64bit builds, it should not be automatically called.
+build/.stage1:
+	@echo Doing inter 32-64 bit cleanup
+	$(MAKE) -C $(SRCDIR) distclean
+	touch $@
+	
 
+reallyclean:	distclean
+	@echo Removing any milestone files in build as well...
+	@rm -f build/.??*
+	@echo '(However, leaving src tree intact, with any patches in it)'
+	@echo '(If you want, you could rm -r build, then make extract once more)'
 
-# dummy target for configure
-build/.config.done:
-	@echo Configuring with:
-	@echo CC=$(CC) $(CFLAGS)
-	@echo CXX=$(CXX) $(CXXFLAGS)
-	(cd $(BUILDDIR) ; \
-	test -f ../../patchfile.preconf && \
-		gpatch -p0 <../../patchfile.preconf ; \
-	./configure --prefix=/opt/csw --disable-static ; \
-	if test -f ../../patchfile.postconf ; then \
-                 gpatch -p0 <../../patchfile.postconf ; fi)
-	touch build/.config.done
+garchive:
+	@echo Call the fetch target instead: it does the same thing.
 
 
-# I tried depending this on   $(BUILDDIR)/config.log  but that didnt stick
-configure:	build/.config.done
+# Downloads the source code to the common ARCHIVEDIR
+fetch:	$(ARCHIVEDIR)/$(ARCHIVENAME)
+	@echo fetch done
 
-sparcv9:
-	(cd $(BUILDDIR)/src ; \
-	gmake clean;  \
-	LD_OPTIONS="" gmake CFLAGS='-xstrconst -fast -xarch=v9' \
-	  LDFLAGS='-R/opt/csw/lib/sparcv9 -L/opt/csw/lib/sparcv9'  ; \
-	  strip .libs/$(RAWLIB); \
-	  cp .libs/$(RAWLIB) ../cswstage ; cd .. ;\
-	  sed 's:libdir=.*:libdir=/opt/csw/lib/sparcv9:' xft.pc>cswstage/xft.pc.sparcv9 ; \
-	echo sparcv9 build done  )
+$(ARCHIVEDIR)/$(ARCHIVENAME):
+	wget -P $(ARCHIVEDIR) $(MASTER_SITES)/$(ARCHIVENAME)
 
+patch:
+	@echo patch: patching is handled automatically as part of the configure phase.
 
-package:	$(STDFILE) $(FILES)
+package:
 	$(CREATEPKG)
 
 
+# split out generic $(ARCH) sections to platform-specific sections if needed.
+# but it usually should not be neccessary
 
-pkgclean:
-	rm -f *.pkg.gz package
 
-clean:	pkgclean
-	cd $(BUILDDIR) && make clean
+$(ARCH)-32 ::   configure-$(ARCH)-32 build-$(ARCH)-32 stage-$(ARCH)-32
+	@echo Completed $(ARCH)-32 configure, build and stage
+	touch build/.$(ARCH)-32.done
 
-reallyclean:	clean
-	rm -f $BUILDDIR/config.log $BUILDDIR/config.cache $BUILDDIR/config.status
-	rm -f build/.config.done	
+
+$(ARCH)-64 ::  stage-$(ARCH)-32 configure-$(ARCH)-64 build-$(ARCH)-64 stage-$(ARCH)-64
+	@echo Completed $@ configure, build and stage
+	touch build/.$(ARCH)-64.done
+
+build/.$(ARCH)-32.done:	$(ARCH)-32
+
+build/.$(ARCH)-64.done:	$(ARCH)-64
+
+
+# Since we share the same src tree, we should only need to
+# pre-configure patching one time for all.
+build/.patch-preconf.done:
+	if test -f patchfile.preconf ; then \
+	 gpatch -d $(SRCDIR) -p0  <patchfile.preconf ; fi
+	touch $@
+
+
+#Note: I WANT to use LDFLAGS=-R$$ORIGIN, but stupid libtool
+# wont allow it! so force it at build time
+build/.configure-$(ARCH)-32.done:	build/.patch-preconf.done
+	@echo handling $@ target
+	(cd $(SRCDIR) ; \
+	  CFLAGS="$(CFLAGS_COMMON) $(CFLAGS_$(ARCH))" \
+	  CXXFLAGS="$(CXXFLAGS_COMMON)" \
+	  LDFLAGS='-R/opt/csw/lib -L/opt/csw/lib' \
+	  $(CONFIGURE) )
+	if test -f patchfile.postconf ; then \
+	 gpatch -d $(SRCDIR) -p0  <patchfile.postconf ; fi
+	touch $@
+
+build/.configure-$(ARCH)-64.done:	build/.patch-preconf.done
+	if test "$(ARCH)" = "i386" -a "`uname -r`" != "5.10" ; then \
+		echo Error: do 64bit for i386 on sol19 only ; exit 1 ; fi
+	@echo handling $@ target
+	(cd $(SRCDIR) ; \
+	  CFLAGS="$(CFLAGS_COMMON) -m64"  \
+	  CXXFLAGS="$(CXXFLAGS_COMMON) -m64" \
+	  LDFLAGS='-R/opt/csw/lib/sparcv9 -L/opt/csw/lib/sparcv9' \
+	  PKG_CONFIG_PATH=/opt/csw/lib/64 \
+	  $(CONFIGURE) $(CONFIGURE_64_EXTRAS)  )
+	if test -f patchfile.postconf ; then \
+	 gpatch -d $(SRCDIR) -p0  <patchfile.postconf ; fi
+	touch $@
+
+
+# See note about LDFLAGS higher up	
+build/.build-$(ARCH)-32.done build/.build-$(ARCH)-64.done:
+	@echo handling $@ target
+	LD_OPTIONS='-R$$ORIGIN' $(MAKE) -C $(SRCDIR) $(MFLAGS)
+	touch $@
+
+
+
+## NOTE: This is a DESTRUCTIVE target build!!
+## 'stagepkg'  will destroy any prior "cswstage" directory!!!
+## So, we remove all 64bit milestones
+build/.stage-$(ARCH)-32.done:
+	@echo Handling stage of $(ARCH)-32
+	(cd $(SRCDIR) ; MAKE=gmake stagepkg)
+	@rm -f build/.*64.done
+	touch $@
+
+
+# Note: This is the tricky bit. we cannot just call 
+#  "stagepkg": we dont usually want EVERYTHING; just the
+# libs that are rebuilt in 64bit, and we need them to go to
+# the subdirs, not the regular place!
+# SOME things, will have a clean libdir, and respect --libdir,
+# and do the right thing easily. However, many will not!
+# SO, odds are you'll have to write a customized target
+build/.stage-$(ARCH)-64.done:	$(SRCDIR)/cswstage
+	@echo ""
+	@echo debug: Using generic stage-64 routines
+	@echo relying on customized prototype file
+	@(cd $(SRCDIR)/*/.libs;  tar cf - lib*.so.*.*.* ) | (cd $(SRCDIR)/cswstage ; tar xf -)
+	@(cd $(SRCDIR); cp *.pc cswstage)
+	@echo ""
+	touch $@
+
+
+
+#These are the easy-to-type targets. They just trigger the real ones.
+configure-$(ARCH)-32:	build/.configure-$(ARCH)-32.done
+	@echo $@ done
+build-$(ARCH)-32:	build/.build-$(ARCH)-32.done
+	@echo $@ done
+stage-$(ARCH)-32:	build/.stage-$(ARCH)-32.done
+	@echo $@ done
+configure-$(ARCH)-64:	build/.configure-$(ARCH)-64.done
+	@echo $@ done
+build-$(ARCH)-64:	build/.build-$(ARCH)-64.done
+	@echo $@ done
+stage-$(ARCH)-64:	build/.stage-$(ARCH)-64.done
+	@echo $@ done
+

Modified: csw/mgar/pkg/libxft2/trunk/pkginfo
===================================================================
--- csw/mgar/pkg/libxft2/trunk/pkginfo	2010-06-08 01:29:07 UTC (rev 10118)
+++ csw/mgar/pkg/libxft2/trunk/pkginfo	2010-06-08 01:33:16 UTC (rev 10119)
@@ -1,6 +1,6 @@
 PKG=CSWlibxft2
 NAME=libxft2 - A client-side font API for X applications
-VERSION=2.1.14,REV=2010.05.30
+VERSION=2.1.14,REV=2010.06.07
 CATEGORY=application
 VENDOR=http://xorg.freedesktop.org/releases/X11R7.5/src/lib/ packaged for CSW by Philip Brown
 HOTLINE=http://www.opencsw.org/bugtrack/

Modified: csw/mgar/pkg/libxft2/trunk/prototype.i386
===================================================================
--- csw/mgar/pkg/libxft2/trunk/prototype.i386	2010-06-08 01:29:07 UTC (rev 10118)
+++ csw/mgar/pkg/libxft2/trunk/prototype.i386	2010-06-08 01:33:16 UTC (rev 10119)
@@ -10,9 +10,9 @@
 d none /opt/csw/share/man/man3 0755 root bin
 f none /opt/csw/share/man/man3/Xft.3 0644 root bin
 d none /opt/csw/lib 0755 root bin
-s none /opt/csw/lib/libXft.so=libXft.so.2.1.13
 d none /opt/csw/lib/pkgconfig 0755 root bin
 f none /opt/csw/lib/pkgconfig/xft.pc 0644 root bin
+s none /opt/csw/lib/libXft.so=libXft.so.2.1.13
 s none /opt/csw/lib/libXft.so.2=libXft.so.2.1.13
 f none /opt/csw/lib/libXft.so.2.1.13 0755 root bin
 d none /opt/csw/include 0755 root bin
@@ -20,3 +20,8 @@
 d none /opt/csw/include/X11/Xft 0755 root bin
 f none /opt/csw/include/X11/Xft/XftCompat.h 0644 root bin
 f none /opt/csw/include/X11/Xft/Xft.h 0644 root bin
+d none /opt/csw/lib/amd64/pkgconfig 0755 root bin
+f none /opt/csw/lib/amd64/pkgconfig/xft.pc=xft.pc 0644 root bin
+s none /opt/csw/lib/amd64/libXft.so=libXft.so.2.1.13
+s none /opt/csw/lib/amd64/libXft.so.2=libXft.so.2.1.13
+f none /opt/csw/lib/amd64/libXft.so.2.1.13=libXft.so.2.1.13 0755 root bin

Modified: csw/mgar/pkg/libxft2/trunk/prototype.sparc
===================================================================
--- csw/mgar/pkg/libxft2/trunk/prototype.sparc	2010-06-08 01:29:07 UTC (rev 10118)
+++ csw/mgar/pkg/libxft2/trunk/prototype.sparc	2010-06-08 01:33:16 UTC (rev 10119)
@@ -21,7 +21,7 @@
 f none /opt/csw/include/X11/Xft/XftCompat.h 0644 root bin
 f none /opt/csw/include/X11/Xft/Xft.h 0644 root bin
 d none /opt/csw/lib/sparcv9/pkgconfig 0755 root bin
-f none /opt/csw/lib/sparcv9/pkgconfig/xft.pc=xft.pc.sparcv9 0644 root bin
-s none /opt/csw/lib/sparcv9/libXft.so=lib/sparcv9Xft.so.2.1.13
-s none /opt/csw/lib/sparcv9/libXft.so.2=lib/sparcv9Xft.so.2.1.13
+f none /opt/csw/lib/sparcv9/pkgconfig/xft.pc=xft.pc 0644 root bin
+s none /opt/csw/lib/sparcv9/libXft.so=libXft.so.2.1.13
+s none /opt/csw/lib/sparcv9/libXft.so.2=libXft.so.2.1.13
 f none /opt/csw/lib/sparcv9/libXft.so.2.1.13=libXft.so.2.1.13 0755 root bin


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.


More information about the devel mailing list