nd_sys_prog/homework08/Makefile

72 lines
1.9 KiB
Makefile

CC= gcc
CFLAGS= -Wall -g -std=gnu99
LD= gcc
LDFLAGS= -L.
TARGETS= findit
all: $(TARGETS)
#-------------------------------------------------------------------------------
# TODO: Add rules for object files
#-------------------------------------------------------------------------------
list.o: list.c
$(CC) $(CFLAGS) -c -o list.o list.c
filter.o: filter.c
$(CC) $(CFLAGS) -c -o filter.o filter.c
findit.o: findit.c findit.h
$(CC) $(CFLAGS) -c -o findit.o findit.c
#-------------------------------------------------------------------------------
# TODO: Add rules for executables
#-------------------------------------------------------------------------------
findit: findit.o filter.o list.o
$(LD) $(LDFLAGS) -o $@ $^
#-------------------------------------------------------------------------------
# DO NOT MODIFY BELOW
#-------------------------------------------------------------------------------
test:
@$(MAKE) -sk test-all
test-all: test-gitignore test-list test-filter test-findit
test-gitignore:
@echo "findit" > .gitignore
@echo "*.o" >> .gitignore
@echo "*.sh" >> .gitignore
@echo "*.unit" >> .gitignore
test-list: list.unit
@curl -sLO https://www3.nd.edu/~pbui/teaching/cse.20289.sp25/static/txt/homework08/list.unit.sh
@chmod +x list.unit.sh
@./list.unit.sh
list.unit.o: list.unit.c findit.h
@$(CC) $(CFLAGS) -c -o $@ $<
list.unit: list.unit.o list.o
@$(LD) $(LDFLAGS) -o $@ $^
test-filter: filter.unit
@curl -sLO https://www3.nd.edu/~pbui/teaching/cse.20289.sp25/static/txt/homework08/filter.unit.sh
@chmod +x filter.unit.sh
@./filter.unit.sh
filter.unit.o: filter.unit.c findit.h
@$(CC) $(CFLAGS) -c -o $@ $<
filter.unit: filter.unit.o filter.o
@$(LD) $(LDFLAGS) -o $@ $^
test-findit: findit
@curl -sLO https://www3.nd.edu/~pbui/teaching/cse.20289.sp25/static/txt/homework08/findit.test.sh
@chmod +x findit.test.sh
@./findit.test.sh
clean:
@rm -f *.o *.sh *.unit findit