40 lines
		
	
	
		
			730 B
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			730 B
		
	
	
	
		
			Makefile
		
	
	
	
# Compiler and flags
 | 
						|
CC = gcc
 | 
						|
CFLAGS += -std=c89 -g -Wall -Wextra -Werror -Wno-unused-parameter
 | 
						|
LDFLAGS += 
 | 
						|
LDLIBS +=
 | 
						|
 | 
						|
# Source and build configuration
 | 
						|
SRC = $(wildcard *.c)
 | 
						|
OBJ = $(SRC:.c=.o)
 | 
						|
EXEC = zre
 | 
						|
 | 
						|
# Phony targets
 | 
						|
.PHONY: all clean test install
 | 
						|
 | 
						|
# Default target
 | 
						|
all: $(EXEC)
 | 
						|
 | 
						|
# Main build rule
 | 
						|
$(EXEC): $(OBJ)
 | 
						|
	$(CC) $(LDFLAGS) $(OBJ) $(LDLIBS) -o $@
 | 
						|
 | 
						|
# Pattern rule for object files
 | 
						|
%.o: %.c
 | 
						|
	$(CC) $(CFLAGS) -c $< -o $@
 | 
						|
 | 
						|
# Test target with dependency
 | 
						|
test: $(EXEC)
 | 
						|
	@echo "Running tests..."
 | 
						|
	./$(EXEC)
 | 
						|
	@echo "Tests completed successfully."
 | 
						|
 | 
						|
# Clean build artifacts
 | 
						|
clean:
 | 
						|
	$(RM) $(OBJ) $(EXEC)
 | 
						|
 | 
						|
# Install target (example)
 | 
						|
install: $(EXEC)
 | 
						|
	install -d $(DESTDIR)/usr/local/bin
 | 
						|
	install $(EXEC) $(DESTDIR)/usr/local/bin/
 |