Cygwin: Makefile.am: fix DLL build rule
A single Makefile rule creates three files in three steps, the second and third one never showing up in dependencies. The next step creating the link lib only depends on the first of these files. Even if the second or third step in the DLL build rule fails, the next make invocation never picks up on this and just goes ahead creating the link lib. Fix this by splitting the DLL build rule into three rules, with every step on the way depending on the previous rule. Also fix up the names, TEST_DLL_NAME just doesn't cut it. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
8622002ffc
commit
ba02fef995
|
@ -40,7 +40,9 @@ toolincludedir=$(tooldir)/include
|
||||||
# Parameters used in building the cygwin.dll.
|
# Parameters used in building the cygwin.dll.
|
||||||
|
|
||||||
DLL_NAME=cygwin1.dll
|
DLL_NAME=cygwin1.dll
|
||||||
TEST_DLL_NAME=cygwin0.dll
|
PRE_DLL_NAME=cygwin0.dll
|
||||||
|
DBG_DLL_NAME=cygwin1.dbg
|
||||||
|
NEW_DLL_NAME=new-cygwin1.dll
|
||||||
DIN_FILE=@DIN_FILE@
|
DIN_FILE=@DIN_FILE@
|
||||||
DEF_FILE=cygwin.def
|
DEF_FILE=cygwin.def
|
||||||
TLSOFFSETS_H=@TLSOFFSETS_H@
|
TLSOFFSETS_H=@TLSOFFSETS_H@
|
||||||
|
@ -623,7 +625,7 @@ $(LDSCRIPT): $(LDSCRIPT).in
|
||||||
$(AM_V_GEN)$(CC) -E - -P < $^ -o $@
|
$(AM_V_GEN)$(CC) -E - -P < $^ -o $@
|
||||||
|
|
||||||
# cygwin dll
|
# cygwin dll
|
||||||
$(TEST_DLL_NAME): $(LDSCRIPT) dllfixdbg libdll.a $(VERSION_OFILES) $(LIBSERVER)\
|
$(PRE_DLL_NAME): $(LDSCRIPT) dllfixdbg libdll.a $(VERSION_OFILES) $(LIBSERVER)\
|
||||||
$(newlib_build)/libm/libm.a $(newlib_build)/libc/libc.a
|
$(newlib_build)/libm/libm.a $(newlib_build)/libc/libc.a
|
||||||
$(AM_V_CXXLD)$(CXX) $(CXXFLAGS) \
|
$(AM_V_CXXLD)$(CXX) $(CXXFLAGS) \
|
||||||
-mno-use-libstdc-wrappers \
|
-mno-use-libstdc-wrappers \
|
||||||
|
@ -636,8 +638,12 @@ $(TEST_DLL_NAME): $(LDSCRIPT) dllfixdbg libdll.a $(VERSION_OFILES) $(LIBSERVER)\
|
||||||
$(newlib_build)/libm/libm.a \
|
$(newlib_build)/libm/libm.a \
|
||||||
$(newlib_build)/libc/libc.a \
|
$(newlib_build)/libc/libc.a \
|
||||||
-lgcc -lkernel32 -lntdll -Wl,-Map,cygwin.map
|
-lgcc -lkernel32 -lntdll -Wl,-Map,cygwin.map
|
||||||
@$(srcdir)/dllfixdbg $(OBJDUMP) $(OBJCOPY) $@ cygwin1.dbg
|
|
||||||
@ln -f $@ new-cygwin1.dll
|
$(DBG_DLL_NAME): $(PRE_DLL_NAME)
|
||||||
|
$(AM_V_GEN)$(srcdir)/dllfixdbg $(OBJDUMP) $(OBJCOPY) $(PRE_DLL_NAME) $(DBG_DLL_NAME)
|
||||||
|
|
||||||
|
$(NEW_DLL_NAME): $(PRE_DLL_NAME) $(DBG_DLL_NAME)
|
||||||
|
$(AM_V_GEN)ln -f $(PRE_DLL_NAME) $@
|
||||||
|
|
||||||
# cygwin import library
|
# cygwin import library
|
||||||
toolopts=--cpu=@target_cpu@ --ar=@AR@ --as=@AS@ --nm=@NM@ --objcopy=@OBJCOPY@
|
toolopts=--cpu=@target_cpu@ --ar=@AR@ --as=@AS@ --nm=@NM@ --objcopy=@OBJCOPY@
|
||||||
|
@ -651,7 +657,7 @@ sigfe.s: $(DEF_FILE)
|
||||||
[ -s $@ ] && touch $@
|
[ -s $@ ] && touch $@
|
||||||
|
|
||||||
LIBCOS=$(addsuffix .o,$(basename $(LIB_FILES)))
|
LIBCOS=$(addsuffix .o,$(basename $(LIB_FILES)))
|
||||||
$(LIB_NAME): $(DEF_FILE) $(LIBCOS) | $(TEST_DLL_NAME)
|
$(LIB_NAME): $(DEF_FILE) $(LIBCOS) | $(NEW_DLL_NAME)
|
||||||
$(AM_V_GEN)$(srcdir)/mkimport $(toolopts) $(NEW_FUNCTIONS) $@ cygdll.a $(wordlist 2,99,$^)
|
$(AM_V_GEN)$(srcdir)/mkimport $(toolopts) $(NEW_FUNCTIONS) $@ cygdll.a $(wordlist 2,99,$^)
|
||||||
|
|
||||||
# cygwin import library used by testsuite
|
# cygwin import library used by testsuite
|
||||||
|
@ -709,7 +715,8 @@ all-local: $(LIB_NAME) $(TEST_LIB_NAME) $(SUBLIBS)
|
||||||
clean-local:
|
clean-local:
|
||||||
-rm -f $(BUILT_SOURCES)
|
-rm -f $(BUILT_SOURCES)
|
||||||
-rm -f $(DEF_FILE) sigfe.s
|
-rm -f $(DEF_FILE) sigfe.s
|
||||||
-rm -f cygwin.sc cygdll.a cygwin.map $(TEST_DLL_NAME) cygwin1.dbg new-cygwin1.dll
|
-rm -f cygwin.sc cygdll.a cygwin.map
|
||||||
|
-rm -f $(PRE_DLL_NAME) $(DBG_DLL_NAME) $(NEW_DLL_NAME)
|
||||||
-rm -f $(LIB_NAME) $(TEST_LIB_NAME) $(SUBLIBS)
|
-rm -f $(LIB_NAME) $(TEST_LIB_NAME) $(SUBLIBS)
|
||||||
-rm -f version.cc
|
-rm -f version.cc
|
||||||
|
|
||||||
|
@ -727,7 +734,7 @@ install-data-local: install-headers install-ldif
|
||||||
|
|
||||||
install-libs:
|
install-libs:
|
||||||
@$(MKDIR_P) $(DESTDIR)$(bindir)
|
@$(MKDIR_P) $(DESTDIR)$(bindir)
|
||||||
$(INSTALL_PROGRAM) $(TEST_DLL_NAME) $(DESTDIR)$(bindir)/$(DLL_NAME)
|
$(INSTALL_PROGRAM) $(NEW_DLL_NAME) $(DESTDIR)$(bindir)/$(DLL_NAME)
|
||||||
@$(MKDIR_P) $(DESTDIR)$(toollibdir)
|
@$(MKDIR_P) $(DESTDIR)$(toollibdir)
|
||||||
(cd $(DESTDIR)$(toollibdir) && ln -sf $(LIB_NAME) libg.a)
|
(cd $(DESTDIR)$(toollibdir) && ln -sf $(LIB_NAME) libg.a)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue