git prefix for Makefile.mingw32 and Makefile.nmake (untested)

This commit is contained in:
nhkeni
2024-06-22 13:05:57 -04:00
parent a8b5e88744
commit c8b04a67f6
2 changed files with 15 additions and 3 deletions

View File

@@ -211,12 +211,16 @@ ifeq "$(INTERNET_AVAILABLE)" "Y"
ifeq "$(GIT_AVAILABLE)" "Y"
GIT_HASH := $(shell echo `git rev-parse --verify HEAD` 2>&1)
GIT_BRANCH := $(shell echo `git rev-parse --abbrev-ref HEAD` 2>&1)
GIT_PREFIX := $(shell echo `git config nethack.substprefix` 2>&1)
ifdef GIT_HASH
GITHASH = -DNETHACK_GIT_SHA=\"$(GIT_HASH)\"
endif
ifdef GIT_BRANCH
GITBRANCH = -DNETHACK_GIT_BRANCH=\"$(GIT_BRANCH)\"
endif
ifdef GIT_PREFIX
GITPREFIX = -DNETHACK_GIT_PREFIX=\"$(GIT_PREFIX)\"
endif
endif
endif
@@ -1048,7 +1052,7 @@ $(ONHW)/%.o: $(SRC)/%.c $(NHLUAH) | $(ONHW)
# was just recompiled. date.h is not used in the build of NetHack 3.7.
#
$(ONHW)/date.o: $(SRC)/date.c $(NHWOBJS) | $(ONHW)
$(cc) $(CFLAGSW) $(GITHASH) $(GITBRANCH) $< -o$@
$(cc) $(CFLAGSW) $(GITHASH) $(GITBRANCH) $(GITPREFIX) $< -o$@
$(ONHW)/cppregex.o: $(SSYS)/cppregex.cpp $(NHLUAH) | $(ONHW)
$(cc) $(CPPFLAGSW) $< -o$@
@@ -1164,7 +1168,7 @@ CLEAN_FILE += $(MAINZIP)
# was just recompiled. date.h is not used in the build of NetHack 3.7.
#
$(ONH)/date.o: $(SRC)/date.c $(NHOBJS) $(NHRES) | $(ONH)
$(cc) $(CFLAGSNH) $(GITHASH) $(GITBRANCH) $< -o$@
$(cc) $(CFLAGSNH) $(GITHASH) $(GITBRANCH) $(GITPREFIX) $< -o$@
$(ONH)/cppregex.o: $(SSYS)/cppregex.cpp $(NHLUAH) | $(ONH)
$(cc) $(CPPFLAGSNH) $< -o$@

View File

@@ -387,6 +387,10 @@ GITHASH = -DNETHACK_GIT_SHA=\"$(GIT_HASH)\"
GITBRANCH = -DNETHACK_GIT_BRANCH=\"$(GIT_BRANCH)\"
!ENDIF
!IFDEF GIT_PREFIX
GITPREFIX = -DNETHACK_GIT_PREFIX=\"$(GIT_PREFIX)\"
!ENDIF
#===============-=================================================
# LUA library
# Official source for Lua is http://www.lua.org/ftp/lua-5.4.6.tar.gz
@@ -1593,7 +1597,7 @@ $(OUTL)makedefs.o: $(U)makedefs.c $(SRC)\mdlib.c $(CONFIG_H) $(INCL)\permonst.h
# $(Q)$(CC) -DENUM_PM $(CFLAGS) $(TTYDEF) $(CROSSCOMPILE) /EP -Fo$@ $(U)makedefs.c >$(OUTL)makedefs.c.preproc
#
# This is awful, but it allows the GITHASH and GITBRANCH macros to be
# This is awful, but it allows the GITHASH, GITBRANCH and GITPREFIX macros to be
# defined and utilized, using only build-in Windows and nmake commands,
# as well as the necessary git commands.
#
@@ -1604,6 +1608,7 @@ $(OTTY)date.o: $(HACKINCL) $(HACKSRC) $(HACKOBJ) $(ALLOBJTTY) $(CURSESOBJ)
!IF "$(GIT_AVAILABLE)" == "1"
@git rev-parse --verify HEAD 2>&1 >$(OTTY)date1.tmp
@git rev-parse --abbrev-ref HEAD 2>&1 >$(OTTY)date2.tmp
@git config nethack.substprefix 2>&1 >$(OTTY)date3.tmp
@echo.>date.nmk
@echo OBJ = $(OBJTTY)>>date.nmk
@echo O = ^$(OBJTTY)^^^\>>date.nmk
@@ -1611,6 +1616,7 @@ $(OTTY)date.o: $(HACKINCL) $(HACKSRC) $(HACKOBJ) $(ALLOBJTTY) $(CURSESOBJ)
@echo CFLAGS = $(CFLAGS) ^\>>date.nmk
@for /F "usebackq" %%A IN ("$(OTTY)date1.tmp") DO @echo. -DNETHACK_GIT_SHA=\"%%A\" ^\>>date.nmk
@for /F "usebackq" %%A IN ("$(OTTY)date2.tmp") DO @echo. -DNETHACK_GIT_BRANCH=\"%%A\">>date.nmk
@for /F "usebackq" %%A IN ("$(OTTY)date3.tmp") DO @echo. -DNETHACK_GIT_PREFIX=\"%%A\">>date.nmk
@echo.>>date.nmk
@echo default: ^$(OTTY)date.o>>date.nmk
@echo.>>date.nmk
@@ -1624,6 +1630,7 @@ $(OGUI)date.o: $(HACKINCL) $(HACKSRC) $(HACKOBJ) $(ALLOBJGUI)
!IF "$(GIT_AVAILABLE)" == "1"
@git rev-parse --verify HEAD 2>&1 >$(OGUI)date1.tmp
@git rev-parse --abbrev-ref HEAD 2>&1 >$(OGUI)date2.tmp
@git config nethack.substprefix 2>&1 >$(OTTY)date3.tmp
@echo.>date.nmk
@echo OBJ = $(OBJGUI)>>date.nmk
@echo O = ^$(OBJGUI)^^^\>>date.nmk
@@ -1631,6 +1638,7 @@ $(OGUI)date.o: $(HACKINCL) $(HACKSRC) $(HACKOBJ) $(ALLOBJGUI)
@echo CFLAGS = $(CFLAGS) ^\>>date.nmk
@for /F "usebackq" %%A IN ("$(OGUI)date1.tmp") DO @echo. -DNETHACK_GIT_SHA=\"%%A\" ^\>>date.nmk
@for /F "usebackq" %%A IN ("$(OGUI)date2.tmp") DO @echo. -DNETHACK_GIT_BRANCH=\"%%A\">>date.nmk
@for /F "usebackq" %%A IN ("$(OTTY)date3.tmp") DO @echo. -DNETHACK_GIT_PREFIX=\"%%A\">>date.nmk
@echo.>>date.nmk
@echo default: ^$(OGUI)date.o>>date.nmk
@echo.>>date.nmk