Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.apache.maven.plugin.nar;
  
  /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
  *
  *  http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 
 import java.io.File;
 
Copies the GNU style source files to a target area, autogens and configures them.

Author(s):
Mark Donszelmann
Goal:
nar-gnu-configure
Phase:
process-sources
RequiresProject:
 
 public class NarGnuConfigureMojo extends AbstractGnuMojo {
Skip running of autogen.sh (aka buildconf).

Parameter:
expression="${nar.gnu.autogen.skip}" default-value="false"
 
 	private boolean gnuAutogenSkip;

Skip running of configure and therefore also autogen.sh

Parameter:
expression="${nar.gnu.configure.skip}" default-value="false"
 
 	private boolean gnuConfigureSkip;

Arguments to pass to GNU configure.

Parameter:
expression="${nar.gnu.configure.args}" default-value=""
 
 	private String gnuConfigureArgs;

Arguments to pass to GNU buildconf.

Parameter:
expression="${nar.gnu.buildconf.args}" default-value=""
 
 
 	private static final String AUTOGEN = "autogen.sh";
 
 	private static final String BUILDCONF = "buildconf";
 
 	private static final String CONFIGURE = "configure";
 
 	public final void narExecute() throws MojoExecutionException,
 
 		if (!useGnu()) {
 			return;
 		}
 
 		File targetDir = getGnuAOLSourceDirectory();
 			getLog().info("Copying GNU sources");
 
 			try {
 				FileUtils.mkdir(targetDir.getPath());
 						targetDirnullnull);
 			} catch (IOException e) {
 				throw new MojoExecutionException("Failed to copy GNU sources",
 						e);
 			}
 
 				File autogen = new File(targetDir);
 				File buildconf = new File(targetDir);
 				if (autogen.exists()) {
 					getLog().info("Running GNU " + );
 					runAutogen(autogentargetDirnull);
 				} else if (buildconf.exists()) {
					getLog().info("Running GNU " + );
					String gnuBuildconfArgsArray[] = null;
					if ( != null) {
						gnuBuildconfArgsArray = .split("\\s");
					}
					runAutogen(buildconftargetDirgnuBuildconfArgsArray);
				}
			}
			File configure = new File(targetDir);
			if (! && configure.exists()) {
				getLog().info("Running GNU " + );
				NarUtil.makeExecutable(configuregetLog());
				String[] args = null;
				// create the array to hold constant and additional args
				if ( != null) {
					args = new String[a.length + 2];
					for (int i = 0; i < a.lengthi++) {
						args[i + 2] = a[i];
					}
else {
					args = new String[2];
				}
				// first 2 args are constant
				args[0] = "./" + configure.getName();
				args[1] = "--prefix="
				getLog().info("args: " + arraysToString(args));
				int result = NarUtil.runCommand("sh"argstargetDirnull,
				if (result != 0) {
"' errorcode: " + result);
				}
			}
		}
	}
	private void runAutogen(final File autogenfinal File targetDir,
			final String args[]) throws MojoExecutionException,
		// fix missing config directory
		final File configDir = new File(targetDir"config");
		if (!configDir.exists()) {
			configDir.mkdirs();
		}
		NarUtil.makeExecutable(autogengetLog());
		getLog().debug("running sh ./" + autogen.getName());
		String arguments[] = null;
		if (args != null) {
			arguments = new String[1 + args.length];
			for (int i = 0; i < args.length; ++i) {
				arguments[i + 1] = args[i];
			}
else {
			arguments = new String[1];
		}
		arguments[0] = "./" + autogen.getName();
		getLog().info("args: " + arraysToString(arguments));
		final int result = NarUtil.runCommand("sh"argumentstargetDirnull,
		if (result != 0) {
			throw new MojoExecutionException("'" + autogen.getName()
"' errorcode: " + result);
		}
	}
	// JDK 1.4 compatibility
	private static String arraysToString(Object[] a) {
		if (a == null)
			return "null";
		int iMax = a.length - 1;
		if (iMax == -1)
			return "[]";
		b.append('[');
		for (int i = 0;; i++) {
			b.append(String.valueOf(a[i]));
			if (i == iMax)
				return b.append(']').toString();
			b.append(", ");
		}
	}
New to GrepCode? Check out our FAQ X