[build] Generate random build identifier
[gpxe.git] / src / Makefile.housekeeping
index 637a6aa..fc5402e 100644 (file)
@@ -688,13 +688,18 @@ $(BLIB) : $(BLIB_OBJS) $(BLIB_LIST) $(MAKEDEPS)
        $(Q)$(RANLIB) $@
 blib : $(BLIB)
 
+# Command to generate build ID.  Must be unique for each $(BIN)/%.tmp,
+# even within the same build run.
+#
+BUILD_ID_CMD   := perl -e 'printf "0x%08x", int ( rand ( 0xffffffff ) );'
+
 # Build an intermediate object file from the objects required for the
 # specified target.
 #
-$(BIN)/%.tmp : $(BLIB) $(MAKEDEPS) $(LDSCRIPT) 
+$(BIN)/%.tmp : $(BLIB) $(MAKEDEPS) $(LDSCRIPT)
        $(QM)$(ECHO) "  [LD] $@"
        $(Q)$(LD) $(LDFLAGS) -T $(LDSCRIPT) $(TGT_LD_FLAGS) $(BLIB) -o $@ \
-               -Map $(BIN)/$*.tmp.map
+               --defsym _build_id=`$(BUILD_ID_CMD)` -Map $(BIN)/$*.tmp.map
        $(Q)$(OBJDUMP) -ht $@ | $(SORTOBJDUMP) >> $(BIN)/$*.tmp.map
 
 # Keep intermediate object file (useful for debugging)