如何在生成的Makefile中添加依赖项

如何在生成的Makefile中添加依赖项,makefile,automake,Makefile,Automake,我必须修改一个在Makefile中有错误的坏项目。但是,我是libtool的新手,不知道应该在Makefile中修改什么。错误是 ../libpsc/.libs/libpsc.a(push_part_1vb_mix.o):(.rodata+0x38): undefined reference to `psc_push_particles_1vb_ps2_ops' 包含psc_push_粒子_1vb_ps2_ops的对象文件位于../libpsc/sse2文件夹中。如何修改Makefile以让链

我必须修改一个在Makefile中有错误的坏项目。但是,我是libtool的新手,不知道应该在Makefile中修改什么。错误是

../libpsc/.libs/libpsc.a(push_part_1vb_mix.o):(.rodata+0x38): undefined reference to `psc_push_particles_1vb_ps2_ops'
包含psc_push_粒子_1vb_ps2_ops的对象文件位于../libpsc/sse2文件夹中。如何修改Makefile以让链接器找到此对象文件?我附加了Makefile的一部分。如有任何建议,将不胜感激。提前谢谢

# Makefile.in generated by automake 1.11.6 from Makefile.am.
# src/Makefile.  Generated from Makefile.in by configure.

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




am__make_dryrun = \
  { \
    am__dry=no; \ 
    case $$MAKEFLAGS in \
      *\\[\ \   ]*) \
        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
      *) \
        for am__flg in $$MAKEFLAGS; do \
          case $$am__flg in \
            *=*|--*) ;; \
            *n*) am__dry=yes; break;; \
          esac; \
        done;; \
    esac; \
    test $$am__dry = yes; \
  }
pkgdatadir = $(datadir)/psc
pkgincludedir = $(includedir)/psc
pkglibdir = $(libdir)/psc
pkglibexecdir = $(libexecdir)/psc
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 = x86_64-unknown-linux-gnu
host_triplet = x86_64-unknown-linux-gnu
bin_PROGRAMS = psc_es1$(EXEEXT) psc_bohm$(EXEEXT) psc_spitzer$(EXEEXT) \
        psc_kelvin_helmholtz$(EXEEXT) \
        psc_kelvin_helmholtz_double$(EXEEXT) psc_mirror$(EXEEXT) \
        psc_harris$(EXEEXT) psc_bubble$(EXEEXT) psc_bubble_yz$(EXEEXT) \
        psc_test_emission$(EXEEXT) psc_test_singlepart$(EXEEXT) \
        psc_test_microsphere$(EXEEXT) psc_photon_test$(EXEEXT) \
        psc_test_twoparticles$(EXEEXT) psc_test_heating$(EXEEXT) \
        psc_test_fdtd$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compiler_flags.m4 \
        $(top_srcdir)/m4/ax_check_hdf5.m4 $(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.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
psc_bohm_SOURCES = psc_bohm.c
psc_bohm_OBJECTS = psc_bohm.$(OBJEXT)
psc_bohm_LDADD = $(LDADD)
psc_bohm_DEPENDENCIES = libpsc/libpsc.la libmrc/src/libmrc.la
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
psc_bubble_SOURCES = psc_bubble.c
# Skip hundreds of lines...
mostlyclean-compile:
        -rm -f *.$(OBJEXT)

distclean-compile:
        -rm -f *.tab.c

include ./$(DEPDIR)/dummy.Po
include ./$(DEPDIR)/psc_bohm.Po
include ./$(DEPDIR)/psc_bubble.Po
include ./$(DEPDIR)/psc_bubble_yz.Po
include ./$(DEPDIR)/psc_es1.Po
include ./$(DEPDIR)/psc_harris.Po
include ./$(DEPDIR)/psc_kelvin_helmholtz.Po
include ./$(DEPDIR)/psc_kelvin_helmholtz_double.Po
include ./$(DEPDIR)/psc_mirror.Po
include ./$(DEPDIR)/psc_photon_test.Po
include ./$(DEPDIR)/psc_spitzer.Po
include ./$(DEPDIR)/psc_test_emission.Po
include ./$(DEPDIR)/psc_test_fdtd.Po
include ./$(DEPDIR)/psc_test_heating.Po
include ./$(DEPDIR)/psc_test_microsphere.Po
include ./$(DEPDIR)/psc_test_singlepart.Po
include ./$(DEPDIR)/psc_test_twoparticles.Po
.c.o:
        $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
        $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
        $(am__mv) $$depbase.Tpo $$depbase.Po
#       $(AM_V_CC)source='$<' object='$@' libtool=no \
#       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#       $(AM_V_CC_no)$(COMPILE) -c -o $@ $<

.c.obj:
        $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
        $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
        $(am__mv) $$depbase.Tpo $$depbase.Po
#       $(AM_V_CC)source='$<' object='$@' libtool=no \
#       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#       $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
        $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
        $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
        $(am__mv) $$depbase.Tpo $$depbase.Plo
#       $(AM_V_CC)source='$<' object='$@' libtool=yes \
#       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#       $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $<

.cxx.o:
        $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
        $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
        $(am__mv) $$depbase.Tpo $$depbase.Po
#       $(AM_V_CXX)source='$<' object='$@' libtool=no \
#       DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#       $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ $<
.cxx.obj:
        $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
        $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
        $(am__mv) $$depbase.Tpo $$depbase.Po
#       $(AM_V_CXX)source='$<' object='$@' libtool=no \
#       DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#       $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`

.cxx.lo:
        $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
        $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
        $(am__mv) $$depbase.Tpo $$depbase.Plo
#       $(AM_V_CXX)source='$<' object='$@' libtool=yes \
#       DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
#       $(AM_V_CXX_no)$(LTCXXCOMPILE) -c -o $@ $<

mostlyclean-libtool:
        -rm -f *.lo

clean-libtool:
        -rm -rf .libs _libs
# Skipped the lines left
#Makefile.in由automake 1.11.6从Makefile.am生成。
#src/Makefile。通过配置从Makefile.in生成。
#版权所有(C)1994、1995、1996、1997、1998、1999、2000、2001、2002、,
#2003、2004、2005、2006、2007、2008、2009、2010、2011自由软件
基金会
#这个Makefile.in是自由软件;自由软件基金会
#给予无限的复制和/或分发权限,
#无论有无修改,只要保留本通知。
#这个节目的发布是希望它会有用,
#但在法律允许的范围内,无任何保证;没有
#甚至是对产品适销性或适用性的默示保证
#特殊目的。
am_uuuMake_dryrun=\
{ \
am\uuu dry=否;\
案例$$MAKEFLAGS位于\
*\\[\ \   ]*) \
echo'am--echo:;@echo“am”OK'|$(MAKE)-f-2>/dev/null\
|grep“^AM OK$$”>/dev/null | | AM_uudry=yes\
*) \
对于$$MAKEFLAGS;do中的am_uflg\
案例$$am\U flg in\
*=*|--*) ;; \
*n*)am_uudry=是;中断\
以撒\
完成\
以撒\
测试$$am_uudry=是\
}
pkgdatadir=$(datadir)/psc
pkgincludedir=$(includedir)/psc
pkglibdir=$(libdir)/psc
pkglibexecdir=$(libexecdir)/psc
am_uucd=CDPATH=“$${ZSH_VERSION+.}$(路径分隔符)&&cd
install_sh_DATA=$(install_sh)-c-m 644
install_sh_PROGRAM=$(install_sh)-c
install_sh_SCRIPT=$(install_sh)-c
安装\u头=$(安装\u数据)
转换=$(程序\u转换\u名称)
正常安装=:
预安装=:
安装后=:
正常卸载=:
预卸载=:
卸载后=:
build_triplet=x86_64-unknown-linux-gnu
host_triplet=x86_64-unknown-linux-gnu
bin_PROGRAMS=psc_es1$(EXEXT)psc_bohm$(EXEXT)psc_spitzer$(EXEXT)\
psc_kelvin_helmholtz$(EXEXT)\
psc_kelvin_helmholtz_double$(EXEXT)psc_mirror$(EXEXT)\
psc_harris$(EXEXT)psc_bubble$(EXEXT)psc_bubble_yz$(EXEXT)\
psc_测试排放$(EXEXT)psc_测试单部件$(EXEXT)\
psc_测试_微球$(EXEXT)psc_光子测试$(EXEXT)\
psc_测试双粒子$(EXEXT)psc_测试加热$(EXEXT)\
psc测试fdtd$(EXEXT)
subdir=src
DIST_COMMON=$(srcdir)/Makefile.am$(srcdir)/Makefile.in
ACLOCAL_M4=$(top_srcdir)/ACLOCAL.M4
am\u aclocal\u m4\u deps=$(top\u srcdir)/m4/ax\u check\u compiler\u flags.m4\
$(top\u srcdir)/m4/ax\u check\u hdf5.m4$(top\u srcdir)/m4/libtool.m4\
$(top\u srcdir)/m4/ltoptions.m4$(top\u srcdir)/m4/ltsugar.m4\
$(top\u srcdir)/m4/ltversion.m4$(top\u srcdir)/m4/lt~ocated.m4\
$(top\u srcdir)/configure.ac
am_uuuconfigure_deps=$(am_uuuacLocal_m4_deps)$(配置依赖项)\
$(A本地\ U M4)
mkinstalldirs=$(install_sh)-d
CONFIG\u HEADER=$(top\u builddir)/CONFIG.h
配置\u清理\u文件=
配置\u清理\u路径\u文件=
am_uinstalldirs=“$(DESTDIR)$(bindir)”
程序=$(bin_程序)
psc_bohm_震源=psc_bohm.c
psc_bohm_对象=psc_bohm.$(对象)
psc_bohm_LDADD=$(LDADD)
psc_bohm_DEPENDENCIES=libpsc/libpsc.la libmrc/src/libmrc.la
AM_V_lt=$(AM_V_lt$(V))
am_uuv_ult=$(am_uv_ult$(am_u默认值\u详细性))
am__v_lt_0=--静默
psc_bubble_SOURCES=psc_bubble.c
#跳过数百行。。。
最简单的编译:
-rm-f*$(对象)
distclean编译:
-rm-f*.tab.c
包括./$(DEPDIR)/dummy.Po
包括./$(DEPDIR)/psc_bohm.Po
包括./$(DEPDIR)/psc_bubble.Po
包括./$(DEPDIR)/psc\u bubble\u yz.Po
包括./$(DEPDIR)/psc_es1.Po
包括./$(DEPDIR)/psc_harris.Po
包括./$(DEPDIR)/psc\u kelvin\u helmholtz.Po
包括./$(DEPDIR)/psc\u kelvin\u helmholtz\u double.Po
包括./$(DEPDIR)/psc_mirror.Po
包括./$(DEPDIR)/psc\u photon\u test.Po
包括./$(DEPDIR)/psc_spitzer.Po
包括./$(DEPDIR)/psc\u test\u emission.Po
包括./$(DEPDIR)/psc\u test\u fdtd.Po
包括./$(DEPDIR)/psc\u test\u heating.Po
包括./$(DEPDIR)/psc\u test\u microsphere.Po
包括./$(DEPDIR)/psc\u test\u singlepart.Po
包括./$(DEPDIR)/psc\u test\u twooparticles.Po
.c.o.:
$(AM|u V|CC)depbase=`echo$@| sed's |[^/]*$$$|$(DEPDIR)/&;s| \.o$$||`\
$(编译)-MT$@-MD-MP-MF$$depbase.Tpo-c-o$@$<&&\
$(am__mv)$$depbase.Tpo$$depbase.Po

#$(AM_V_CC)source='$通常,生成的makefile几乎不可能维护。如果这一个不起作用,你要么放弃它,要么向上游的automake/autoconf进行修改。@Beta我明白了。谢谢你的建议!