NAME=plock CC = gcc CFLAGS = -Isrc LIBS = -lX11 PREFIX = /usr/local MANPREFIX = $(PREFIX)/man all: bin/$(NAME) debug: CFLAGS += -Wall -DEBUG -g debug: bin/$(NAME) app_sources = $(wildcard src/*.c src/io/*.c src/pattern/*.c src/utils/*.c) app_objects = $(patsubst src/%.c, bin/%.o, $(app_sources)) bin/$(NAME): bin/main.o bin/args.o bin/utils/utilities.o bin/utils/args.o bin/pattern/pattern.o bin/pattern/next.o bin/io/io.o bin/io/text.o bin/io/svg.o # $(app_objects) $(CC) $(CFLAGS) $^ -o $@ $(LIBS) bin/main.o: src/main.c bin $(CC) $(CFLAGS) -c $< -o $@ bin/args.o: src/args.c bin $(CC) $(CFLAGS) -c $< -o $@ bin/utils/utilities.o: src/utils/utilities.c bin bin/utils $(CC) $(CFLAGS) -c $< -o $@ bin/utils/args.o: src/utils/args.c bin bin/utils $(CC) $(CFLAGS) -c $< -o $@ bin/pattern/pattern.o: src/pattern/pattern.c bin bin/pattern $(CC) $(CFLAGS) -c $< -o $@ bin/pattern/next.o: src/pattern/next.c bin bin/pattern $(CC) $(CFLAGS) -c $< -o $@ bin/io/io.o: src/io/io.c bin bin/io $(CC) $(CFLAGS) -c $< -o $@ bin/io/text.o: src/io/text.c bin bin/io $(CC) $(CFLAGS) -c $< -o $@ bin/io/svg.o: src/io/svg.c bin bin/io $(CC) $(CFLAGS) -c $< -o $@ bin: mkdir -p $@ bin/io: mkdir -p $@ bin/pattern: mkdir -p $@ bin/utils: mkdir -p $@ clean: rm -rf bin/* install: bin/$(NAME) @echo INSTALL execuatble mkdir -p $(PREFIX)/bin cp $< $(PREFIX)/bin/$(NAME) chmod 755 $(PREFIX)/bin/$(NAME) @echo INSTALL man page mkdir -p $(MANPREFIX)/man1 gzip -c doc/$(NAME).1 > $(MANPREFIX)/man1/$(NAME).1.gz chmod 644 $(MANPREFIX)/man1/$(NAME).1.gz uninstall: @echo REMOVE execuatble rm -f $(PREFIX)/bin/$(NAME) @echo REMOVE man page rm -f $(MANPREFIX)/man1/$(NAME).1.gz .PHONY: clean install uninstall