[英]How to specify in Makefile.am(auto make) for saving library object files(.lo) and object files(.o) in separate folder after compilation
在Makefile.am中,我有:
lib_LTLIBRARIES = libmyproject.la
libmyproject_la_LDFLAGS = -shared
libmyproject_la_SOURCES = \
sample1.cpp \
sample1.h \
sample2.cpp \
sample2.h
AM_CPPFLAGS = \
-Wall \
-Wextra
INCLUDES = \
$(OPENSSL_CFLAGS)
LIBS = \
-L/usr/lib/openssl-1.0.0/ \
-lssl
EXTRA_DIST = xxxxxx
这工作正常,并且我在同一路径中获取.lo
和.o
文件。
如何在编译后将所有.lo
和.o
文件移动到单独的子文件夹中?
一方面,您可以将普通的make
规则混入Makefile.am
。
因此,将以下内容添加到Makefile.am
应该可以完成您想要的操作:
.PHONY: copy_obj
# when building 'all', we *also* want the 'copy_obj' target
all: copy_obj
# but the 'copy_obj' target can only be executed once 'libmyproject.la' is done
copy_obj: libmyproject.la
mkdir -p objdir
cp *.lo *.o objdir
甚至:
.PHONY: copy_obj
all: copy_obj
copy_obj: $(libmyproject_la_OBJECT)
mkdir -p objdir
cp $^ objdir
但是真正的问题是:您为什么真正想要这样做? 您想完成什么?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.