Refactoring the buildsystem
This commit is contained in:
parent
5dd6f89946
commit
132bc6e838
5 changed files with 67 additions and 129 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,6 +1,6 @@
|
|||
*.o
|
||||
archived
|
||||
Makefile.local.mk
|
||||
build/
|
||||
test/test_*
|
||||
nbproject
|
||||
docs/*.html
|
||||
|
|
|
|||
53
Makefile
53
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 $@
|
||||
|
|
|
|||
27
Makefile.include
Normal file
27
Makefile.include
Normal file
|
|
@ -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)
|
||||
|
|
@ -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 $@
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <inotifytools/inotifytools.h>
|
||||
#include <inotifytools/inotify.h>
|
||||
// (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;
|
||||
}
|
||||
Reference in a new issue