2012-04-06 19 views
7

In meinem neuen Projekt muss ich auf einem geschriebenen Projekt basieren. Und ich weiß, dass ich das NDK verwenden kann, aber hier ist eine Frage: Wie schreibt man den Standard Makefile in den Android.mk? Und noch mehr, in Android, kann ich, unter Vernachlässigung der ndk, das Projekt direkt mit Hilfe der jni bauen, um das c-Projekt in das Android-Projekt anzupassen? Und mehr Idee, das c-Projekt in das android-Projekt anzupassen? Danke. Endlich, hier ist das Makefile:Wie schreibe ich das Makefile in 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: 

Antwort

2

Sie über die falsche Richtung. Die Datei Android.mk entspricht der Datei Makefile.ac in der Welt der Autotools. Beginnen Sie also mit der Konvertierung von Makefile.ac und nicht von Makefile selbst.

Das einzige Problem, mit dem Sie konfrontiert werden, ist, dass es für das Konfigurationsskript im NDK keine Entsprechung gibt. Dies bedeutet, dass es keine automatische Methode zum Erstellen der config.h gibt, die normalerweise in Projekten mit Autotools gefunden wird.

Eine schnelle und hacky Lösung ist, ./configure mit entsprechenden Optionen zu laufen, um eine korrekte config.h zu erzeugen, die Makefile.am in Android.mk zu portieren und dann mit dem NDK zu bauen.

Die Optionen, die ich verwende NDK R 7c verwenden (I gegen API_8 bauen, die 2,2 ist):

./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" 

Ein Beispiel dafür, was ich getan habe (Datei (1) und libmagic) von http://forum.xda-developers.com/showthread.php?t=1612760

heruntergeladen werden
1

Vielleicht müssen Sie die Makefile oder Makefile.ac nicht in Android.mk konvertieren. Sie können auch Android NDK-Toolchains unabhängig wie in der Android NDK-Dokumentation ($ {NDK_INSTALL_DIR} /doc/STANDALONE-TOOLCHAIN.html) beschrieben verwenden. Sie müßten -sysroot Option für Quer angeben gcc kompilieren, wenn ./configure ausgeführt wird, so etwas wie dies vielleicht:

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

Sie es durch den Bau von spezieller Werkzeugkette der Beseitigung der Notwendigkeit noch einfacher machen könnte -sysroot Option (das auch in detailliert zu schaffen die oben genannte NDK-Dokumentationsdatei).

Verwandte Fragen:

  • Antwort Tool to generate an Android.mk sagt man Cmake Android.mk-Dateien erstellen verwenden könnte - ich habe nicht versucht, und haben keine Ahnung von diesem Ansatz.
  • Android.mk for LibXtract (enthält meine Antwort mit mehr Details als hier über die Verwendung unabhängiger Werkzeugkette angegeben).