fix makefile make GameState static

This commit is contained in:
Gregory Gauthier 2026-01-29 16:10:32 +00:00
parent 150182d09f
commit ed13cf62d1
2 changed files with 116 additions and 106 deletions

View File

@ -12,7 +12,7 @@
TC_DIR = C:\TC
# PDCurses installation directory
PDCURSES_DIR = C:\PDCURSES
PDCURSES_DIR = D:\PDC39\DOS
# Compiler and linker
CC = $(TC_DIR)\BIN\TCC
@ -49,57 +49,67 @@ all: dirs $(TARGET) copywords
# Create build directory
dirs:
IF NOT EXIST $(BUILD_DIR) MD $(BUILD_DIR)
IF NOT EXIST $(BUILD_DIR) MD $(BUILD_DIR)
# Compile individual source files
$(BUILD_DIR)\MAIN.OBJ: $(SRC_DIR)\MAIN.C
$(CC) $(CFLAGS) -c -o$(BUILD_DIR)\MAIN.OBJ $(SRC_DIR)\MAIN.C
$(CC) $(CFLAGS) -c -o$(BUILD_DIR)\MAIN.OBJ $(SRC_DIR)\MAIN.C
$(BUILD_DIR)\GAME.OBJ: $(SRC_DIR)\GAME.C
$(CC) $(CFLAGS) -c -o$(BUILD_DIR)\GAME.OBJ $(SRC_DIR)\GAME.C
$(CC) $(CFLAGS) -c -o$(BUILD_DIR)\GAME.OBJ $(SRC_DIR)\GAME.C
$(BUILD_DIR)\UI.OBJ: $(SRC_DIR)\UI.C
$(CC) $(CFLAGS) -c -o$(BUILD_DIR)\UI.OBJ $(SRC_DIR)\UI.C
$(CC) $(CFLAGS) -c -o$(BUILD_DIR)\UI.OBJ $(SRC_DIR)\UI.C
$(BUILD_DIR)\WORDS.OBJ: $(SRC_DIR)\WORDS.C
$(CC) $(CFLAGS) -c -o$(BUILD_DIR)\WORDS.OBJ $(SRC_DIR)\WORDS.C
$(CC) $(CFLAGS) -c -o$(BUILD_DIR)\WORDS.OBJ $(SRC_DIR)\WORDS.C
# Link executable
# Link executable using response file to avoid command line length limits
$(TARGET): $(OBJS)
$(LINK) /x /c $(STARTUP) $(OBJS),$(TARGET),,$(LIBS) $(STDLIBS)
@ECHO $(STARTUP) + > $(BUILD_DIR)\LINK.RSP
@ECHO $(BUILD_DIR)\MAIN.OBJ + >> $(BUILD_DIR)\LINK.RSP
@ECHO $(BUILD_DIR)\GAME.OBJ + >> $(BUILD_DIR)\LINK.RSP
@ECHO $(BUILD_DIR)\UI.OBJ + >> $(BUILD_DIR)\LINK.RSP
@ECHO $(BUILD_DIR)\WORDS.OBJ >> $(BUILD_DIR)\LINK.RSP
@ECHO $(TARGET) >> $(BUILD_DIR)\LINK.RSP
@ECHO. >> $(BUILD_DIR)\LINK.RSP
@ECHO $(LIBS) + >> $(BUILD_DIR)\LINK.RSP
@ECHO $(STDLIBS) >> $(BUILD_DIR)\LINK.RSP
$(LINK) /x /c @$(BUILD_DIR)\LINK.RSP
# Copy word lists to build directory
copywords:
IF NOT EXIST $(BUILD_DIR)\WORDS MD $(BUILD_DIR)\WORDS
COPY WORDS\*.TXT $(BUILD_DIR)\WORDS
IF NOT EXIST $(BUILD_DIR)\WORDS MD $(BUILD_DIR)\WORDS
COPY WORDS\*.TXT $(BUILD_DIR)\WORDS
# Clean build artifacts
clean:
IF EXIST $(BUILD_DIR)\*.OBJ DEL $(BUILD_DIR)\*.OBJ
IF EXIST $(BUILD_DIR)\*.EXE DEL $(BUILD_DIR)\*.EXE
IF EXIST $(BUILD_DIR)\*.MAP DEL $(BUILD_DIR)\*.MAP
IF EXIST $(BUILD_DIR)\WORDS\*.TXT DEL $(BUILD_DIR)\WORDS\*.TXT
IF EXIST $(BUILD_DIR)\WORDS RD $(BUILD_DIR)\WORDS
IF EXIST $(BUILD_DIR) RD $(BUILD_DIR)
IF EXIST $(BUILD_DIR)\*.OBJ DEL $(BUILD_DIR)\*.OBJ
IF EXIST $(BUILD_DIR)\*.EXE DEL $(BUILD_DIR)\*.EXE
IF EXIST $(BUILD_DIR)\*.MAP DEL $(BUILD_DIR)\*.MAP
IF EXIST $(BUILD_DIR)\*.RSP DEL $(BUILD_DIR)\*.RSP
IF EXIST $(BUILD_DIR)\WORDS\*.TXT DEL $(BUILD_DIR)\WORDS\*.TXT
IF EXIST $(BUILD_DIR)\WORDS RD $(BUILD_DIR)\WORDS
IF EXIST $(BUILD_DIR) RD $(BUILD_DIR)
# Rebuild everything
rebuild: clean all
# Help
help:
@ECHO Cordle DOS Makefile - Borland Turbo C++
@ECHO ========================================
@ECHO.
@ECHO Targets:
@ECHO all - Build the game (default)
@ECHO clean - Remove build artifacts
@ECHO rebuild - Clean and rebuild
@ECHO help - Show this help
@ECHO.
@ECHO Configuration:
@ECHO Edit TC_DIR and PDCURSES_DIR paths at top of makefile
@ECHO Change MODEL for different memory models (s/m/c/l)
@ECHO.
@ECHO Requirements:
@ECHO - Borland Turbo C++ 3.x
@ECHO - PDCurses library for DOS
@ECHO Cordle DOS Makefile - Borland Turbo C++
@ECHO ========================================
@ECHO.
@ECHO Targets:
@ECHO all - Build the game (default)
@ECHO clean - Remove build artifacts
@ECHO rebuild - Clean and rebuild
@ECHO help - Show this help
@ECHO.
@ECHO Configuration:
@ECHO Edit TC_DIR and PDCURSES_DIR paths at top of makefile
@ECHO Change MODEL for different memory models (s/m/c/l)
@ECHO.
@ECHO Requirements:
@ECHO - Borland Turbo C++ 3.x
@ECHO - PDCurses library for DOS

View File

@ -55,7 +55,7 @@ static void parse_arguments(int argc, char **argv, char *filename, char *difficu
/* Main game loop */
static int main_game_loop(int argc, char *argv[]) {
WINDOW *stdscr;
GameState game;
static GameState game;
char filename[MAX_FILENAME];
char difficulty[32];
char message[MAX_MESSAGE] = "";