From 1e93dd0198d69816855ddf073e1c1401ab49f4d9 Mon Sep 17 00:00:00 2001 From: Xiaoqiang Wang Date: Mon, 4 May 2020 13:43:40 +0200 Subject: [PATCH] auto link dependence modules for WIN32 --- App/tools/driver.makefile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/App/tools/driver.makefile b/App/tools/driver.makefile index 4b68ecf..4d6d680 100644 --- a/App/tools/driver.makefile +++ b/App/tools/driver.makefile @@ -824,6 +824,7 @@ ${BUILDRULE} ${MENUS:%=${COMMON_DIR}/%.h} ${BUILDRULE} MODULEINFOS ${BUILDRULE} ${MODULEDBD} ${BUILDRULE} ${DEPFILE} +${BUILDRULE} AUTO_MODULES # In 3.15+ this is required to build %Record.h and menu%.h files COMMON_INC = ${RECORDS:%=${COMMON_DIR}/%.h} ${MENUS:%=${COMMON_DIR}/%.h} @@ -1102,6 +1103,17 @@ ${EXPORTFILE}: $(filter-out $(basename ${EXPORTFILE})$(OBJ),${LIBOBJS}) $(RM) $@ $(NM) $^ ${BASELIBS:%=${EPICS_BASE}/lib/${T_A}/${LIB_PREFIX}%$(LSUFFIX)} ${CORELIB} | awk '$(makexportfile)' > $@ +define ADD_MODULE + $(firstword $(subst /, ,$1))_DIR = $${EPICS_MODULES}/$1/R$${EPICSVERSION}/lib/$${T_A} + LIB_LIBS += $(firstword $(subst /, ,$1)) +endef + +# Append modules from .d files for linking. +AUTO_MODULES: ${LIBOBJS} +ifeq (${OS_CLASS},WIN32) + $(foreach m,$(sort $(shell cat *.d 2>/dev/null | sed 's/ /\n/g' | sed -n 's%${EPICS_MODULES}/\([^/]*\)/\([^/]*\)/.*%\1/\2%p' | sort -u)),$(eval $(call ADD_MODULE,${m}))) +endif + # Create dependency file for recursive requires. ${DEPFILE}: ${LIBOBJS} $(USERMAKEFILE) @echo "Collecting dependencies"