[project @ 2001-11-13 03:28:03 by chak]
[ghc-hetmet.git] / mk / target.mk
index 611a543..dc6add1 100644 (file)
@@ -388,7 +388,6 @@ endif
 
 ifeq "$(IS_CBITS_LIB)" "YES"
 override datadir:=$(libdir)/include
-INSTALL_DATAS += Hs$(shell perl -e 'print ucfirst "$(PACKAGE)"').h
 else
 SRC_CC_OPTS += -Icbits
 endif
@@ -438,20 +437,25 @@ ifneq "$(way)" "u"
 
 SRC_HC_OPTS += -split-objs
 
+# We generate the archive into a temporary file libfoo.a.tmp, then
+# rename it at the end.  This avoids the problem that ar may sometimes
+# fail, leaving a partially built archive behind.
 ifeq "$(ArSupportsInput)" ""
 define BUILD_LIB
-$(RM) $@
-(echo $(STUBOBJS); $(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o') | xargs ar q $@
-$(RANLIB) $@
+$(RM) $@ $@.tmp
+(echo $(STUBOBJS); $(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o') | xargs ar q $@.tmp
+$(RANLIB) $@.tmp
+$(MV) $@.tmp $@
 endef
 else
 define BUILD_LIB
-$(RM) $@
+$(RM) $@ $@.tmp
 echo $(STUBOBJS) > $@.list
 $(FIND) $(patsubst %.$(way_)o,%,$(LIBOBJS)) -name '*.$(way_)o' >> $@.list
-$(AR) $(AR_OPTS) $@ $(ArSupportsInput) $@.list
+$(AR) $(AR_OPTS) $@.tmp $(ArSupportsInput) $@.list
 $(RM) $@.list
-$(RANLIB) $@
+$(RANLIB) $@.tmp
+$(MV) $@.tmp $@
 endef
 endif
 
@@ -974,10 +978,10 @@ ifneq "$(SGMLDocWays)" ""
 install-docs:: $(foreach i,$(SGMLDocWays),$(INSTALL_SGML_DOC).$i)
        @$(INSTALL_DIR) $(datadir)      
        for i in $(SGMLDocWays); do \
-               if [ $$j = "html" ]; then \
+               if [ $$i = "html" ]; then \
                        $(CP) -r $(INSTALL_SGML_DOC) $(datadir); \
                else \
-                       $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_SGML_DOC).$$j $(datadir); \
+                       $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_SGML_DOC).$$i $(datadir); \
                fi \
        done
 endif