106 lines
2.9 KiB
Plaintext
106 lines
2.9 KiB
Plaintext
# MAKEFILE.DOS - Borland Turbo C/C++ Makefile for Cordle
|
|
# Usage: make -f makefile.dos
|
|
#
|
|
# Requirements:
|
|
# - Borland Turbo C++ 3.x or compatible
|
|
# - PDCurses library for DOS (PDCURSES.LIB)
|
|
#
|
|
# Memory Model: Small (default) or Medium for larger word lists
|
|
# Adjust TC_DIR and PDCURSES_DIR to match your installation paths
|
|
|
|
# Turbo C installation directory
|
|
TC_DIR = C:\TC
|
|
|
|
# PDCurses installation directory
|
|
PDCURSES_DIR = C:\PDCURSES
|
|
|
|
# Compiler and linker
|
|
CC = $(TC_DIR)\BIN\TCC
|
|
LINK = $(TC_DIR)\BIN\TLINK
|
|
|
|
# Memory model: s=small, m=medium, c=compact, l=large, h=huge
|
|
MODEL = h
|
|
|
|
# Compiler flags
|
|
# -m$(MODEL) = memory model
|
|
# -w = enable warnings
|
|
# -N = check stack overflow
|
|
# -I = include paths
|
|
# -D__MSDOS__ = define DOS platform
|
|
CFLAGS = -m$(MODEL) -w -N -I$(TC_DIR)\INCLUDE -IINCLUDE -I$(PDCURSES_DIR) -D__MSDOS__
|
|
|
|
# Linker flags
|
|
LIBS = $(PDCURSES_DIR)\PDCURSES.LIB
|
|
STARTUP = $(TC_DIR)\LIB\C0$(MODEL).OBJ
|
|
STDLIBS = $(TC_DIR)\LIB\C$(MODEL).LIB
|
|
|
|
# Directories
|
|
SRC_DIR = SRC
|
|
BUILD_DIR = BUILD
|
|
|
|
# Object files
|
|
OBJS = $(BUILD_DIR)\MAIN.OBJ $(BUILD_DIR)\GAME.OBJ $(BUILD_DIR)\UI.OBJ $(BUILD_DIR)\WORDS.OBJ
|
|
|
|
# Target executable
|
|
TARGET = $(BUILD_DIR)\CORDLE.EXE
|
|
|
|
# Default target
|
|
all: dirs $(TARGET) copywords
|
|
|
|
# Create build directory
|
|
dirs:
|
|
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
|
|
|
|
$(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
|
|
|
|
$(BUILD_DIR)\WORDS.OBJ: $(SRC_DIR)\WORDS.C
|
|
$(CC) $(CFLAGS) -c -o$(BUILD_DIR)\WORDS.OBJ $(SRC_DIR)\WORDS.C
|
|
|
|
# Link executable
|
|
$(TARGET): $(OBJS)
|
|
$(LINK) /x /c $(STARTUP) $(OBJS),$(TARGET),,$(LIBS) $(STDLIBS)
|
|
|
|
# Copy word lists to build directory
|
|
copywords:
|
|
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)
|
|
|
|
# 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
|