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 TC_DIR = C:\TC
# PDCurses installation directory # PDCurses installation directory
PDCURSES_DIR = C:\PDCURSES PDCURSES_DIR = D:\PDC39\DOS
# Compiler and linker # Compiler and linker
CC = $(TC_DIR)\BIN\TCC CC = $(TC_DIR)\BIN\TCC
@ -49,57 +49,67 @@ all: dirs $(TARGET) copywords
# Create build directory # Create build directory
dirs: dirs:
IF NOT EXIST $(BUILD_DIR) MD $(BUILD_DIR) IF NOT EXIST $(BUILD_DIR) MD $(BUILD_DIR)
# Compile individual source files # Compile individual source files
$(BUILD_DIR)\MAIN.OBJ: $(SRC_DIR)\MAIN.C $(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 $(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 $(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 $(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) $(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 # Copy word lists to build directory
copywords: copywords:
IF NOT EXIST $(BUILD_DIR)\WORDS MD $(BUILD_DIR)\WORDS IF NOT EXIST $(BUILD_DIR)\WORDS MD $(BUILD_DIR)\WORDS
COPY WORDS\*.TXT $(BUILD_DIR)\WORDS COPY WORDS\*.TXT $(BUILD_DIR)\WORDS
# Clean build artifacts # Clean build artifacts
clean: clean:
IF EXIST $(BUILD_DIR)\*.OBJ DEL $(BUILD_DIR)\*.OBJ IF EXIST $(BUILD_DIR)\*.OBJ DEL $(BUILD_DIR)\*.OBJ
IF EXIST $(BUILD_DIR)\*.EXE DEL $(BUILD_DIR)\*.EXE IF EXIST $(BUILD_DIR)\*.EXE DEL $(BUILD_DIR)\*.EXE
IF EXIST $(BUILD_DIR)\*.MAP DEL $(BUILD_DIR)\*.MAP IF EXIST $(BUILD_DIR)\*.MAP DEL $(BUILD_DIR)\*.MAP
IF EXIST $(BUILD_DIR)\WORDS\*.TXT DEL $(BUILD_DIR)\WORDS\*.TXT IF EXIST $(BUILD_DIR)\*.RSP DEL $(BUILD_DIR)\*.RSP
IF EXIST $(BUILD_DIR)\WORDS RD $(BUILD_DIR)\WORDS IF EXIST $(BUILD_DIR)\WORDS\*.TXT DEL $(BUILD_DIR)\WORDS\*.TXT
IF EXIST $(BUILD_DIR) RD $(BUILD_DIR) IF EXIST $(BUILD_DIR)\WORDS RD $(BUILD_DIR)\WORDS
IF EXIST $(BUILD_DIR) RD $(BUILD_DIR)
# Rebuild everything # Rebuild everything
rebuild: clean all rebuild: clean all
# Help # Help
help: help:
@ECHO Cordle DOS Makefile - Borland Turbo C++ @ECHO Cordle DOS Makefile - Borland Turbo C++
@ECHO ======================================== @ECHO ========================================
@ECHO. @ECHO.
@ECHO Targets: @ECHO Targets:
@ECHO all - Build the game (default) @ECHO all - Build the game (default)
@ECHO clean - Remove build artifacts @ECHO clean - Remove build artifacts
@ECHO rebuild - Clean and rebuild @ECHO rebuild - Clean and rebuild
@ECHO help - Show this help @ECHO help - Show this help
@ECHO. @ECHO.
@ECHO Configuration: @ECHO Configuration:
@ECHO Edit TC_DIR and PDCURSES_DIR paths at top of makefile @ECHO Edit TC_DIR and PDCURSES_DIR paths at top of makefile
@ECHO Change MODEL for different memory models (s/m/c/l) @ECHO Change MODEL for different memory models (s/m/c/l)
@ECHO. @ECHO.
@ECHO Requirements: @ECHO Requirements:
@ECHO - Borland Turbo C++ 3.x @ECHO - Borland Turbo C++ 3.x
@ECHO - PDCurses library for DOS @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 */ /* Main game loop */
static int main_game_loop(int argc, char *argv[]) { static int main_game_loop(int argc, char *argv[]) {
WINDOW *stdscr; WINDOW *stdscr;
GameState game; static GameState game;
char filename[MAX_FILENAME]; char filename[MAX_FILENAME];
char difficulty[32]; char difficulty[32];
char message[MAX_MESSAGE] = ""; char message[MAX_MESSAGE] = "";