id3cobol/Makefile

57 lines
1.4 KiB
Makefile

# Makefile for COBOL project cleanup and building
# Created on: May 4, 2025
# Compiler settings
COBC = cobc
COBFLAGS = -x -g -debug -Wall
COBFLAGS_DEBUG = -x -g -debug -Wall -O0
# Source files
SOURCES = hello.cob hello.cbl hello2.cbl
C_SOURCES = hello.c hello2.c
# Executables
EXECS = hello hello2
# Default target
all: $(EXECS)
# Build rules
hello: hello.cob
$(COBC) $(COBFLAGS) -o $@ $<
hello.cbl.exe: hello.cbl
$(COBC) $(COBFLAGS_DEBUG) -o $@ $<
hello2: hello2.cbl
$(COBC) $(COBFLAGS) -o $@ $<
# Clean up intermediate files and executables
clean:
rm -f *.o *.so *.exe *.int *.lst *.idb *.c *.h *.i *.c.h
rm -f id3cobol zero-ord
# Deep clean (includes all build artifacts)
distclean: clean
rm -f *.log *.bak *~
# Debug build with optimizations disabled
debug: COBFLAGS = $(COBFLAGS_DEBUG)
debug: all
# Help target
help:
@echo "Makefile targets:"
@echo " all - Build all executables (default)"
@echo " clean - Remove intermediate files (.i, .c, .c.h, etc.)"
@echo " distclean - Remove intermediate files and executables"
@echo " debug - Build with full debug options and no optimization"
@echo " hello - Build only hello executable"
@echo " hello2 - Build only hello2 executable"
@echo ""
@echo "Examples:"
@echo " make clean - Clean intermediate files"
@echo " make debug - Build with debugging enabled"
# Prevent conflicts with files named like our targets
.PHONY: all clean distclean debug help