Archived
1
0
Fork 0

Refactoring the buildsystem

This commit is contained in:
Henrik Hautakoski 2010-11-26 15:30:38 +01:00
parent 5dd6f89946
commit 132bc6e838
5 changed files with 67 additions and 129 deletions

2
.gitignore vendored
View file

@ -1,6 +1,6 @@
*.o *.o
archived
Makefile.local.mk Makefile.local.mk
build/
test/test_* test/test_*
nbproject nbproject
docs/*.html docs/*.html

View file

@ -1,71 +1,50 @@
# #
# Archived Makefile # Archived Makefile
# #
CC = gcc CC = gcc
CFLAGS = -O2 -Werror -Ilib $(shell getconf LFS_CFLAGS) CFLAGS = -O2 -Werror -Ilib
LD = $(CC) LD = $(CC)
LDFLAGS = $(shell getconf LFS_LDFLAGS)
FINDOBJ = find . -name "*.o" -type f -printf "%P\n"
PROGRAM := archived PROGRAM := archived
-include Makefile.local.mk -include Makefile.local.mk
include Makefile.include
ifdef DEBUG ifdef DEBUG
CFLAGS += -g -D__DEBUG__ CFLAGS += -g -D__DEBUG__
endif endif
ifndef VERBOSE obj := $(obj-ini) $(obj-log) $(obj-notify) $(obj-path) \
QUIET_CC = @echo ' ' CC $@; $(obj-strbuf) $($obj-xalloc)
QUIET_LD = @echo ' ' LD $@;
endif
ifeq ($(VERBOSE), 2)
CFLAGS += -v
endif
obj =
obj += lib/ini/iniparser.o
obj += lib/ini/dictionary.o
ifeq ($(database), mongo) ifeq ($(database), mongo)
LDFLAGS += -lmongoc -lbson LDFLAGS += -lmongoc -lbson
obj += src/database/mongo.o obj += $(obj-mongo)
else else
CFLAGS += $(shell mysql_config --cflags) CFLAGS += $(shell mysql_config --cflags)
LDFLAGS += $(shell mysql_config --libs) LDFLAGS += $(shell mysql_config --libs)
obj += src/database/mysql.o obj += $(obj-mysql)
endif endif
obj += src/rbtree.o .SUFFIXES: .c .o
obj += src/path.o .PHONY : $(PROGRAM) clean distclean
obj += src/strbuf.o
obj += src/xalloc.o
obj += src/die.o
obj += src/log.o
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) all : $(PROGRAM)
$(PROGRAM) : $(obj) $(PROGRAM) : src/archived.o $(obj)
$(QUIET_LD)$(LD) $^ -o $@ $(LDFLAGS) $(QUIET_LD)$(LD) $(sort $(^)) -o $@ $(LDFLAGS)
clean : clean :
@for obj in `$(FINDOBJ)`; do \ @for obj in $(shell find . -name "*.o" -type f -printf "%P\n"); do \
echo $(RM) $$obj;$(RM) $$obj; \ echo $(RM) $$obj;$(RM) $$obj; \
done done
@make -C test clean
@make -C docs clean
cleaner : clean distclean : clean
$(RM) $(PROGRAM) $(RM) $(PROGRAM)
$(RM) Makefile.local.mk
%.o : %.c %.o : %.c
$(QUIET_CC)$(CC) $(CFLAGS) -c $< -o $@ $(QUIET_CC)$(CC) $(CFLAGS) -c $< -o $@

27
Makefile.include Normal file
View 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)

View file

@ -1,68 +1,31 @@
# Test makefile # 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 : include ../Makefile.include
$(CC) -linotifytools t_raw_inotify.c -o test_raw_inotify
strbuf : ROOT = ../
$(CC) $(CFLAGS) \ TESTS = $(patsubst t_%.c,%,$(wildcard t_*.c))
../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
rbtree : .PHONY : clean
$(CC) $(CFLAGS) \ all : $(TESTS)
unit.c \
../src/die.c \
../src/xalloc.c \
../src/rbtree.c \
t_rbtree.c -o test_rbtree
inotify : strbuf : $(addprefix $(ROOT),$(obj-strbuf))
$(CC) -lpthread -D INOTIFY_DEBUG -D RB_DEBUG $(CFLAGS) \ rbtree : unit.c $(addprefix $(ROOT),$(obj-rbtree))
../src/rbtree.c \ queue : $(ROOT)src/queue.o $(addprefix $(ROOT),$(obj-xalloc))
../src/log.c \ path : unit.c $(ROOT)src/path.o $(addprefix $(ROOT),$(obj-strbuf))
../src/log-file.c \ fscrawl : $(ROOT)src/fscrawl.o $(addprefix $(ROOT),$(obj-fscrawl))
../src/xalloc.c \ notify : $(addprefix $(ROOT),$(obj-notify))
../src/die.c \ log : $(addprefix $(ROOT),$(obj-log))
../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
clean : 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 $@

View file

@ -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;
}