[csw-devel] SF.net SVN: gar:[2471] csw/mgar/gar/v2
dmichelsen at users.sourceforge.net
dmichelsen at users.sourceforge.net
Sun Dec 7 17:45:33 CET 2008
Revision: 2471
http://gar.svn.sourceforge.net/gar/?rev=2471&view=rev
Author: dmichelsen
Date: 2008-12-07 16:45:33 +0000 (Sun, 07 Dec 2008)
Log Message:
-----------
mGAR v2: Adjust ISA installation pathes and other fixes
Modified Paths:
--------------
csw/mgar/gar/v2/gar.conf.mk
csw/mgar/gar/v2/gar.mk
csw/mgar/gar/v2/gar.pkg.mk
Modified: csw/mgar/gar/v2/gar.conf.mk
===================================================================
--- csw/mgar/gar/v2/gar.conf.mk 2008-12-07 16:35:37 UTC (rev 2470)
+++ csw/mgar/gar/v2/gar.conf.mk 2008-12-07 16:45:33 UTC (rev 2471)
@@ -17,7 +17,6 @@
DOWNLOADDIR ?= download
PARTIALDIR ?= $(DOWNLOADDIR)/partial
WORKROOTDIR ?= work
-#WORKDIR ?= $(WORKROOTDIR)/build-$(ISA)
WORKDIR ?= $(WORKROOTDIR)/build-$(MODULATION)
COOKIEROOTDIR ?= cookies
COOKIEDIR ?= $(COOKIEROOTDIR)/$(MODULATION)
@@ -31,8 +30,8 @@
LOGDIR ?= log
# Outbound proxies
-http_proxy ?= http://svn:8080
-ftp_proxy ?= http://svn:8080
+http_proxy ?=
+ftp_proxy ?=
export http_proxy ftp_proxy
# Don't do full-dependency builds by default
@@ -41,10 +40,10 @@
# A directory containing cached files. It can be created
# manually, or with 'make garchive' once you've started
# downloading required files (say with 'make paranoid-checksum'.
-GARCHIVEDIR ?= /export/medusa/src
+GARCHIVEDIR ?= /home/src
# Space separated list of paths to search for DISTFILES.
-GARCHIVEPATH ?= /export/medusa/src
+GARCHIVEPATH ?= $(GARCHIVEDIR)
# Select compiler
# GARCOMPILER can be either GNU/SUN which selects the default
@@ -78,30 +77,34 @@
# These are the standard directory name variables from all GNU
# makefiles. They're also used by autoconf, and can be adapted
# for a variety of build systems.
-BUILD_PREFIX ?= /opt/csw
+BUILD_PREFIX ?= /opt/csw
-prefix ?= $(BUILD_PREFIX)
-exec_prefix ?= $(prefix)
-bindir ?= $(exec_prefix)/bin
-gnudir ?= $(exec_prefix)/gnu
-sbindir ?= $(exec_prefix)/sbin
-libexecdir ?= $(exec_prefix)/libexec
-datadir ?= $(prefix)/share
-sysconfdir ?= $(prefix)/etc
-sharedstatedir ?= $(prefix)/share
-localstatedir ?= $(prefix)/var
-libdir ?= $(exec_prefix)/lib
-infodir ?= $(sharedstatedir)/info
-lispdir ?= $(sharedstatedir)/emacs/site-lisp
-includedir ?= $(prefix)/include
-mandir ?= $(sharedstatedir)/man
-docdir ?= $(sharedstatedir)/doc
-sourcedir ?= $(prefix)/src
-licensedir ?= $(prefix)/licenses
-sharedperl ?= $(sharedstatedir)/perl
-perllib ?= $(libdir)/perl
-perlcswlib ?= $(perllib)/csw
-perlpackroot ?= $(perlcswlib)/auto
+prefix ?= $(BUILD_PREFIX)
+exec_prefix ?= $(prefix)
+bindir_install ?= $(exec_prefix)/bin
+bindir ?= $(abspath $(bindir_install)/$(MM_BINDIR))
+gnudir ?= $(exec_prefix)/gnu
+sbindir_install ?= $(exec_prefix)/sbin
+sbindir ?= $(abspath $(sbindir_install)/$(MM_BINDIR))
+libexecdir_install ?= $(exec_prefix)/libexec
+libexecdir ?= $(abspath $(libexecdir_install)/$(MM_BINDIR))
+datadir ?= $(prefix)/share
+sysconfdir ?= $(prefix)/etc
+sharedstatedir ?= $(prefix)/share
+localstatedir ?= $(prefix)/var
+libdir_install ?= $(exec_prefix)/lib
+libdir ?= $(abspath $(libdir_install)/$(MM_LIBDIR))
+infodir ?= $(sharedstatedir)/info
+lispdir ?= $(sharedstatedir)/emacs/site-lisp
+includedir ?= $(prefix)/include
+mandir ?= $(sharedstatedir)/man
+docdir ?= $(sharedstatedir)/doc
+sourcedir ?= $(prefix)/src
+licensedir ?= $(prefix)/licenses
+sharedperl ?= $(sharedstatedir)/perl
+perllib ?= $(libdir)/perl
+perlcswlib ?= $(perllib)/csw
+perlpackroot ?= $(perlcswlib)/auto
# DESTDIR is used at INSTALL TIME ONLY to determine what the
# filesystem root should be.
@@ -415,14 +418,16 @@
# the links 32 and 64.
ifeq ($(origin LINKER_FLAGS), undefined)
ifdef NOISALIST
-LINKER_FLAGS = $(foreach ELIB,$(libdir) $(EXTRA_LIB),-L$(abspath $(ELIB)/$(MM_LIBDIR)) -R$(abspath $(ELIB)/$(MM_LIBDIR))
+LINKER_FLAGS = $(foreach ELIB,$(libdir_install) $(EXTRA_LIB),-L$(abspath $(ELIB)/$(MM_LIBDIR)) -R$(abspath $(ELIB)/$(MM_LIBDIR))
else
# If we use $ISALIST it is a good idea to also add $MM_LIBDIR as there
# may not be a subdirectory for the 32-bit standard case (this would normally
# be a symlink of the form lib/sparcv8 -> . and lib/i386 -> .). This is most likely
# the case for libraries in $(EXTRA_LIBS) for which no links generated in CSWcommon.
-LINKER_FLAGS = $(foreach ELIB,$(libdir) $(EXTRA_LIB),-L$(abspath $(ELIB)/$(MM_LIBDIR)) -R$(ELIB)/\\\\\\\$$\$$ISALIST -R$(abspath $(ELIB)/$(MM_LIBDIR)))
-#LINKER_FLAGS = $(foreach ELIB,$(libdir) $(EXTRA_LIB),-L$(abspath $(ELIB)/$(MM_LIBDIR)) -R'$(abspath $(ELIB)/\$$ISALIST)' -R$(abspath $(ELIB)/$(MM_LIBDIR)))
+# The quoting of $ISALIST is unfortunately dependend on how often the linker flags
+# are expanded until execution. The definition here is suitable for autotools.
+# For other buildtools it may be suitable to add definitions with other quotings.
+LINKER_FLAGS = $(foreach ELIB,$(libdir_install) $(EXTRA_LIB),-L$(abspath $(ELIB)/$(MM_LIBDIR)) -R$(ELIB)/\\\\\\\$$\$$ISALIST -R$(abspath $(ELIB)/$(MM_LIBDIR)))
endif
endif
@@ -454,12 +459,11 @@
# 1. Make sure everything works fine for SOS12
# 2. Allow us to use programs we just built. This is a bit complicated,
# but we want PATH to be a recursive variable, or 'gmake isaenv' won't work
-PATH = $(if $(filter SOS12,$(GARCOMPILER)),$(abspath $(GARBIN)/sos12-wrappers):)$(if $(IGNORE_DESTDIR),,$(abspath $(DESTDIR)$(bindir)/$(MM_BINDIR)):$(DESTDIR)$(bindir):$(abspath $(DESTDIR)$(sbindir)/$(MM_BINDIR)):$(DESTDIR)$(sbindir):)$(abspath $(bindir)/$(MM_BINDIR)):$(bindir):$(abspath $(sbindir)/$(MM_BINDIR)):$(sbindir):$(CC_HOME)/bin:$(abspath $(GARBIN)):/usr/bin:/usr/sbin:/usr/java/bin:/usr/ccs/bin
+PATH = $(if $(filter SOS12,$(GARCOMPILER)),$(abspath $(GARBIN)/sos12-wrappers):)$(if $(IGNORE_DESTDIR),,$(abspath $(DESTDIR)$(bindir_install)/$(MM_BINDIR)):$(DESTDIR)$(bindir_install):$(abspath $(DESTDIR)$(sbindir_install)/$(MM_BINDIR)):$(DESTDIR)$(sbindir_install):)$(abspath $(bindir_install)/$(MM_BINDIR)):$(bindir_install):$(abspath $(sbindir_install)/$(MM_BINDIR)):$(sbindir_install):$(CC_HOME)/bin:$(abspath $(GARBIN)):/usr/bin:/usr/sbin:/usr/java/bin:/usr/ccs/bin
# This is for foo-config chaos
-#PKG_CONFIG_PATH := $(abspath $(libdir)/$(MM_LIBDIR)/pkgconfig):$(libdir)/pkgconfig:$(PKG_CONFIG_PATH)
-PKG_CONFIG_DIRS ?= $(libdir) $(EXTRA_PKG_CONFIG_DIRS)
-PKG_CONFIG_PATH ?= $(foreach D,$(PKG_CONFIG_DIRS),$(abspath $D/$(MM_LIBDIR)/pkgconfig))
+PKG_CONFIG_DIRS ?= $(libdir_install) $(EXTRA_PKG_CONFIG_DIRS)
+PKG_CONFIG_PATH ?= $(call MAKEPATH,$(foreach D,$(PKG_CONFIG_DIRS),$(abspath $D/$(MM_LIBDIR)/pkgconfig)) $(EXTRA_PKGCONFIG_PATH))
#
# Mirror Sites
@@ -521,6 +525,9 @@
COMMON_EXPORTS ?= $(DIRECTORY_EXPORTS) $(COMPILER_EXPORTS) $(GARPKG_EXPORTS) $(EXTRA_COMMON_EXPORTS)
+# LD_OPTIONS = $(LINKER_FLAGS)
+# COMMON_EXPORTS += LD_OPTIONS
+
CONFIGURE_EXPORTS ?= $(COMMON_EXPORTS) $(EXTRA_CONFIGURE_EXPORTS) PKG_CONFIG_PATH DESTDIR
BUILD_EXPORTS ?= $(COMMON_EXPORTS) $(EXTRA_BUILD_EXPORTS)
TEST_EXPORTS ?= $(COMMON_EXPORTS) $(EXTRA_TEST_EXPORTS)
@@ -531,6 +538,7 @@
TEST_ENV ?= $(foreach TTT,$(TEST_EXPORTS),$(TTT)="$($(TTT))")
INSTALL_ENV ?= $(foreach TTT,$(INSTALL_EXPORTS),$(TTT)="$($(TTT))")
+
# Standard Scripts
CONFIGURE_SCRIPTS ?= $(WORKSRC)/configure
BUILD_CHECK_SCRIPTS ?= modulated-check
@@ -544,7 +552,8 @@
INSTALL_SCRIPTS ?= $(WORKSRC)/Makefile
# Global environment
-export PATH PKG_CONFIG_PATH
+#export PATH PKG_CONFIG_PATH
+export PATH
# prepend the local file listing
FILE_SITES = $(foreach DIR,$(FILEDIR) $(GARCHIVEPATH),file://$(DIR)/)
@@ -599,11 +608,11 @@
_isaenv:
@echo; \
echo "* ISA $(ISA)"; \
- echo " PATH = $(PATH)"; \
- echo " CFLAGS = $(CFLAGS)"; \
- echo " CXXFLAGS = $(CXXFLAGS)"; \
- echo " CPPFLAGS = $(CPPFLAGS)"; \
- echo " LDFLAGS = $(LDFLAGS)"; \
- #echo " LD_OPTIONS = $(LD_OPTIONS)"; \
- echo " ASFLAGS = $(ASFLAGS)"; \
- echo " OPTFLAGS = $(OPTFLAGS)"
+ echo " PATH = $(PATH)"; \
+ echo "PKG_CONFIG_PATH = $(PKG_CONFIG_PATH)"; \
+ echo " CFLAGS = $(CFLAGS)"; \
+ echo " CXXFLAGS = $(CXXFLAGS)"; \
+ echo " CPPFLAGS = $(CPPFLAGS)"; \
+ echo " LDFLAGS = $(LDFLAGS)"; \
+ echo " ASFLAGS = $(ASFLAGS)"; \
+ echo " OPTFLAGS = $(OPTFLAGS)"
Modified: csw/mgar/gar/v2/gar.mk
===================================================================
--- csw/mgar/gar/v2/gar.mk 2008-12-07 16:35:37 UTC (rev 2470)
+++ csw/mgar/gar/v2/gar.mk 2008-12-07 16:45:33 UTC (rev 2471)
@@ -546,6 +546,24 @@
# Replace files by itself terminating on first match
_INC_EXT_RULE += $(foreach F,$(_MERGE_INCLUDE_FILES),-s ",^\(\.$F\)\$,\1,")
+# These are used during merge phase to determine the base installation directory
+MERGEBASE_$(bindir) ?= $(bindir_install)
+MERGEBASE_$(sbindir) ?= $(sbindir_install)
+MERGEBASE_$(libexecdir) ?= $(libexecdir_install)
+MERGEBASE_$(libdir) ?= $(libdir_install)
+
+define mergebase
+$(if $(MERGEBASE_$(1)),$(MERGEBASE_$(1)),$(1))
+endef
+
+# A package is compiled for the pathes defined in $(bindir), $(libdir), etc.
+# These may not be the standard pathes, because specific ISA compilation
+# could have appended e. g. /64 for .pc-pathes to be correct. Anyway these
+# pathes may need to be rewritten e. g. from lib/64 to lib/amd64. Here,
+# $(libdir) has the memorymodel-directory appended, whereas $(libdir_install)
+# has not, so we use this one for appending.
+
+
_PAX_ARGS = $(_INC_EXT_RULE) $(EXTRA_PAX_ARGS)
# The basic merge merges the compiles for all ISAs on the current architecture
@@ -558,13 +576,15 @@
# Copy the whole tree verbatim
merge-copy-all: $(PKGROOT) $(INSTALLISADIR)
- @(cd $(INSTALLISADIR); pax -r -w -v $(_PAX_ARGS) . $(PKGROOT))
+ @(cd $(INSTALLISADIR); pax -r -w -v $(_PAX_ARGS) \
+ $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),.$(call mergebase,$(DIR))/,p") \
+ . $(PKGROOT))
@$(MAKECOOKIE)
# Copy only the merge directories
merge-copy-only: $(PKGROOT)
@(cd $(INSTALLISADIR); pax -r -w -v $(_PAX_ARGS) \
- $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),\1,p") -s ",.*,," \
+ $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),.$(call mergebase,$(DIR))/,p") -s ",.*,," \
. $(PKGROOT) \
)
@$(MAKECOOKIE)
@@ -572,7 +592,7 @@
# Copy the whole tree and relocate the directories in $(MERGE_DIRS)
merge-copy-relocate: $(PKGROOT) $(INSTALLISADIR)
@(cd $(INSTALLISADIR); pax -r -w -v $(_PAX_ARGS) \
- $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),\1$(ISA)/,p") \
+ $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),.$(call mergebase,$(DIR))/$(ISA)/,p") \
. $(PKGROOT) \
)
@$(MAKECOOKIE)
@@ -580,7 +600,7 @@
# Copy only the relocated directories
merge-copy-relocated-only: $(PKGROOT) $(INSTALLISADIR)
@(cd $(INSTALLISADIR); pax -r -w -v $(_PAX_ARGS) \
- $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),\1$(ISA)/,p") -s ",.*,," \
+ $(foreach DIR,$(MERGE_DIRS),-s ",^\(\.$(DIR)/\),.$(call mergebase,$(DIR))/$(ISA)/,p") -s ",.*,," \
. $(PKGROOT) \
)
@$(MAKECOOKIE)
Modified: csw/mgar/gar/v2/gar.pkg.mk
===================================================================
--- csw/mgar/gar/v2/gar.pkg.mk 2008-12-07 16:35:37 UTC (rev 2470)
+++ csw/mgar/gar/v2/gar.pkg.mk 2008-12-07 16:45:33 UTC (rev 2471)
@@ -132,6 +132,9 @@
# This can be used to automatically distribute the files to different packages
#
+$(foreach SPEC,$(_PKG_SPECS),$(eval _PROTOTYPE_FILTER_$(SPEC) ?= | $(PROTOTYPE_FILTER_$(SPEC))))
+$(foreach SPEC,$(_PKG_SPECS),$(eval _PROTOTYPE_FILTER_$(SPEC) ?= | $(PROTOTYPE_FILTER)))
+
# This file contains all installed pathes. This can be used as a starting point
# for distributing files to individual packages.
PROTOTYPE = $(WORKDIR)/prototype
@@ -154,14 +157,19 @@
) \
<$(PROTOTYPE); \
if [ -n "$(EXTRA_PKGFILES_$*)" ]; then echo "$(EXTRA_PKGFILES_$*)"; fi \
- ) >$@; \
+ ) $(_PROTOTYPE_FILTER_$*) >$@; \
else \
- cp $(PROTOTYPE) $@; \
+ cat $(PROTOTYPE) $(_PROTOTYPE_FILTER_$*) >$@; \
fi
$(WORKDIR)/%.prototype-$(GARCH): | $(WORKDIR)/%.prototype
- @cp $(WORKDIR)/$*.prototype $@
+ @cat $(WORKDIR)/$*.prototype $(_PROTOTYPE_FILTER_$*) >$@
+# This is a target used to generate all prototypes for debugging purposes.
+# On a normal packaging workflow this is not used.
+prototypes: extract merge $(SPKG_DESTDIRS) pre-package $(foreach S,$(_PKG_SPECS),$(WORKDIR)/$S.prototype-$(GARCH))
+ @$(DONADA)
+
# $_EXTRA_GAR_PKGS is for dynamic dependencies added by GAR itself (like CSWisaexec or CSWcswclassutils)
.PRECIOUS: $(WORKDIR)/%.depend
$(WORKDIR)/%.depend:
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