diff --git a/.gitignore b/.gitignore index 00ff297..2fe9dc3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ *.o +archived Makefile.local.mk -build/ test/test_* nbproject docs/*.html diff --git a/Makefile b/Makefile index a64cb7d..e49924d 100644 --- a/Makefile +++ b/Makefile @@ -1,71 +1,50 @@ + # # Archived Makefile # CC = gcc -CFLAGS = -O2 -Werror -Ilib $(shell getconf LFS_CFLAGS) +CFLAGS = -O2 -Werror -Ilib LD = $(CC) -LDFLAGS = $(shell getconf LFS_LDFLAGS) - -FINDOBJ = find . -name "*.o" -type f -printf "%P\n" - PROGRAM := archived -include Makefile.local.mk +include Makefile.include ifdef DEBUG CFLAGS += -g -D__DEBUG__ endif -ifndef VERBOSE - QUIET_CC = @echo ' ' CC $@; - QUIET_LD = @echo ' ' LD $@; -endif -ifeq ($(VERBOSE), 2) - CFLAGS += -v -endif - -obj = - -obj += lib/ini/iniparser.o -obj += lib/ini/dictionary.o +obj := $(obj-ini) $(obj-log) $(obj-notify) $(obj-path) \ + $(obj-strbuf) $($obj-xalloc) ifeq ($(database), mongo) LDFLAGS += -lmongoc -lbson - obj += src/database/mongo.o + obj += $(obj-mongo) else CFLAGS += $(shell mysql_config --cflags) LDFLAGS += $(shell mysql_config --libs) - obj += src/database/mysql.o + obj += $(obj-mysql) endif -obj += src/rbtree.o -obj += src/path.o -obj += src/strbuf.o -obj += src/xalloc.o -obj += src/die.o -obj += src/log.o +.SUFFIXES: .c .o +.PHONY : $(PROGRAM) clean distclean -obj += src/inotify.o -obj += src/event.o -obj += src/fscrawl.o -obj += src/queue.o - -obj += src/archived.o - -.PHONY : all clean cleaner all : $(PROGRAM) -$(PROGRAM) : $(obj) - $(QUIET_LD)$(LD) $^ -o $@ $(LDFLAGS) +$(PROGRAM) : src/archived.o $(obj) + $(QUIET_LD)$(LD) $(sort $(^)) -o $@ $(LDFLAGS) clean : - @for obj in `$(FINDOBJ)`; do \ + @for obj in $(shell find . -name "*.o" -type f -printf "%P\n"); do \ echo $(RM) $$obj;$(RM) $$obj; \ done + @make -C test clean + @make -C docs clean -cleaner : clean +distclean : clean $(RM) $(PROGRAM) + $(RM) Makefile.local.mk %.o : %.c $(QUIET_CC)$(CC) $(CFLAGS) -c $< -o $@ diff --git a/Makefile.include b/Makefile.include new file mode 100644 index 0000000..2a805c7 --- /dev/null +++ b/Makefile.include @@ -0,0 +1,27 @@ +# +# Common Makefile configuration for Archived +# + +CFLAGS += $(shell getconf LFS_CFLAGS) -D_GNU_SOURCE=1 +LDFLAGS += $(shell getconf LFS_LDFLAGS) + +# output tuning +ifndef VERBOSE + QUIET_CC = @echo ' ' CC $@; + QUIET_LD = @echo ' ' LD $@; +endif +ifeq ($(VERBOSE), 2) + CFLAGS += -v +endif + +# modules definitions +obj-xalloc = src/xalloc.o src/die.o +obj-strbuf = src/strbuf.o $(obj-xalloc) +obj-path = src/path.o $(obj-strbuf) +obj-rbtree = src/rbtree.o $(obj-xalloc) +obj-fscrawl = src/fscrawl.o $(obj-strbuf) $(obj-path) $(obj-log) +obj-log = src/log.o $(obj-strbuf) $(obj-xalloc) +obj-notify = src/event.o src/queue.o src/inotify.o $(obj-xalloc) $(obj-fscrawl) $(obj-rbtree) +obj-ini = lib/ini/iniparser.o lib/ini/dictionary.o +obj-mongo = src/database/mongo.o $(obj-path) $(obj-ini) +obj-mysql = src/database/mysql.o $(obj-ini) $(obj-xalloc) diff --git a/test/Makefile b/test/Makefile index 9fabdd1..6441fdd 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,68 +1,31 @@ # Test makefile -CC=gcc -CFLAGS=-g -D__DEBUG__ $(shell getconf LFS_CFLAGS) -LDFLAGS=-L/usr/lib64/mysql -lmysqlclient $(shell getconf LFS_LDFLAGS) -all : raw_inotify strbuf path rbtree inotify fscrawl queue +CC = gcc +CFLAGS = -g -D__DEBUG__ +LD = $(CC) +LDFLAGS = -raw_inotify : - $(CC) -linotifytools t_raw_inotify.c -o test_raw_inotify +include ../Makefile.include -strbuf : - $(CC) $(CFLAGS) \ - ../src/strbuf.c \ - ../src/xalloc.c \ - ../src/die.c \ - t_strbuf.c -o test_strbuf - -path : - $(CC) $(CFLAGS) \ - unit.c \ - ../src/xalloc.c \ - ../src/die.c \ - ../src/strbuf.c \ - ../src/path.c \ - t_path.c -o test_path +ROOT = ../ +TESTS = $(patsubst t_%.c,%,$(wildcard t_*.c)) -rbtree : - $(CC) $(CFLAGS) \ - unit.c \ - ../src/die.c \ - ../src/xalloc.c \ - ../src/rbtree.c \ - t_rbtree.c -o test_rbtree +.PHONY : clean +all : $(TESTS) -inotify : - $(CC) -lpthread -D INOTIFY_DEBUG -D RB_DEBUG $(CFLAGS) \ - ../src/rbtree.c \ - ../src/log.c \ - ../src/log-file.c \ - ../src/xalloc.c \ - ../src/die.c \ - ../src/strbuf.c \ - ../src/path.c \ - ../src/event.c \ - ../src/fscrawl.c \ - ../src/queue.c \ - ../src/inotify.c \ - t_notify.c -o test_inotify - -fscrawl : - $(CC) $(CFLAGS) \ - ../src/path.c \ - ../src/fscrawl.c \ - ../src/log.c \ - ../src/log-file.c \ - ../src/xalloc.c \ - ../src/die.c \ - ../src/strbuf.c \ - t_fscrawl.c -o test_fscrawl - -queue : - $(CC) $(CFLAGS) ../src/queue.c t_queue.c -o test_queue - -log : - $(CC) $(CFLAGS) ../src/die.c ../src/strbuf.c ../src/xalloc.c ../src/log.c t_log.c -o test_log +strbuf : $(addprefix $(ROOT),$(obj-strbuf)) +rbtree : unit.c $(addprefix $(ROOT),$(obj-rbtree)) +queue : $(ROOT)src/queue.o $(addprefix $(ROOT),$(obj-xalloc)) +path : unit.c $(ROOT)src/path.o $(addprefix $(ROOT),$(obj-strbuf)) +fscrawl : $(ROOT)src/fscrawl.o $(addprefix $(ROOT),$(obj-fscrawl)) +notify : $(addprefix $(ROOT),$(obj-notify)) +log : $(addprefix $(ROOT),$(obj-log)) clean : - rm -f test_* + $(RM) $(patsubst t_%.c,test_%,$(wildcard t_*.c)) + +% : t_%.c + $(QUIET_LD)$(LD) $(LDFLAGS) $(sort $(^)) -o test_$@ + +%.o : %.c + $(QUIET_CC)$(CC) $(CFLAGS) -c $< -o $@ diff --git a/test/t_raw_inotify.c b/test/t_raw_inotify.c deleted file mode 100644 index e8c59a1..0000000 --- a/test/t_raw_inotify.c +++ /dev/null @@ -1,31 +0,0 @@ - -#include -#include -#include -#include -// (IN_MOVE | IN_CREATE | IN_DELETE | IN_ONLYDIR) -#define WMASK (IN_MOVE | IN_MOVE_SELF | IN_CREATE | IN_DELETE | IN_ONLYDIR) - -int main(int argc, char **argv) { - - struct inotify_event *ev; - - if (argc < 2) - return 1; - - if ( !inotifytools_initialize() - || !inotifytools_watch_recursively(argv[1], WMASK) ) { - fprintf(stderr, "%s\n", strerror(inotifytools_error()) ); - return 1; - } - - for(;;) { - - ev = inotifytools_next_event(-1); - - printf("%u: ", ev->wd); - inotifytools_printf(ev, "%w:%f %e\n"); - } - - return 0; -}