[26266] trunk/base/src/port1.0/resources/group/gnustep-1.0.tcl
source_changes at macosforge.org
source_changes at macosforge.org
Sun Jun 17 15:13:55 PDT 2007
Revision: 26266
http://trac.macosforge.org/projects/macports/changeset/26266
Author: yves at macports.org
Date: 2007-06-17 15:13:54 -0700 (Sun, 17 Jun 2007)
Log Message:
-----------
gnustep portgroup for gnustep-make-2.0
Modified Paths:
--------------
trunk/base/src/port1.0/resources/group/gnustep-1.0.tcl
Modified: trunk/base/src/port1.0/resources/group/gnustep-1.0.tcl
===================================================================
--- trunk/base/src/port1.0/resources/group/gnustep-1.0.tcl 2007-06-17 22:08:24 UTC (rev 26265)
+++ trunk/base/src/port1.0/resources/group/gnustep-1.0.tcl 2007-06-17 22:13:54 UTC (rev 26266)
@@ -3,7 +3,7 @@
#
# $Id$
#
-# Copyright (c) 2006 Yves de Champlain <yves at macports.org>,
+# Copyright (c) 2006 Yves de Champlain <yves at opendarwin.org>,
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -32,14 +32,19 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
+#
# Group code for GNUstep ports.
+#
#
-# Overview of gnustep 1.0 PortGroup
+# Overview of gnustep 1.0 PortGroup :
#
+
+#
# default categories gnustep
# default homepage http://www.gnustep.org/
# default master_sites gnustep:core
+# default depends_lib port:gnustep-core
#
# array set gnustep.post_flags Apple CC two-level namespaces requires all
# symbols to be resolved at link time,
@@ -52,140 +57,181 @@
# BundleSubDir "-lfoo -lbar"
# }
# }
-#
+#
+#
+# proc set_gnustep_make Sets GNUSTEP_MAKEFILES
+# according to the FilesystemLayout
+#
+# proc set_gnustep_env Sets DYLD_LIBRARY_PATH and PATH
+# for the gnustep FilesystemLayout
+#
+#
+# default gnustep.cc CC=gcc-dp-4.2
+#
# default use_configure no
-# default configure.args CC=gcc-mp-4.1
+# default configure.env Sets the environment for the gnustep FilesystemLayout
+# configure.pre_args-append ${gnustep.cc} [set_gnustep_make]"
#
+# default build.env {[set_gnustep_env]}
# default build.type gnu
-# default build.args messages=yes
+# build.pre_args-append "messages=yes [set_gnustep_make]"
#
-# default gnustep.domain As provided by the current package or Local
-# default destroot.args messages=yes
-# default destroot.destdir GNUSTEP_INSTALLATION_DIR=${destroot}${prefix}/GNUstep/$gnustep.domain
-# variant with_docs GNUstep programs providing documentation should
-# all follow the same pattern
+# default destroot.env {[set_gnustep_env]}
+# destroot.pre_args-append "messages=yes [set_gnustep_make] [set_gnustep_domain]"
#
+# variant with_docs Most GNUstep programs providing documentation
+# follow the same pattern
+#
+#
+# GNUstep utilities
+#
-# Options this group provides :
+#
+# Adds SHARED_LD_POSTFLAGS for Darwin's linker
+#
+# Sets GNUSTEP_INSTALLATION_DOMAIN for ports using the
+# deprecated GNUSTEP_SYSTEM_ROOT variable
+#
-options gnustep.domain
-default gnustep.domain ""
+array set gnustep.post_flags {}
-# Default values for this group :
-
-default categories gnustep
-default homepage http://www.gnustep.org/
-
-default master_sites gnustep:core
-default depends_build port:gnustep-make
-default depends_lib port:gnustep-back
-
-default use_configure no
-default configure.args CC=gcc-mp-4.1
-
-default build.type gnu
-default build.args messages=yes
-
-default destroot.args messages=yes
-
-
-# for Darwin's linker
-
-array set gnustep.post_flags {}
post-patch {
foreach {src_subdir post_libs} [array get gnustep.post_flags] {
set fl [ open ${worksrcpath}/$src_subdir/GNUmakefile.preamble a ]
puts $fl "\nSHARED_LD_POSTFLAGS += $post_libs"
close $fl
}
+ foreach gmf [glob -nocomplain -directory ${worksrcpath} GNUmakefile*] {
+ reinplace \
+ "s|GNUSTEP_INSTALLATION_DIR = \$\(GNUSTEP_SYSTEM_ROOT\)|GNUSTEP_INSTALLATION_DOMAIN=SYSTEM|g" \
+ $gmf
+ }
}
-# try to guess installation directory if not specified in the Portfile
-# defaults to Local
+#
+# Returns true (1) if current file layout is gnustep
+# Returns false (0) otherwise
+#
-proc set_gnustep_domain {} {
- global gnustep.domain worksrcpath
+proc gnustep_layout {} {
+ global prefix
- if {${gnustep.domain} == ""} {
- set gnustep.domain Local
- ui_debug "No gnustep.domain provided"
- if {[file exists $worksrcpath/GNUmakefile]} {
- set root_makefile "GNUmakefile"
- } elseif {[file exists $worksrcpath/GNUmakefile.in]} {
- set root_makefile "GNUmakefile.in"
- } else {
- ui_debug "no GNUmakefile ? ... hum !"
- return 1
- }
- ui_debug "Checking installation directory in $worksrcpath/$root_makefile"
- set fl [open "| grep \"^GNUSTEP_INSTALLATION_DIR = \" $worksrcpath/$root_makefile"]
- set data [read $fl]
- if {! [catch {close $fl} err] && [regexp SYSTEM $data]} {
- ui_debug "Data read : $data"
- set gnustep.domain System
- } else {
- ui_debug "$err"
- }
+ if {[file exists ${prefix}/GNUstep/System/Library/Makefiles]} {
+ return 1
}
- ui_debug "Using ${gnustep.domain}"
+ return 0
}
+#
+# Sets GNUSTEP_SYSTEM_LIBRARY according to the FilesystemLayout
+#
-# GNUstep stages commands
+proc set_system_library {} {
+ global prefix
+
+ if {[gnustep_layout]} {
+ return "${prefix}/GNUstep/System/Library"
+ }
+ return "${prefix}/lib/GNUstep"
+}
-configure {
- if { ${use_configure} == "yes" } {
- cd ${worksrcpath}
- ui_debug "./configure ${configure.pre_args} ${configure.args}"
- system "\
- . ${prefix}/GNUstep/System/Library/Makefiles/GNUstep.sh \
- && \
- ./configure ${configure.pre_args} ${configure.args}"
+#
+# Sets GNUSTEP_LOCAL_LIBRARY according to the FilesystemLayout
+#
+
+proc set_local_library {} {
+ global prefix
+
+ if {[gnustep_layout]} {
+ return "${prefix}/GNUstep/Local/Library"
}
+ return "${prefix}/lib/GNUstep"
}
+
+#
+# Sets GNUSTEP_MAKEFILES according to the FilesystemLayout
+#
+
+proc set_gnustep_make {} {
+ global prefix
-build {
- cd ${worksrcpath}
- ui_debug "${build.cmd} ${build.target} ${build.args}"
- system "\
- . ${prefix}/GNUstep/System/Library/Makefiles/GNUstep.sh \
- && \
- ${build.cmd} ${build.target} ${build.args}"
+ if {[gnustep_layout]} {
+ return "GNUSTEP_MAKEFILES=${prefix}/GNUstep/System/Library/Makefiles"
+ }
+ return "GNUSTEP_MAKEFILES=${prefix}/share/GNUstep/Makefiles"
}
-destroot {
- set_gnustep_domain
- set destroot.destdir \
- GNUSTEP_INSTALLATION_DIR=${destroot}${prefix}/GNUstep/${gnustep.domain}
- cd ${worksrcpath}
- ui_debug "${destroot.cmd} ${destroot.target} \
- ${destroot.args} ${destroot.destdir}"
- system "\
- . ${prefix}/GNUstep/System/Library/Makefiles/GNUstep.sh \
- && \
- ${destroot.cmd} ${destroot.target} \
- ${destroot.args} ${destroot.destdir}"
+#
+# Sets DYLD_LIBRARY_PATH and PATH for the gnustep FilesystemLayout
+#
+
+proc set_gnustep_env {} {
+ global env prefix
+
+ if {[gnustep_layout]} {
+ return "\
+ DYLD_LIBRARY_PATH=${prefix}/GNUstep/Local/Library/Libraries:${prefix}/GNUstep/System/Library/Libraries \
+ PATH=${prefix}/GNUstep/Local/Tools:${prefix}/GNUstep/System/Tools:$env(PATH) \
+ "
+ }
+ return
}
+#
+# Options this group provides :
+#
+
+options gnustep.cc
+default gnustep.cc CC=gcc-mp-4.2
+
+options system_library
+options local_library
+default system_library [set_system_library]
+default local_library [set_local_library]
+
+#
+# Default values for this group :
+#
+
+default categories gnustep
+default homepage http://www.gnustep.org/
+
+default master_sites gnustep:core
+default depends_lib port:gnustep-core
+
+default use_configure no
+default configure.env {[set_gnustep_env]}
+configure.pre_args-append "${gnustep.cc} [set_gnustep_make]"
+
+default build.env {[set_gnustep_env]}
+default build.type gnu
+build.pre_args-append "messages=yes [set_gnustep_make]"
+
+default destroot.env {[set_gnustep_env]}
+destroot.pre_args-append "messages=yes [set_gnustep_make]"
+
+#
# To build and install documentation provided by the port
+#
variant with_docs {
- depends_build-append \
- bin:latex2html:latex2html \
- bin:texi2pdf:texinfo \
- bin:texi2html:texi2html \
- bin:pdftex:teTeX \
- port:gnustep-base
+ depends_build-append bin:latex2html:latex2html \
+ bin:texi2pdf:texinfo \
+ bin:texi2html:texi2html \
+ bin:pdftex:teTeX \
+ port:gnustep-base
+
post-destroot {
+
if {[file exists ${worksrcpath}/Documentation/GNUmakefile]} {
+
ui_msg "---> Making Documentation for ${name}"
+
cd ${worksrcpath}/Documentation
- system "\
- . ${prefix}/GNUstep/System/Library/Makefiles/GNUstep.sh \
- && \
- ${destroot.cmd} ${destroot.target} \
- ${destroot.args} ${destroot.destdir}"
+ system "${destroot.env} ${destroot.cmd} \
+ ${destroot.pre_args} ${destroot.destdir}"
+
set info_dir \
${destroot}${prefix}/GNUstep/System/Library/Documentation/info
if {[file exists ${info_dir}/manual.info]} {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20070617/f848afb3/attachment.html
More information about the macports-changes
mailing list