mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
15573ecba5
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
46 lines
1.1 KiB
Makefile
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
|