Author: ddas Date: Wed Nov 3 20:20:33 2010 New Revision: 1030646 URL: http://svn.apache.org/viewvc?rev=1030646&view=rev Log: HADOOP-6818. Provides a JNI implementation of group resolution. Contributed by Devaraj Das.
Added: hadoop/common/trunk/src/java/org/apache/hadoop/security/JniBasedUnixGroupsMapping.java hadoop/common/trunk/src/native/src/org/apache/hadoop/security/ hadoop/common/trunk/src/native/src/org/apache/hadoop/security/JniBasedUnixGroupsMapping.c hadoop/common/trunk/src/native/src/org/apache/hadoop/security/getGroup.c hadoop/common/trunk/src/test/core/org/apache/hadoop/security/TestJNIGroupsMapping.java Removed: hadoop/common/trunk/src/java/org/apache/hadoop/fs/ftp/FTPFileSystemConfigKeys.java Modified: hadoop/common/trunk/CHANGES.txt hadoop/common/trunk/build.xml hadoop/common/trunk/src/native/Makefile.am hadoop/common/trunk/src/native/Makefile.in hadoop/common/trunk/src/native/aclocal.m4 hadoop/common/trunk/src/native/config.h.in hadoop/common/trunk/src/native/configure hadoop/common/trunk/src/native/configure.ac Modified: hadoop/common/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/CHANGES.txt?rev=1030646&r1=1030645&r2=1030646&view=diff ============================================================================== --- hadoop/common/trunk/CHANGES.txt (original) +++ hadoop/common/trunk/CHANGES.txt Wed Nov 3 20:20:33 2010 @@ -158,6 +158,8 @@ Trunk (unreleased changes) HADOOP-7008. Enable test-patch.sh to have a configured number of acceptable findbugs and javadoc warnings. (nigel and gkesavan) + HADOOP-6818. Provides a JNI implementation of group resolution. (ddas) + OPTIMIZATIONS HADOOP-6884. Add LOG.isDebugEnabled() guard for each LOG.debug(..). Modified: hadoop/common/trunk/build.xml URL: http://svn.apache.org/viewvc/hadoop/common/trunk/build.xml?rev=1030646&r1=1030645&r2=1030646&view=diff ============================================================================== --- hadoop/common/trunk/build.xml (original) +++ hadoop/common/trunk/build.xml Wed Nov 3 20:20:33 2010 @@ -365,6 +365,7 @@ <mkdir dir="${build.native}/lib"/> <mkdir dir="${build.native}/src/org/apache/hadoop/io/compress/zlib"/> + <mkdir dir="${build.native}/src/org/apache/hadoop/security"/> <javah classpath="${build.classes}" @@ -376,6 +377,15 @@ <class name="org.apache.hadoop.io.compress.zlib.ZlibDecompressor" /> </javah> + <javah + classpath="${build.classes}" + destdir="${build.native}/src/org/apache/hadoop/security" + force="yes" + verbose="yes" + > + <class name="org.apache.hadoop.security.JniBasedUnixGroupsMapping" /> + </javah> + <exec dir="${build.native}" executable="sh" failonerror="true"> <env key="OS_NAME" value="${os.name}"/> <env key="OS_ARCH" value="${os.arch}"/> @@ -392,7 +402,7 @@ </exec> <exec dir="${build.native}" executable="sh" failonerror="true"> - <arg line="${build.native}/libtool --mode=install cp ${build.native}/lib/libhadoop.la ${build.native}/lib"/> + <arg line="${build.native}/libtool --mode=install cp ${build.native}/libhadoop.la ${build.native}/lib"/> </exec> </target> Added: hadoop/common/trunk/src/java/org/apache/hadoop/security/JniBasedUnixGroupsMapping.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/java/org/apache/hadoop/security/JniBasedUnixGroupsMapping.java?rev=1030646&view=auto ============================================================================== --- hadoop/common/trunk/src/java/org/apache/hadoop/security/JniBasedUnixGroupsMapping.java (added) +++ hadoop/common/trunk/src/java/org/apache/hadoop/security/JniBasedUnixGroupsMapping.java Wed Nov 3 20:20:33 2010 @@ -0,0 +1,60 @@ +/** + * 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. + */ + +package org.apache.hadoop.security; + +import java.io.IOException; +import java.util.Arrays; +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.util.NativeCodeLoader; + +/** + * A JNI-based implementation of {...@link GroupMappingServiceProvider} + * that invokes libC calls to get the group + * memberships of a given user. + */ +public class JniBasedUnixGroupsMapping implements GroupMappingServiceProvider { + + private static final Log LOG = + LogFactory.getLog(ShellBasedUnixGroupsMapping.class); + + native String[] getGroupForUser(String user); + + static { + if (!NativeCodeLoader.isNativeCodeLoaded()) { + throw new RuntimeException("Bailing out since native library couldn't " + + "be loaded"); + } + LOG.info("Using JniBasedUnixGroupsMapping for Group resolution"); + } + + @Override + public List<String> getGroups(String user) throws IOException { + String[] groups = new String[0]; + try { + groups = getGroupForUser(user); + } catch (Exception e) { + LOG.warn("Got exception while trying to obtain the groups for user " + + user); + } + return Arrays.asList(groups); + } +} Modified: hadoop/common/trunk/src/native/Makefile.am URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/native/Makefile.am?rev=1030646&r1=1030645&r2=1030646&view=diff ============================================================================== --- hadoop/common/trunk/src/native/Makefile.am (original) +++ hadoop/common/trunk/src/native/Makefile.am Wed Nov 3 20:20:33 2010 @@ -17,10 +17,6 @@ # # -# Top-level makefile template for native hadoop code -# - -# # Notes: # 1. This makefile is designed to do the actual builds in $(HADOOP_HOME)/build/native/${os.name}-${os-arch}. # 2. This makefile depends on the following environment variables to function correctly: @@ -35,11 +31,19 @@ # Export $(PLATFORM) to prevent proliferation of sub-shells export PLATFORM = $(shell echo $$OS_NAME | tr [A-Z] [a-z]) -# List the sub-directories here -SUBDIRS = src/org/apache/hadoop/io/compress/zlib lib - -# The following export is needed to build libhadoop.so in the 'lib' directory -export SUBDIRS +AM_CPPFLAGS = @JNI_CPPFLAGS@ -I$(HADOOP_NATIVE_SRCDIR)/src \ + -Isrc/org/apache/hadoop/io/compress/zlib \ + -Isrc/org/apache/hadoop/security +AM_LDFLAGS = @JNI_LDFLAGS@ -m$(JVM_DATA_MODEL) +AM_CFLAGS = -g -Wall -fPIC -O2 -m$(JVM_DATA_MODEL) + +lib_LTLIBRARIES = libhadoop.la +libhadoop_la_SOURCES = src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c \ + src/org/apache/hadoop/io/compress/zlib/ZlibDecompressor.c \ + src/org/apache/hadoop/security/getGroup.c \ + src/org/apache/hadoop/security/JniBasedUnixGroupsMapping.c +libhadoop_la_LDFLAGS = -version-info 1:0:0 +libhadoop_la_LIBADD = -ldl -ljvm # #vim: sw=4: ts=4: noet Modified: hadoop/common/trunk/src/native/Makefile.in URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/native/Makefile.in?rev=1030646&r1=1030645&r2=1030646&view=diff ============================================================================== --- hadoop/common/trunk/src/native/Makefile.in (original) +++ hadoop/common/trunk/src/native/Makefile.in Wed Nov 3 20:20:33 2010 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.2 from Makefile.am. +# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004 Free Software Foundation, Inc. +# 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -33,10 +33,6 @@ # # -# Top-level makefile template for native hadoop code -# - -# # Notes: # 1. This makefile is designed to do the actual builds in $(HADOOP_HOME)/build/native/${os.name}-${os-arch}. # 2. This makefile depends on the following environment variables to function correctly: @@ -47,6 +43,7 @@ # * OS_ARCH # All these are setup by build.xml. # + srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ @@ -85,17 +82,34 @@ am__CONFIG_DISTCLEAN_FILES = config.stat mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(libdir)" +libLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(lib_LTLIBRARIES) +libhadoop_la_DEPENDENCIES = +am_libhadoop_la_OBJECTS = ZlibCompressor.lo ZlibDecompressor.lo \ + getGroup.lo JniBasedUnixGroupsMapping.lo +libhadoop_la_OBJECTS = $(am_libhadoop_la_OBJECTS) +DEFAULT_INCLUDES = -I. -I$(srcdir) -I. +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(libhadoop_la_SOURCES) +DIST_SOURCES = $(libhadoop_la_SOURCES) ETAGS = etags CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -158,6 +172,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ @@ -205,13 +220,25 @@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +AM_CPPFLAGS = @JNI_CPPFLAGS@ -I$(HADOOP_NATIVE_SRCDIR)/src \ + -Isrc/org/apache/hadoop/io/compress/zlib \ + -Isrc/org/apache/hadoop/security + +AM_LDFLAGS = @JNI_LDFLAGS@ -m$(JVM_DATA_MODEL) +AM_CFLAGS = -g -Wall -fPIC -O2 -m$(JVM_DATA_MODEL) +lib_LTLIBRARIES = libhadoop.la +libhadoop_la_SOURCES = src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c \ + src/org/apache/hadoop/io/compress/zlib/ZlibDecompressor.c \ + src/org/apache/hadoop/security/getGroup.c \ + src/org/apache/hadoop/security/JniBasedUnixGroupsMapping.c -# List the sub-directories here -SUBDIRS = src/org/apache/hadoop/io/compress/zlib lib +libhadoop_la_LDFLAGS = -version-info 1:0:0 +libhadoop_la_LIBADD = -ldl -ljvm all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive + $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: +.SUFFIXES: .c .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @@ -262,6 +289,95 @@ $(srcdir)/config.h.in: $(am__configure_ distclean-hdr: -rm -f config.h stamp-h1 +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + f=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ + else :; fi; \ + done + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + p=$(am__strip_dir) \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libhadoop.la: $(libhadoop_la_OBJECTS) $(libhadoop_la_DEPENDENCIES) + $(LINK) -rpath $(libdir) $(libhadoop_la_LDFLAGS) $(libhadoop_la_OBJECTS) $(libhadoop_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +...@amdep_true@@am__include@ @am__qu...@./$(DEPDIR)/jnibasedunixgroupsmapping....@am__quote@ +...@amdep_true@@am__include@ @am__qu...@./$(DEPDIR)/zlibcompressor....@am__quote@ +...@amdep_true@@am__include@ @am__qu...@./$(DEPDIR)/zlibdecompressor....@am__quote@ +...@amdep_true@@am__include@ @am__qu...@./$(DEPDIR)/getgroup....@am__quote@ + +.c.o: +...@am__fastdepcc_true@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +...@am__fastdepcc_true@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +...@amdep_true@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +...@amdep_true@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +...@am__fastdepcc_false@ $(COMPILE) -c $< + +.c.obj: +...@am__fastdepcc_true@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ +...@am__fastdepcc_true@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +...@amdep_true@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +...@amdep_true@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +...@am__fastdepcc_false@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +...@am__fastdepcc_true@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ +...@am__fastdepcc_true@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +...@amdep_true@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +...@amdep_true@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +...@am__fastdepcc_false@ $(LTCOMPILE) -c -o $@ $< + +ZlibCompressor.lo: src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c +...@am__fastdepcc_true@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ZlibCompressor.lo -MD -MP -MF "$(DEPDIR)/ZlibCompressor.Tpo" -c -o ZlibCompressor.lo `test -f 'src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c' || echo '$(srcdir)/'`src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c; \ +...@am__fastdepcc_true@ then mv -f "$(DEPDIR)/ZlibCompressor.Tpo" "$(DEPDIR)/ZlibCompressor.Plo"; else rm -f "$(DEPDIR)/ZlibCompressor.Tpo"; exit 1; fi +...@amdep_true@@am__fastdepCC_FALSE@ source='src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c' object='ZlibCompressor.lo' libtool=yes @AMDEPBACKSLASH@ +...@amdep_true@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +...@am__fastdepcc_false@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ZlibCompressor.lo `test -f 'src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c' || echo '$(srcdir)/'`src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c + +ZlibDecompressor.lo: src/org/apache/hadoop/io/compress/zlib/ZlibDecompressor.c +...@am__fastdepcc_true@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ZlibDecompressor.lo -MD -MP -MF "$(DEPDIR)/ZlibDecompressor.Tpo" -c -o ZlibDecompressor.lo `test -f 'src/org/apache/hadoop/io/compress/zlib/ZlibDecompressor.c' || echo '$(srcdir)/'`src/org/apache/hadoop/io/compress/zlib/ZlibDecompressor.c; \ +...@am__fastdepcc_true@ then mv -f "$(DEPDIR)/ZlibDecompressor.Tpo" "$(DEPDIR)/ZlibDecompressor.Plo"; else rm -f "$(DEPDIR)/ZlibDecompressor.Tpo"; exit 1; fi +...@amdep_true@@am__fastdepCC_FALSE@ source='src/org/apache/hadoop/io/compress/zlib/ZlibDecompressor.c' object='ZlibDecompressor.lo' libtool=yes @AMDEPBACKSLASH@ +...@amdep_true@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +...@am__fastdepcc_false@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ZlibDecompressor.lo `test -f 'src/org/apache/hadoop/io/compress/zlib/ZlibDecompressor.c' || echo '$(srcdir)/'`src/org/apache/hadoop/io/compress/zlib/ZlibDecompressor.c + +getGroup.lo: src/org/apache/hadoop/security/getGroup.c +...@am__fastdepcc_true@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT getGroup.lo -MD -MP -MF "$(DEPDIR)/getGroup.Tpo" -c -o getGroup.lo `test -f 'src/org/apache/hadoop/security/getGroup.c' || echo '$(srcdir)/'`src/org/apache/hadoop/security/getGroup.c; \ +...@am__fastdepcc_true@ then mv -f "$(DEPDIR)/getGroup.Tpo" "$(DEPDIR)/getGroup.Plo"; else rm -f "$(DEPDIR)/getGroup.Tpo"; exit 1; fi +...@amdep_true@@am__fastdepCC_FALSE@ source='src/org/apache/hadoop/security/getGroup.c' object='getGroup.lo' libtool=yes @AMDEPBACKSLASH@ +...@amdep_true@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +...@am__fastdepcc_false@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o getGroup.lo `test -f 'src/org/apache/hadoop/security/getGroup.c' || echo '$(srcdir)/'`src/org/apache/hadoop/security/getGroup.c + +JniBasedUnixGroupsMapping.lo: src/org/apache/hadoop/security/JniBasedUnixGroupsMapping.c +...@am__fastdepcc_true@ if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT JniBasedUnixGroupsMapping.lo -MD -MP -MF "$(DEPDIR)/JniBasedUnixGroupsMapping.Tpo" -c -o JniBasedUnixGroupsMapping.lo `test -f 'src/org/apache/hadoop/security/JniBasedUnixGroupsMapping.c' || echo '$(srcdir)/'`src/org/apache/hadoop/security/JniBasedUnixGroupsMapping.c; \ +...@am__fastdepcc_true@ then mv -f "$(DEPDIR)/JniBasedUnixGroupsMapping.Tpo" "$(DEPDIR)/JniBasedUnixGroupsMapping.Plo"; else rm -f "$(DEPDIR)/JniBasedUnixGroupsMapping.Tpo"; exit 1; fi +...@amdep_true@@am__fastdepCC_FALSE@ source='src/org/apache/hadoop/security/JniBasedUnixGroupsMapping.c' object='JniBasedUnixGroupsMapping.lo' libtool=yes @AMDEPBACKSLASH@ +...@amdep_true@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +...@am__fastdepcc_false@ $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o JniBasedUnixGroupsMapping.lo `test -f 'src/org/apache/hadoop/security/JniBasedUnixGroupsMapping.c' || echo '$(srcdir)/'`src/org/apache/hadoop/security/JniBasedUnixGroupsMapping.c mostlyclean-libtool: -rm -f *.lo @@ -273,65 +389,6 @@ distclean-libtool: -rm -f libtool uninstall-info-am: -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @set fnord $$MAKEFLAGS; amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $$MAKEFLAGS; amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ @@ -342,23 +399,10 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS mkid -fID $$unique tags: TAGS -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ +TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ @@ -371,7 +415,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCE $$tags $$unique; \ fi ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ +CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ @@ -423,21 +467,6 @@ distdir: $(DISTFILES) || exit 1; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - distdir) \ - || exit 1; \ - fi; \ - done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ @@ -536,19 +565,21 @@ distcleancheck: distclean $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am -check: check-recursive -all-am: Makefile config.h -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive +check: check-am +all-am: Makefile $(LTLIBRARIES) config.h +installdirs: + for dir in "$(DESTDIR)$(libdir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -installcheck: installcheck-recursive +installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ @@ -564,80 +595,79 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -clean: clean-recursive +clean: clean-am -clean-am: clean-generic clean-libtool mostlyclean-am +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am -distclean: distclean-recursive +distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf ./$(DEPDIR) -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr \ - distclean-libtool distclean-tags +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags -dvi: dvi-recursive +dvi: dvi-am dvi-am: -html: html-recursive +html: html-am -info: info-recursive +info: info-am info-am: install-data-am: -install-exec-am: +install-exec-am: install-libLTLIBRARIES -install-info: install-info-recursive +install-info: install-info-am install-man: installcheck-am: -maintainer-clean: maintainer-clean-recursive +maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic -mostlyclean: mostlyclean-recursive +mostlyclean: mostlyclean-am -mostlyclean-am: mostlyclean-generic mostlyclean-libtool +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool -pdf: pdf-recursive +pdf: pdf-am pdf-am: -ps: ps-recursive +ps: ps-am ps-am: -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive +uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ - check-am clean clean-generic clean-libtool clean-recursive \ - ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ - dist-shar dist-tarZ dist-zip distcheck distclean \ - distclean-generic distclean-hdr distclean-libtool \ - distclean-recursive distclean-tags distcleancheck distdir \ - distuninstallcheck dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am uninstall-info-am +.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ + clean-generic clean-libLTLIBRARIES clean-libtool ctags dist \ + dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \ + distcheck distclean distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-exec install-exec-am install-info install-info-am \ + install-libLTLIBRARIES install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-info-am \ + uninstall-libLTLIBRARIES # Export $(PLATFORM) to prevent proliferation of sub-shells export PLATFORM = $(shell echo $$OS_NAME | tr [A-Z] [a-z]) -# The following export is needed to build libhadoop.so in the 'lib' directory -export SUBDIRS - # #vim: sw=4: ts=4: noet #