######################################################################## # Copyright (C) 2010 Vix-ERG Limited, All rights reserved # # Module name : ZendDirective.pm # Module type : Makefile system # Compiler(s) : Perl # Environment(s): jats # # Description : See: TECHGP-00254 Jats Integration of ZendGuard # #......................................................................# require 5.008_002; use strict; use warnings; use Pod::Usage; use Getopt::Long; use JatsError; # # Globals # our $ScmPlatform; # Target Platform #------------------------------------------------------------------------------- # Function : MakeZendGuard # # Description : This directive supports the processing of a ZendGuard # project file via the ZendGuard utility # # Inputs : $platform - Platform selector # $script - Name of the script # @elements - Options and arguments # # Valid Options and Arguments # --Verbose - Increase verbosity # --Verbose=n - Set verbosity # --Src=Path - Source Subdir # Default: '.' # --Package=Name - Package into pkg/Name within # the output package # Default is to place the encoded # directory tree within the BinDir # in a subdirectory called 'php' # # sub MakeZendGuard { my( $platforms, $script, @elements ) = @_; my $verbose = 0; my @args; return if ( ! ActivePlatform($platforms) ); # # Directive is only supported on the PHP platform # Error ("'MakeZendGuard' directive is only supported on the PHP platform") unless( $ScmPlatform eq 'PHP' ); # # Parse the command line arguments # foreach ( @elements ) { if ( m~^--Verbose~i ) { push @args, $_; } elsif ( m~^--Src=(.+)~ ) { push @args, $_; } elsif ( m~^--Package=(.+)~ ) { push @args, $_; } else { Error ("MakeZendGuard: Unknown option: $_"); } } # # Create build time recipe to perform the hard work # Will be done during the 'generate' phase # Will always be done # Output will be packaged directly # GenerateFiles ('*', '--Tool=ZendGuard.pl', '--Text=Processing PHP with ZenGuard', '--UnknownPreq', '--NoGenerate', '--Clean', '--Var(PackageDir)', '--Var(Target)', # Underlying Target '--Var(Type)', # Build Type '--Var(ObjDir)', # Work directory '--Var(BinDir)', # Possible output directory "-script=--Prerequisite($script)", @args, ); }