how to rewrite the Makefile into android.mk?

半世苍凉 提交于 2019-12-18 11:34:41

问题


In my new project, I need to base on a c written project. And I know that I can use the NDK to do it, but here is a question: how to rewrite the standard Makefile into the Android.mk? And further more, in Android, can I, neglecting the ndk, build the project directly using the jni to adapt the c project into the android project? And anymore idea to adapt the c project into the android project? thx. At last, here is the Makefile:

# 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 $@ $(am__depfiles_maybe)'; \
        cd $(top_builddir) && $(SHELL) ./config.status $@ $(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 $@

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 $@ | 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 "$@" 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) \
      || 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: 

回答1:


You're going about the incorrect way. The Android.mk file is equivalent to the Makefile.ac in the autotools world. So start with the conversion of the Makefile.ac, rather than the Makefile itself.

However, the one issue you'll face is that there isn't any equivalent for the configure script in the NDK. This means that there is no automated method to create the config.h usually found in projects using autotools.

A quick and hacky solution is to run ./configure with appropriate options to generate a config.h that is correct, port the Makefile.am into Android.mk and then build with the NDK.

The options I use are using ndk r7c(I build against API_8 which is 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"

An example of what I did (file(1) and libmagic) can be downloaded from http://forum.xda-developers.com/showthread.php?t=1612760




回答2:


Maybe you do not need to convert the Makefile or Makefile.ac into Android.mk. You can also use Android NDK tool chains independently as detailed in Android NDK documentation (${NDK_INSTALL_DIR}/doc/STANDALONE-TOOLCHAIN.html). You would need to specify -sysroot option for cross compile gcc when running ./configure, something like this perhaps:

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

You could make it even easier by building dedicated tool chain removing the need to provide -sysroot option (this also detailed in the above NDK documentation file).

Related questions:

  • Answer to Tool to generate an Android.mk says you could use cmake to build Android.mk files - I have not tried and have no idea about this approach.
  • Android.mk for LibXtract (includes my answer with some more details than given here about using independent tool chain).


来源:https://stackoverflow.com/questions/10040693/how-to-rewrite-the-makefile-into-android-mk

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!