gecko-dev/accessible/interfaces/msaa/Makefile.in
Mike Shal 15573ecba5 Bug 1420119 - avoid issues with make's timestamp caching; r=nalexander
When an idl file is updated, files like HandlerData.h are generated as
part of the midl target (eg: midl_done). However, Make may have already
stat'd HandlerData.h and cached its timestamp. Although there is a
dependency from HandlerData.h on midl_done, there is no recipe. As such,
Make assumes that HandlerData.h hasn't actually changed, and uses the
cached value of the timestamp when determining if it should install the
file into dist/include. If the cached value is older, make may not
trigger the install rule, leaving the old header in place and breaking
the build.

MozReview-Commit-ID: 9rdtXIt8mXC

--HG--
extra : rebase_source : 8b22f1d6656d0dbc2c3b5dc53ea2b936fdd637bd
2018-02-13 16:04:31 -05:00

46 lines
1.1 KiB
Makefile

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
GARBAGE += $(MIDL_GENERATED_FILES) done_gen
MIDL_GENERATED_FILES = \
dlldata.c \
ISimpleDOM.h \
ISimpleDOM_i.c \
ISimpleDOM_p.c \
ISimpleDOM.tlb \
$(NULL)
# Bug 1420119: We need the trailing semicolon here to generate a recipe for the
# midl targets to avoid timestamp caching issues.
$(MIDL_GENERATED_FILES): done_gen ;
done_gen: ISimpleDOM.idl \
ISimpleDOMNode.idl \
ISimpleDOMDocument.idl \
ISimpleDOMText.idl
$(MIDL) $(MIDL_FLAGS) -I $(srcdir) -robust -Oicf $(srcdir)/ISimpleDOM.idl
touch $@
export:: done_gen
# This marshall dll is also registered in the installer
register::
regsvr32 -s $(DIST)/bin/$(SHARED_LIBRARY)
EMBED_MANIFEST_AT = 2
midl_exports := \
ISimpleDOM.h \
ISimpleDOM_i.c \
$(NULL)
INSTALL_TARGETS += midl_exports
midl_exports_FILES := $(midl_exports)
midl_exports_DEST = $(DIST)/include
midl_exports_TARGET := midl
export:: midl