# 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