diff options
author | Sopár Adrián <dev.adrian.sopar@protonmail.com> | 2022-07-05 23:02:16 +0200 |
---|---|---|
committer | Sopár Adrián <dev.adrian.sopar@protonmail.com> | 2022-07-05 23:02:16 +0200 |
commit | c5cd2b2443dc48aaeb61feac4a96071c7bc9790e (patch) | |
tree | 38f611224caf6f3e15b7121b06c1b1e9c5e129b3 /Makefile |
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..77f176b --- /dev/null +++ b/Makefile @@ -0,0 +1,78 @@ +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 |