首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成rApache的Makefile会导致错误

生成rApache的Makefile会导致错误
EN

Stack Overflow用户
提问于 2012-08-16 20:29:46
回答 1查看 164关注 0票数 0

提前道歉,我是Linux和这些东西的新手。

我必须安装rApache 1.2.0,但是当我在终端上写下:

代码语言:javascript
复制
make -f ~/Makefile.am

它会给我带来很多错误,比如:

代码语言:javascript
复制
make: *** No rule to make target "mod_R.h", needed by "mod_R.so".

代码语言:javascript
复制
make: *** No rule to make target "@DOCROOT@/httpd.conf.in", needed by "@DOCROOT@/httpd.conf".

下面是Makefile.am (link):

代码语言:javascript
复制
# DARWIN has to be different than everyone else
# and define their autoconf $shlibpath_var to be DYLD_LIBRARY_PATH
SHLIBPATH_VAR=@SHLIBPATH_VAR@

ACLOCAL_AMFLAGS = -I m4

APXS=@APXS@
HTTPD=@HTTPD@
DOCROOT=@DOCROOT@

APREQ=@APREQ@
APREQ_COMPILE=@APREQ_COMPILE@
APREQ_INSTALL=@APREQ_INSTALL@
APREQ_CLEAN=@APREQ_CLEAN@
APREQ_LIB_DIR=@APREQ_LIB_DIR@
APREQ_INCLUDES=@APREQ_INCLUDES@
APREQ_LINKLD=@APREQ_LINKLD@

RPROG=@RPROG@
RPROGBATCH=R_DEFAULT_PACKAGES=NULL @RPROG@ --vanilla --no-readline --slave -f
R_HOME = `$(RPROG) RHOME`
R_LD_LIBRARY_PATH = $(R_HOME)/lib
RINCLUDES=@RINCLUDES@
RLINKLD=@RLINKLD@

INCLUDES = $(RINCLUDES) $(APREQ_INCLUDES)
LDFLAGS = $(RLINKLD) $(APREQ_LINKLD)
LD_LIBRARY_PATH=$(R_LD_LIBRARY_PATH):$(APREQ_LIB_DIR)
RPATH=@RPATH@

all: mod_R.so $(DOCROOT)/httpd.conf

mod_R.so: .apreq-config mod_R.c mod_R.h
    @echo
    @echo Compiling mod_R
    @echo
    $(APXS) $(INCLUDES) -c mod_R.c $(RPATH) $(LDFLAGS)

.apreq-config:
    @echo
    @echo Configuring libapreq2
    @echo
    $(APREQ_COMPILE)
    touch .apreq-config

install: all
    $(APXS) -i -n R mod_R.la
    $(APREQ_INSTALL)

$(DOCROOT)/httpd.conf: $(DOCROOT)/httpd.conf.in
    $(RPROGBATCH) tools/config_http.R --args $(APXS) $(HTTPD)

itest: all
    @echo
    @echo Point your browser to http://localhost:8181/index.html
    @echo
    $(SHLIBPATH_VAR)=$(LD_LIBRARY_PATH) R_HOME=$(R_HOME) $(HTTPD) -X -f $(DOCROOT)/httpd.conf

test: all $(DOCROOT)/httpd.conf

stop: all
    $(SHLIBPATH_VAR)=$(LD_LIBRARY_PATH) R_HOME=$(R_HOME) $(HTTPD) -X -f $(DOCROOT)/httpd.conf -k stop

valgrind: all
    $(SHLIBPATH_VAR)=$(LD_LIBRARY_PATH) R_HOME=$(R_HOME) valgrind $(HTTPD) -X -f $(DOCROOT)/httpd.conf

debug: all
    @echo
    @echo Copy/paste the following line to gdb
    @echo
    @echo run -X -f $(DOCROOT)/httpd.conf 
    @echo
    $(SHLIBPATH_VAR)=$(LD_LIBRARY_PATH) R_HOME=$(R_HOME) gdb $(HTTPD)

clean:
    rm -rf $(OBJS) core mod_R.o mod_R.so *~ .libs *.o *.slo *.lo *.la .apreq-config
    $(APREQ_CLEAN)

distclean: clean
    rm -rf mod_R.h Makefile .depend .install libtool config.log config.status test/httpd.conf test/access_log test/error_log test/httpd.pid test/accept.lock* aclocal.m4 autom4te.cache libapreq2/library/t/Makefile libapreq2/config.nice libapreq2/module/apache/Makefile
    $(APREQ_CLEAN)

任何帮助都将不胜感激。

谢谢,Sho

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-16 20:35:01

makefile.am是autotools的模板

makefile.am -> automake -> makefile.in

makefile.in -> autoconf ->生成文件

必须有安装文件或自述文件。

通常,命令是

代码语言:javascript
复制
./configure
make
make test
make install

尝试使用./configure --help选项(如果您不是管理员,请使用--prefix)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11987151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档