]> granicus.if.org Git - libx264/commitdiff
Makefile: Add missing dependency of '.depend' on 'oclobj.h'
authorSergei Trofimovich <slyich@gmail.com>
Mon, 19 Sep 2022 20:05:56 +0000 (21:05 +0100)
committerSergei Trofimovich <slyich@gmail.com>
Mon, 19 Sep 2022 21:31:01 +0000 (22:31 +0100)
Without the change parallel build occasionally fails as:

    $ make --shuffle
    ...
    gcc ... -c common/opencl.c -o common/opencl-8.o ...
    common/opencl.c:116:10: fatal error: common/oclobj.h: No such file or directory
      116 | #include "common/oclobj.h"
          |          ^~~~~~~~~~~~~~~~~

Best reproducible with `make --shuffle` mode:
   https://savannah.gnu.org/bugs/index.php?62100

This happens because `common/oclobj.h` is an autogenerated file.
Normally `.depend` would contain this autogenerated dependency.
But nothing forces `common/oclobj.h` to be generated.

The change moves dependency of $(GENERATED) from final binaries
to `.depend` itself:

    .depend: $(GENERATED)

Makefile

index 0ba46aa10c377a285009853f7c4542ad7c460124..cfb72dabb33a24cec73e709eaddf6be70fabad53 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -242,12 +242,12 @@ cli: x264$(EXE)
 lib-static: $(LIBX264)
 lib-shared: $(SONAME)
 
-$(LIBX264): $(GENERATED) .depend $(OBJS) $(OBJASM)
+$(LIBX264): $(OBJS) $(OBJASM)
        rm -f $(LIBX264)
        $(AR)$@ $(OBJS) $(OBJASM)
        $(if $(RANLIB), $(RANLIB) $@)
 
-$(SONAME): $(GENERATED) .depend $(OBJS) $(OBJASM) $(OBJSO)
+$(SONAME): $(OBJS) $(OBJASM) $(OBJSO)
        $(LD)$@ $(OBJS) $(OBJASM) $(OBJSO) $(SOFLAGS) $(LDFLAGS)
 
 $(IMPLIBNAME): $(SONAME)
@@ -260,16 +260,16 @@ checkasm10: checkasm10$(EXE)
 example: example$(EXE)
 endif
 
-x264$(EXE): $(GENERATED) .depend $(OBJCLI) $(CLI_LIBX264)
+x264$(EXE): $(OBJCLI) $(CLI_LIBX264)
        $(LD)$@ $(OBJCLI) $(CLI_LIBX264) $(LDFLAGSCLI) $(LDFLAGS)
 
-checkasm8$(EXE): $(GENERATED) .depend $(OBJCHK) $(OBJCHK_8) $(LIBX264)
+checkasm8$(EXE): $(OBJCHK) $(OBJCHK_8) $(LIBX264)
        $(LD)$@ $(OBJCHK) $(OBJCHK_8) $(LIBX264) $(LDFLAGS)
 
-checkasm10$(EXE): $(GENERATED) .depend $(OBJCHK) $(OBJCHK_10) $(LIBX264)
+checkasm10$(EXE): $(OBJCHK) $(OBJCHK_10) $(LIBX264)
        $(LD)$@ $(OBJCHK) $(OBJCHK_10) $(LIBX264) $(LDFLAGS)
 
-example$(EXE): $(GENERATED) .depend $(OBJEXAMPLE) $(LIBX264)
+example$(EXE): $(OBJEXAMPLE) $(LIBX264)
        $(LD)$@ $(OBJEXAMPLE) $(LIBX264) $(LDFLAGS)
 
 $(OBJS) $(OBJSO): CFLAGS += $(CFLAGSSO)
@@ -316,7 +316,7 @@ $(OBJS) $(OBJASM) $(OBJSO) $(OBJCLI) $(OBJCHK) $(OBJCHK_8) $(OBJCHK_10) $(OBJEXA
 %.o: %.rc x264.h x264res.manifest
        $(RC) $(RCFLAGS)$@ $<
 
-.depend: config.mak
+.depend: config.mak $(GENERATED)
        @rm -f .depend
        @echo 'dependency file generation...'
 ifeq ($(COMPILER),CL)