gpt4 book ai didi

c - 在使用 AM_LDFLAGS 的项目的 makefile 中编写依赖关系规则

转载 作者:行者123 更新时间:2023-11-30 17:23:09 24 4
gpt4 key购买 nike

我想为我的项目编写依赖关系规则,因为项目包含 src 目录,并且 src 文件夹包含依赖于 file1.c 的 main.c 和 file1.c 依赖于 file2.c我有非标准库目录和非标准包含目录我使用 AM_CFLAGS =/path 包含目录和 AM_LDFLAGS = lib 目录路径我想制定通用依赖规则我尝试过玩

depend:
makedepend $(AM_CFLAGS) $(SRC_DIR)

但它提示它使用的库,所以我想制定通用依赖关系规则,以便在任何人添加新文件或更改文件中的某些内容时不重写规则

这是 src 目录的 makefile:

   program_NAME := SRR

AM_CPPFLAGS = \
-DPACKAGE_LOCALE_DIR=\""$(localedir)"\" \
-DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
-DPACKAGE_DATA_DIR=\""$(pkgdatadir)"\"


bin_PROGRAMS = SRR_AutoProject

program_INCLUDE_DIRS := /usr/bin/SRR__bin

program_LIBRARY_DIRS := /usr/lib/SRR__lib

AM_CFLAGS =

AM_CFLAGS += $(foreach includedir,$(program_INCLUDE_DIRS),-I$(includedir))

program_lib2 := \
SRR___wrapper_library__ml \
srrynarray \
prhash \
prhash_pic \
prhistogram \
prlistofarrays \
vreo_wrapper_library
AM_LDFLAGS =

AM_LDFLAGS += $(foreach librarydir,$(program_LIBRARY_DIRS),-L$(librarydir))

AM_LDFLAGS += $(foreach library,$(program_lib2),-l$(library))

SRR_AutoProject_SOURCES = \
main.c \
file1.c \
file2.c

depend:
makedepend $(AM_CFLAGS) $(SRR_AutoProject_SOURCES)

根目录的makefile如下所示:

    SUBDIRS = src

SRR_AutoProjectdocdir = ${prefix}/doc/PRDSL_AutoProject
SRR_AutoProjectdoc_DATA = \
README\
COPYING\
AUTHORS\
ChangeLog\
INSTALL\
NEWS


INTLTOOL_FILES = intltool-extract.in \
intltool-merge.in \
intltool-update.in

EXTRA_DIST = $(PRDSL_AutoProjectdoc_DATA) \
$(INTLTOOL_FILES)

DISTCLEANFILES = intltool-extract \
intltool-merge \
intltool-update \
po/.intltool-merge-cache


# Remove doc directory on uninstall
uninstall-local:
-rm -r $(PRDSL_AutoProjectdocdir)

最佳答案

here is a makedepend rule, extracted from:
<http://www.cs.swarthmore.edu/~newhall/unixhelp/howto_makefiles.html>

INCLUDES := -I/home/newhall/include -I../include
SRCS := $(wildcard:*.c)

.PHONY: depend

depend: $(SRCS)
makedepend $(INCLUDES) $^

# DO NOT DELETE THIS LINE -- make depend needs it

关于c - 在使用 AM_LDFLAGS 的项目的 makefile 中编写依赖关系规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27670592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com