2012-04-06 69 views
7

在我的新項目,我需要立足於一個C寫的項目。 我知道我可以使用NDK做到這一點,但這裏有一個問題:如何改寫標準MakefileAndroid.mk? 而且進一步,在Android中,我可以,而忽略了NDK,建立使用JNI適應的C項目進入Android項目工程直接? 而又想把c項目調整到android項目中的想法?謝謝。 最後,這裏是Makefile:如何將Makefile重寫爲android.mk?

# Makefile.in generated by automake 1.10.1 from Makefile.am. 
# Makefile. Generated from Makefile.in by configure. 

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 
# 2003, 2004, 2005, 2006, 2007, 2008 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. 

# This program is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without 
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
# PARTICULAR PURPOSE. 




pkgdatadir = $(datadir)/fuse 
pkglibdir = $(libdir)/fuse 
pkgincludedir = $(includedir)/fuse 
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 
install_sh_DATA = $(install_sh) -c -m 644 
install_sh_PROGRAM = $(install_sh) -c 
install_sh_SCRIPT = $(install_sh) -c 
INSTALL_HEADER = $(INSTALL_DATA) 
transform = $(program_transform_name) 
NORMAL_INSTALL = : 
PRE_INSTALL = : 
POST_INSTALL = : 
NORMAL_UNINSTALL = : 
PRE_UNINSTALL = : 
POST_UNINSTALL = : 
build_triplet = i686-pc-linux-gnu 
host_triplet = i686-pc-linux-gnu 
target_triplet = i686-pc-linux-gnu 
subdir = . 
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ 
    $(srcdir)/Makefile.in $(srcdir)/fuse.pc.in \ 
    $(top_srcdir)/configure AUTHORS COPYING COPYING.LIB ChangeLog \ 
    INSTALL NEWS compile config.guess config.rpath config.sub \ 
    depcomp install-sh ltmain.sh missing 
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ 
    $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ 
    $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ 
    $(top_srcdir)/configure.in 
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 
    $(ACLOCAL_M4) 
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ 
configure.lineno config.status.lineno 
mkinstalldirs = $(install_sh) -d 
CONFIG_HEADER = $(top_builddir)/include/config.h 
CONFIG_CLEAN_FILES = fuse.pc 
SOURCES = 
DIST_SOURCES = 
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ 
    html-recursive info-recursive install-data-recursive \ 
    install-dvi-recursive install-exec-recursive \ 
    install-html-recursive install-info-recursive \ 
    install-pdf-recursive install-ps-recursive install-recursive \ 
    installcheck-recursive installdirs-recursive pdf-recursive \ 
    ps-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)$(pkgconfigdir)" 
pkgconfigDATA_INSTALL = $(INSTALL_DATA) 
DATA = $(pkgconfig_DATA) 
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ 
    distclean-recursive maintainer-clean-recursive 
ETAGS = etags 
CTAGS = ctags 
DIST_SUBDIRS = $(SUBDIRS) 
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 
distdir = $(PACKAGE)-$(VERSION) 
top_distdir = $(distdir) 
am__remove_distdir = \ 
    { test ! -d $(distdir) \ 
    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ 
     && rm -fr $(distdir); }; } 
DIST_ARCHIVES = $(distdir).tar.gz 
GZIP_ENV = --best 
distuninstallcheck_listfiles = find . -type f -print 
distcleancheck_listfiles = find . -type f -print 
ACLOCAL = ${SHELL} /home/kaiwii/fuse-2.8.1/missing --run aclocal-1.10 
AMTAR = ${SHELL} /home/kaiwii/fuse-2.8.1/missing --run tar 
AR = ar 
AUTOCONF = ${SHELL} /home/kaiwii/fuse-2.8.1/missing --run autoconf 
AUTOHEADER = ${SHELL} /home/kaiwii/fuse-2.8.1/missing --run autoheader 
AUTOMAKE = ${SHELL} /home/kaiwii/fuse-2.8.1/missing --run automake-1.10 
AWK = gawk 
CC = gcc 
CCDEPMODE = depmode=gcc3 
CFLAGS = -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing 
CPP = gcc -E 
CPPFLAGS = 
CYGPATH_W = echo 
DEFS = -DHAVE_CONFIG_H 
DEPDIR = .deps 
DSYMUTIL = 
DUMPBIN = 
ECHO_C = 
ECHO_N = -n 
ECHO_T = 
EGREP = /bin/grep -E 
EXEEXT = 
FGREP = /bin/grep -F 
GREP = /bin/grep 
INIT_D_PATH = /etc/init.d 
INSTALL = /usr/bin/install -c 
INSTALL_DATA = ${INSTALL} -m 644 
INSTALL_PROGRAM = ${INSTALL} 
INSTALL_SCRIPT = ${INSTALL} 
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s 
LD = /usr/bin/ld 
LDFLAGS = 
LIBICONV = 
LIBOBJS = 
LIBS = 
LIBTOOL = $(SHELL) $(top_builddir)/libtool 
LIPO = 
LN_S = ln -s 
LTLIBICONV = 
LTLIBOBJS = 
MAKEINFO = ${SHELL} /home/kaiwii/fuse-2.8.1/missing --run makeinfo 
MKDIR_P = /bin/mkdir -p 
MOUNT_FUSE_PATH = /sbin 
NM = /usr/bin/nm -B 
NMEDIT = 
OBJDUMP = objdump 
OBJEXT = o 
OTOOL = 
OTOOL64 = 
PACKAGE = fuse 
PACKAGE_BUGREPORT = 
PACKAGE_NAME = fuse 
PACKAGE_STRING = fuse 2.8.1 
PACKAGE_TARNAME = fuse 
PACKAGE_VERSION = 2.8.1 
PATH_SEPARATOR = : 
RANLIB = ranlib 
SED = /bin/sed 
SET_MAKE = 
SHELL = /bin/bash 
STRIP = strip 
UDEV_RULES_PATH = /etc/udev/rules.d 
VERSION = 2.8.1 
abs_builddir = /home/kaiwii/fuse-2.8.1 
abs_srcdir = /home/kaiwii/fuse-2.8.1 
abs_top_builddir = /home/kaiwii/fuse-2.8.1 
abs_top_srcdir = /home/kaiwii/fuse-2.8.1 
ac_ct_CC = gcc 
ac_ct_DUMPBIN = 
am__include = include 
am__leading_dot = . 
am__quote = 
am__tar = ${AMTAR} chof - "$$tardir" 
am__untar = ${AMTAR} xf - 
bindir = ${exec_prefix}/bin 
build = i686-pc-linux-gnu 
build_alias = 
build_cpu = i686 
build_os = linux-gnu 
build_vendor = pc 
builddir = . 
datadir = ${datarootdir} 
datarootdir = ${prefix}/share 
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} 
dvidir = ${docdir} 
exec_prefix = ${prefix} 
host = i686-pc-linux-gnu 
host_alias = 
host_cpu = i686 
host_os = linux-gnu 
host_vendor = pc 
htmldir = ${docdir} 
includedir = ${prefix}/include 
infodir = ${datarootdir}/info 
install_sh = $(SHELL) /home/kaiwii/fuse-2.8.1/install-sh 
libdir = ${exec_prefix}/lib 
libexecdir = ${exec_prefix}/libexec 
libfuse_libs = -pthread -lrt -ldl 
localedir = ${datarootdir}/locale 
localstatedir = ${prefix}/var 
lt_ECHO = echo 
mandir = ${datarootdir}/man 
mkdir_p = /bin/mkdir -p 
oldincludedir = /usr/include 
pdfdir = ${docdir} 
pkgconfigdir = ${libdir}/pkgconfig 
prefix = /usr/local 
program_transform_name = s,x,x, 
psdir = ${docdir} 
sbindir = ${exec_prefix}/sbin 
sharedstatedir = ${prefix}/com 
srcdir = . 
subdirs2 = include lib util example 
sysconfdir = ${prefix}/etc 
target = i686-pc-linux-gnu 
target_alias = 
target_cpu = i686 
target_os = linux-gnu 
target_vendor = pc 
top_build_prefix = 
top_builddir = . 
top_srcdir = . 
ACLOCAL_AMFLAGS = -I m4 
SUBDIRS = include lib util example 
EXTRA_DIST = \ 
    fuse.pc.in  \ 
    README*   \ 
    Filesystems  \ 
    FAQ   \ 
    doc/how-fuse-works \ 
    doc/kernel.txt  \ 
    doc/Doxyfile 

pkgconfig_DATA = fuse.pc 
all: all-recursive 

.SUFFIXES: 
am--refresh: 
    @: 
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) 
    @for dep in $?; do \ 
     case '$(am__configure_deps)' in \ 
     *$$dep*) \ 
      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ 
      cd $(srcdir) && $(AUTOMAKE) --gnu \ 
     && exit 0; \ 
      exit 1;; \ 
     esac; \ 
    done; \ 
    echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ 
    cd $(top_srcdir) && \ 
     $(AUTOMAKE) --gnu Makefile 
.PRECIOUS: Makefile 
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 
    @case '$?' in \ 
     *config.status*) \ 
     echo ' $(SHELL) ./config.status'; \ 
     $(SHELL) ./config.status;; \ 
     *) \ 
     echo ' cd $(top_builddir) && $(SHELL) ./config.status [email protected] $(am__depfiles_maybe)'; \ 
     cd $(top_builddir) && $(SHELL) ./config.status [email protected] $(am__depfiles_maybe);; \ 
    esac; 

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 
    $(SHELL) ./config.status --recheck 

$(top_srcdir)/configure: $(am__configure_deps) 
    cd $(srcdir) && $(AUTOCONF) 
$(ACLOCAL_M4): $(am__aclocal_m4_deps) 
    cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) 
fuse.pc: $(top_builddir)/config.status $(srcdir)/fuse.pc.in 
    cd $(top_builddir) && $(SHELL) ./config.status [email protected] 

mostlyclean-libtool: 
    -rm -f *.lo 

clean-libtool: 
    -rm -rf .libs _libs 

distclean-libtool: 
    -rm -f libtool 
install-pkgconfigDATA: $(pkgconfig_DATA) 
    @$(NORMAL_INSTALL) 
    test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" 
    @list='$(pkgconfig_DATA)'; for p in $$list; do \ 
     if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ 
     f=$(am__strip_dir) \ 
     echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ 
     $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ 
    done 

uninstall-pkgconfigDATA: 
    @$(NORMAL_UNINSTALL) 
    @list='$(pkgconfig_DATA)'; for p in $$list; do \ 
     f=$(am__strip_dir) \ 
     echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ 
     rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ 
    done 

# 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): 
    @failcom='exit 1'; \ 
    for f in x $$MAKEFLAGS; do \ 
     case $$f in \ 
     *=* | --[!k]*);; \ 
     *k*) failcom='fail=yes';; \ 
     esac; \ 
    done; \ 
    dot_seen=no; \ 
    target=`echo [email protected] | 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) \ 
     || eval $$failcom; \ 
    done; \ 
    if test "$$dot_seen" = "no"; then \ 
     $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ 
    fi; test -z "$$fail" 

$(RECURSIVE_CLEAN_TARGETS): 
    @failcom='exit 1'; \ 
    for f in x $$MAKEFLAGS; do \ 
     case $$f in \ 
     *=* | --[!k]*);; \ 
     *k*) failcom='fail=yes';; \ 
     esac; \ 
    done; \ 
    dot_seen=no; \ 
    case "[email protected]" 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 [email protected] | 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) \ 
     || eval $$failcom; \ 
    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 \ 
     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 
     done | \ 
     $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ 
      END { if (nonempty) { for (i in files) print i; }; }'`; \ 
    mkid -fID $$unique 
tags: TAGS 

TAGS: tags-recursive $(HEADERS) $(SOURCES) $(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) $(LISP) $(TAGS_FILES)'; \ 
    unique=`for i in $$list; do \ 
     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 
     done | \ 
     $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 
      END { if (nonempty) { for (i in files) print i; }; }'`; \ 
    if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 
     test -n "$$unique" || unique=$$empty_fix; \ 
     $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 
     $$tags $$unique; \ 
    fi 
ctags: CTAGS 
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 
     $(TAGS_FILES) $(LISP) 
    tags=; \ 
    list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 
    unique=`for i in $$list; do \ 
     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 
     done | \ 
     $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ 
      END { if (nonempty) { for (i in files) print i; }; }'`; \ 
    test -z "$(CTAGS_ARGS)$$tags$$unique" \ 
     || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 
     $$tags $$unique 

GTAGS: 
    here=`$(am__cd) $(top_builddir) && pwd` \ 
     && cd $(top_srcdir) \ 
     && gtags -i $(GTAGS_ARGS) $$here 

distclean-tags: 
    -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 

distdir: $(DISTFILES) 
    $(am__remove_distdir) 
    test -d $(distdir) || mkdir $(distdir) 
    @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 
    topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ 
    list='$(DISTFILES)'; \ 
     dist_files=`for file in $$list; do echo $$file; done | \ 
     sed -e "s|^$$srcdirstrip/||;t" \ 
      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ 
    case $$dist_files in \ 
     */*) $(MKDIR_P) `echo "$$dist_files" | \ 
       sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ 
       sort -u` ;; \ 
    esac; \ 
    for file in $$dist_files; do \ 
     if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 
     if test -d $$d/$$file; then \ 
     dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ 
     if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 
      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ 
     fi; \ 
     cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ 
     else \ 
     test -f $(distdir)/$$file \ 
     || cp -p $$d/$$file $(distdir)/$$file \ 
     || 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" \ 
     am__remove_distdir=: \ 
     am__skip_length_check=: \ 
      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 \ 
     ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ 
    || chmod -R a+r $(distdir) 
dist-gzip: distdir 
    tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz 
    $(am__remove_distdir) 

dist-bzip2: distdir 
    tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 
    $(am__remove_distdir) 

dist-lzma: distdir 
    tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma 
    $(am__remove_distdir) 

dist-tarZ: distdir 
    tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z 
    $(am__remove_distdir) 

dist-shar: distdir 
    shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz 
    $(am__remove_distdir) 

dist-zip: distdir 
    -rm -f $(distdir).zip 
    zip -rq $(distdir).zip $(distdir) 
    $(am__remove_distdir) 

dist dist-all: distdir 
    tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz 
    $(am__remove_distdir) 

# This target untars the dist file and tries a VPATH configuration. Then 
# it guarantees that the distribution is self-contained by making another 
# tarfile. 
distcheck: dist 
    case '$(DIST_ARCHIVES)' in \ 
    *.tar.gz*) \ 
     GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ 
    *.tar.bz2*) \ 
     bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ 
    *.tar.lzma*) \ 
     unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ 
    *.tar.Z*) \ 
     uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ 
    *.shar.gz*) \ 
     GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ 
    *.zip*) \ 
     unzip $(distdir).zip ;;\ 
    esac 
    chmod -R a-w $(distdir); chmod a+w $(distdir) 
    mkdir $(distdir)/_build 
    mkdir $(distdir)/_inst 
    chmod a-w $(distdir) 
    dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ 
     && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ 
     && cd $(distdir)/_build \ 
     && ../configure --srcdir=.. --prefix="$$dc_install_base" \ 
     $(DISTCHECK_CONFIGURE_FLAGS) \ 
     && $(MAKE) $(AM_MAKEFLAGS) \ 
     && $(MAKE) $(AM_MAKEFLAGS) dvi \ 
     && $(MAKE) $(AM_MAKEFLAGS) check \ 
     && $(MAKE) $(AM_MAKEFLAGS) install \ 
     && $(MAKE) $(AM_MAKEFLAGS) installcheck \ 
     && $(MAKE) $(AM_MAKEFLAGS) uninstall \ 
     && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ 
      distuninstallcheck \ 
     && chmod -R a-w "$$dc_install_base" \ 
     && ({ \ 
      (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ 
      && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ 
      && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ 
      && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ 
       distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ 
      } || { rm -rf "$$dc_destdir"; exit 1; }) \ 
     && rm -rf "$$dc_destdir" \ 
     && $(MAKE) $(AM_MAKEFLAGS) dist \ 
     && rm -rf $(DIST_ARCHIVES) \ 
     && $(MAKE) $(AM_MAKEFLAGS) distcleancheck 
    $(am__remove_distdir) 
    @(echo "$(distdir) archives ready for distribution: "; \ 
     list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ 
     sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' 
distuninstallcheck: 
    @cd $(distuninstallcheck_dir) \ 
    && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ 
     || { echo "ERROR: files left after uninstall:" ; \ 
      if test -n "$(DESTDIR)"; then \ 
       echo " (check DESTDIR support)"; \ 
      fi ; \ 
      $(distuninstallcheck_listfiles) ; \ 
      exit 1; } >&2 
distcleancheck: distclean 
    @if test '$(srcdir)' = . ; then \ 
     echo "ERROR: distcleancheck can only run from a VPATH build" ; \ 
     exit 1 ; \ 
    fi 
    @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ 
     || { echo "ERROR: files left in build directory after distclean:" ; \ 
      $(distcleancheck_listfiles) ; \ 
      exit 1; } >&2 
check-am: all-am 
check: check-recursive 
all-am: Makefile $(DATA) 
installdirs: installdirs-recursive 
installdirs-am: 
    for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ 
     test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 
    done 
install: install-recursive 
install-exec: install-exec-recursive 
install-data: install-data-recursive 
uninstall: uninstall-recursive 

install-am: all-am 
    @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 

installcheck: installcheck-recursive 
install-strip: 
    $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 
     install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 
     `test -z '$(STRIP)' || \ 
     echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install 
mostlyclean-generic: 

clean-generic: 

distclean-generic: 
    -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 

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-am: clean-generic clean-libtool mostlyclean-am 

distclean: distclean-recursive 
    -rm -f $(am__CONFIG_DISTCLEAN_FILES) 
    -rm -f Makefile 
distclean-am: clean-am distclean-generic distclean-libtool \ 
    distclean-tags 

dvi: dvi-recursive 

dvi-am: 

html: html-recursive 

info: info-recursive 

info-am: 

install-data-am: install-pkgconfigDATA 

install-dvi: install-dvi-recursive 

install-exec-am: 

install-html: install-html-recursive 

install-info: install-info-recursive 

install-man: 

install-pdf: install-pdf-recursive 

install-ps: install-ps-recursive 

installcheck-am: 

maintainer-clean: maintainer-clean-recursive 
    -rm -f $(am__CONFIG_DISTCLEAN_FILES) 
    -rm -rf $(top_srcdir)/autom4te.cache 
    -rm -f Makefile 
maintainer-clean-am: distclean-am maintainer-clean-generic 

mostlyclean: mostlyclean-recursive 

mostlyclean-am: mostlyclean-generic mostlyclean-libtool 

pdf: pdf-recursive 

pdf-am: 

ps: ps-recursive 

ps-am: 

uninstall-am: uninstall-pkgconfigDATA 

.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ 
    install-strip 

.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ 
    all all-am am--refresh check check-am clean clean-generic \ 
    clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ 
    dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \ 
    distclean distclean-generic 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-dvi install-dvi-am install-exec \ 
    install-exec-am install-html install-html-am install-info \ 
    install-info-am install-man install-pdf install-pdf-am \ 
    install-pkgconfigDATA install-ps install-ps-am install-strip \ 
    installcheck installcheck-am installdirs installdirs-am \ 
    maintainer-clean maintainer-clean-generic mostlyclean \ 
    mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 
    tags tags-recursive uninstall uninstall-am \ 
    uninstall-pkgconfigDATA 


$(pkgconfig_DATA): config.status 
# Tell versions [3.59,3.63) of GNU make to not export all variables. 
# Otherwise a system limit (for SysV at least) may be exceeded. 
.NOEXPORT: 

回答

2

你正在說錯誤的方法。 Android.mk文件等同於autotools世界中的Makefile.ac文件。因此,從Makefile.ac的轉換開始,而不是Makefile本身。

但是,你要面對的一個問題是,沒有任何相當於在NDK的配置腳本。這意味着沒有自動方法來創建通常在使用自動工具的項目中找到的config.h。

一個快速和hacky的解決方案是運行./configure和適當的選項來生成一個正確的config.h,將Makefile.am移植到Android.mk中,然後使用NDK構建。

我用的都是使用NDK R 7 C選項(我築起API_8是2.2):

./configure \ 
--host=arm-linux-androideabi \ 
CC=arm-linux-androideabi-gcc \ 
LD=arm-linux-androideabi-ld \ 
CPPFLAGS="-I/home/sdk/ndk/platforms/android-8/arch-arm/usr/include/" \ 
CFLAGS="-nostdlib" \ 
LDFLAGS="-Wl,-rpath-link=/home/sdk/ndk/platforms/android-8/arch-arm/usr/lib/ -L/home/sdk/ndk/platforms/android-8/arch-arm/usr/lib/" \ 
LIBS="-lc" 

我所做的一個例子(文件(1)和libmagic)可以從http://forum.xda-developers.com/showthread.php?t=1612760

下載
1

也許你並不需要在MakefileMakefile.ac轉化爲Android.mk。您也可以獨立使用Android NDK工具鏈,詳情請參閱Android NDK文檔($ {NDK_INSTALL_DIR} /doc/STANDALONE-TOOLCHAIN.html)。運行./configure時,您需要指定-sysroot選項交叉編譯gcc,這樣的事情也許是:

./configure --host=xxx CC="xxx-gcc" \ 
CFLAGS="-sysroot ${NDK_INSTALL_DIR}/platforms/android-<level>/arch-<arch>/" \ 
CPPFLAGS="-sysroot ..." ... 

你可以通過建立專門的工具鏈不再需要提供-sysroot選項(這也詳細使其更容易上述NDK文檔文件)。

相關問題:

  • 答到Tool to generate an Android.mk說,你可以使用cmake的建立Android.mk文件 - 我還沒有嘗試過,並沒有對這種做法的想法。
  • Android.mk for LibXtract(包括我的一些更詳細的回答比這裏給出的關於使用獨立的工具鏈)。
相關問題