43 lines
801 B
Makefile
43 lines
801 B
Makefile
CC = gcc
|
|
CFLAGS = -Wall -g -O0
|
|
LDFLAGS = -luuid
|
|
|
|
# List of all source files (assuming they're all in the same directory)
|
|
SRC_FILES = $(wildcard *.c)
|
|
|
|
# Generate a list of object files by replacing the .c extension with .o
|
|
OBJ_FILES = $(SRC_FILES:.c=.o)
|
|
|
|
EXECUTABLE = "icscli"
|
|
|
|
# linking
|
|
$(EXECUTABLE): $(OBJ_FILES)
|
|
$(CC) $(CFLAGS) $(OBJ_FILES) -o $(EXECUTABLE) $(LDFLAGS)
|
|
|
|
main.o: main.c
|
|
$(CC) $(CFLAGS) -c $<
|
|
|
|
# use implicit rule to compile C source files to object files
|
|
%.o: %.c %.h
|
|
$(CC) $(CFLAGS) -c $<
|
|
|
|
.PHONY:install
|
|
install: $(EXECUTABLE)
|
|
cp $(EXECUTABLE) /usr/local/bin/$(EXECUTABLE)
|
|
|
|
.PHONY:clean
|
|
clean:
|
|
-rm -vf $(EXECUTABLE) *.o
|
|
|
|
.PHONY:uninstall
|
|
uninstall:
|
|
-rm /usr/local/bin/$(EXECUTABLE)
|
|
|
|
.PHONY:test
|
|
test:
|
|
./$(EXECUTABLE)
|
|
@echo
|
|
./$(EXECUTABLE) -h
|
|
@echo
|
|
../tests/run_tests.sh
|