Ignore:
Timestamp:
Jun 17, 2007, 10:13:54 PM (13 years ago)
Author:
yves@…
Message:

gnustep portgroup for gnustep-make-2.0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/base/src/port1.0/resources/group/gnustep-1.0.tcl

    r26177 r26266  
    44# $Id$
    55#
    6 # Copyright (c) 2006 Yves de Champlain <yves@macports.org>,
     6# Copyright (c) 2006 Yves de Champlain <yves@opendarwin.org>,
    77# All rights reserved.
    88#
     
    3333#
    3434
     35#
    3536# Group code for GNUstep ports.
    36 
    37 #
    38 # Overview of gnustep 1.0 PortGroup
     37#
     38
     39#
     40# Overview of gnustep 1.0 PortGroup :
     41#
     42
    3943#
    4044# default categories            gnustep
    4145# default homepage              http://www.gnustep.org/
    4246# default master_sites          gnustep:core
     47# default depends_lib           port:gnustep-core
    4348#
    4449# array set gnustep.post_flags  Apple CC two-level namespaces requires all
     
    5358#                                   }
    5459#                               }
    55 #                               
     60#
     61#
     62# proc set_gnustep_make         Sets GNUSTEP_MAKEFILES
     63#                               according to the FilesystemLayout
     64#
     65# proc set_gnustep_env          Sets DYLD_LIBRARY_PATH and PATH
     66#                               for the gnustep FilesystemLayout
     67#
     68#
     69# default gnustep.cc            CC=gcc-dp-4.2
     70#
    5671# default use_configure         no
    57 # default configure.args        CC=gcc-mp-4.1
    58 #
     72# default configure.env         Sets the environment for the gnustep FilesystemLayout
     73# configure.pre_args-append     ${gnustep.cc} [set_gnustep_make]"
     74#
     75# default build.env             {[set_gnustep_env]}
    5976# default build.type            gnu
    60 # default build.args            messages=yes
    61 #
    62 # default gnustep.domain        As provided by the current package or Local
    63 # default destroot.args         messages=yes
    64 # default destroot.destdir      GNUSTEP_INSTALLATION_DIR=${destroot}${prefix}/GNUstep/$gnustep.domain
    65 # variant with_docs             GNUstep programs providing documentation should
    66 #                               all follow the same pattern
    67 #
    68 
    69 
    70 # Options this group provides :
    71 
    72 options gnustep.domain
    73 default gnustep.domain      ""
    74 
    75 # Default values for this group :
    76 
    77 default categories                      gnustep
    78 default homepage            http://www.gnustep.org/
    79 
    80 default master_sites        gnustep:core
    81 default depends_build       port:gnustep-make
    82 default depends_lib         port:gnustep-back
    83 
    84 default use_configure           no
    85 default configure.args      CC=gcc-mp-4.1
    86 
    87 default build.type          gnu
    88 default build.args          messages=yes
    89 
    90 default destroot.args       messages=yes
    91 
    92 
    93 # for Darwin's linker
     77# build.pre_args-append         "messages=yes [set_gnustep_make]"
     78#
     79# default destroot.env          {[set_gnustep_env]}
     80# destroot.pre_args-append      "messages=yes [set_gnustep_make] [set_gnustep_domain]"
     81#
     82# variant with_docs             Most GNUstep programs providing documentation
     83#                               follow the same pattern
     84#
     85
     86#
     87# GNUstep utilities
     88#
     89
     90#
     91# Adds SHARED_LD_POSTFLAGS for Darwin's linker
     92#
     93# Sets GNUSTEP_INSTALLATION_DOMAIN for ports using the
     94# deprecated GNUSTEP_SYSTEM_ROOT variable
     95#
    9496
    9597array set gnustep.post_flags {}
     98
    9699post-patch {
    97100    foreach {src_subdir post_libs} [array get gnustep.post_flags] {
     
    100103        close $fl
    101104    }
    102 }
    103 
    104 # try to guess installation directory if not specified in the Portfile
    105 # defaults to Local
    106 
    107 proc set_gnustep_domain {} {
    108     global gnustep.domain worksrcpath
    109    
    110     if {${gnustep.domain} == ""} {
    111         set gnustep.domain Local
    112         ui_debug "No gnustep.domain provided"
    113         if {[file exists $worksrcpath/GNUmakefile]} {
    114             set root_makefile "GNUmakefile"
    115         } elseif {[file exists $worksrcpath/GNUmakefile.in]} {
    116             set root_makefile "GNUmakefile.in"
    117         } else {
    118             ui_debug "no GNUmakefile ? ... hum !"
    119             return 1
    120         }
    121         ui_debug "Checking installation directory in $worksrcpath/$root_makefile"
    122         set fl [open "| grep \"^GNUSTEP_INSTALLATION_DIR = \" $worksrcpath/$root_makefile"]
    123         set data [read $fl]
    124         if {! [catch {close $fl} err] && [regexp SYSTEM $data]} {
    125             ui_debug "Data read : $data"
    126             set gnustep.domain System
    127         } else {
    128             ui_debug "$err"
    129         }
    130     }
    131     ui_debug "Using ${gnustep.domain}"
    132 }
    133 
    134 
    135 # GNUstep stages commands
    136 
    137 configure {
    138     if { ${use_configure} == "yes" } {
    139         cd ${worksrcpath}
    140         ui_debug "./configure ${configure.pre_args} ${configure.args}"
    141         system "\
    142             . ${prefix}/GNUstep/System/Library/Makefiles/GNUstep.sh \
    143             && \
    144             ./configure ${configure.pre_args} ${configure.args}"
    145     }
    146 }
    147    
    148 build {
    149     cd ${worksrcpath}
    150     ui_debug "${build.cmd} ${build.target} ${build.args}"
    151     system "\
    152         . ${prefix}/GNUstep/System/Library/Makefiles/GNUstep.sh \
    153         && \
    154         ${build.cmd} ${build.target} ${build.args}"
    155 }
    156 
    157 destroot {
    158     set_gnustep_domain
    159     set destroot.destdir \
    160         GNUSTEP_INSTALLATION_DIR=${destroot}${prefix}/GNUstep/${gnustep.domain}
    161     cd ${worksrcpath}
    162     ui_debug "${destroot.cmd} ${destroot.target} \
    163             ${destroot.args} ${destroot.destdir}"
    164     system "\
    165         . ${prefix}/GNUstep/System/Library/Makefiles/GNUstep.sh \
    166         && \
    167         ${destroot.cmd} ${destroot.target} \
    168             ${destroot.args} ${destroot.destdir}"
    169 }
    170 
     105    foreach gmf [glob -nocomplain -directory ${worksrcpath} GNUmakefile*] {
     106        reinplace \
     107            "s|GNUSTEP_INSTALLATION_DIR = \$\(GNUSTEP_SYSTEM_ROOT\)|GNUSTEP_INSTALLATION_DOMAIN=SYSTEM|g" \
     108                $gmf
     109    }
     110}
     111
     112#
     113# Returns true (1) if current file layout is gnustep
     114# Returns false (0) otherwise
     115#
     116
     117proc gnustep_layout {} {
     118    global prefix
     119   
     120    if {[file exists ${prefix}/GNUstep/System/Library/Makefiles]} {
     121        return 1
     122    }
     123    return 0
     124}
     125
     126#
     127# Sets GNUSTEP_SYSTEM_LIBRARY according to the FilesystemLayout
     128#
     129
     130proc set_system_library {} {
     131    global prefix
     132   
     133    if {[gnustep_layout]} {
     134        return "${prefix}/GNUstep/System/Library"
     135    }
     136    return "${prefix}/lib/GNUstep"
     137}
     138
     139#
     140# Sets GNUSTEP_LOCAL_LIBRARY according to the FilesystemLayout
     141#
     142
     143proc set_local_library {} {
     144    global prefix
     145   
     146    if {[gnustep_layout]} {
     147        return "${prefix}/GNUstep/Local/Library"
     148    }
     149    return "${prefix}/lib/GNUstep"
     150}
     151
     152#
     153# Sets GNUSTEP_MAKEFILES according to the FilesystemLayout
     154#
     155
     156proc set_gnustep_make {} {
     157    global prefix
     158   
     159    if {[gnustep_layout]} {
     160        return "GNUSTEP_MAKEFILES=${prefix}/GNUstep/System/Library/Makefiles"
     161    }
     162    return "GNUSTEP_MAKEFILES=${prefix}/share/GNUstep/Makefiles"
     163}
     164
     165#
     166# Sets DYLD_LIBRARY_PATH and PATH for the gnustep FilesystemLayout
     167#
     168
     169proc set_gnustep_env {} {
     170    global env prefix
     171   
     172    if {[gnustep_layout]} {
     173        return "\
     174            DYLD_LIBRARY_PATH=${prefix}/GNUstep/Local/Library/Libraries:${prefix}/GNUstep/System/Library/Libraries \
     175            PATH=${prefix}/GNUstep/Local/Tools:${prefix}/GNUstep/System/Tools:$env(PATH) \
     176        "
     177    }
     178    return
     179}
     180
     181#
     182# Options this group provides :
     183#
     184
     185options gnustep.cc
     186default gnustep.cc          CC=gcc-mp-4.2
     187
     188options system_library
     189options local_library
     190default system_library      [set_system_library]
     191default local_library       [set_local_library]
     192
     193#
     194# Default values for this group :
     195#
     196
     197default categories          gnustep
     198default homepage            http://www.gnustep.org/
     199
     200default master_sites        gnustep:core
     201default depends_lib         port:gnustep-core
     202
     203default use_configure       no
     204default configure.env       {[set_gnustep_env]}
     205configure.pre_args-append   "${gnustep.cc} [set_gnustep_make]"
     206
     207default build.env           {[set_gnustep_env]}
     208default build.type          gnu
     209build.pre_args-append       "messages=yes [set_gnustep_make]"
     210
     211default destroot.env        {[set_gnustep_env]}
     212destroot.pre_args-append    "messages=yes [set_gnustep_make]"
     213
     214#
    171215# To build and install documentation provided by the port
     216#
    172217
    173218variant with_docs {
    174     depends_build-append \
    175        bin:latex2html:latex2html \
    176         bin:texi2pdf:texinfo \
    177         bin:texi2html:texi2html \
    178         bin:pdftex:teTeX \
    179         port:gnustep-base
     219    depends_build-append    bin:latex2html:latex2html \
     220                            bin:texi2pdf:texinfo \
     221                            bin:texi2html:texi2html \
     222                            bin:pdftex:teTeX \
     223                            port:gnustep-base
     224
    180225    post-destroot {
     226       
    181227        if {[file exists ${worksrcpath}/Documentation/GNUmakefile]} {
     228           
    182229            ui_msg "--->  Making Documentation for ${name}"
     230           
    183231            cd ${worksrcpath}/Documentation
    184             system "\
    185                 . ${prefix}/GNUstep/System/Library/Makefiles/GNUstep.sh \
    186                 && \
    187                 ${destroot.cmd} ${destroot.target} \
    188                     ${destroot.args} ${destroot.destdir}"
     232            system "${destroot.env} ${destroot.cmd} \
     233                    ${destroot.pre_args} ${destroot.destdir}"
     234           
    189235            set info_dir \
    190236                ${destroot}${prefix}/GNUstep/System/Library/Documentation/info
Note: See TracChangeset for help on using the changeset viewer.