Makefile
author Tero Marttila <terom@fixme.fi>
Wed, 15 Oct 2008 01:14:22 +0300
changeset 28 e944453ca924
parent 25 99a41f48e29b
child 29 5de62ca9a5aa
permissions -rw-r--r--
split off dbfs components into a separate dir, improve dirop docs, error handling, etc
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
     1
LIBEVENT_PATH = ../libs/libevent-dev
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
     2
LIBFUSE_PATH = ../libs/libfuse-2.7.4
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
LIBRARY_PATHS = -L${LIBEVENT_PATH}/lib -L${LIBFUSE_PATH}/lib
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
INCLUDE_PATHS = -I${LIBEVENT_PATH}/include -I${LIBFUSE_PATH}/include
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
     6
LDLIBS = -levent -lfuse -lpq
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
28
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
     8
ifdef DEBUG
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
     9
DEBUG_FLAGS = -DDEBUG_ENABLED
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
    10
else
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
    11
DEBUG_FLAGS = 
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
    12
endif
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
    13
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    14
# XXX: ugh... use `pkg-config fuse`
28
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
    15
DEFINES = -D_FILE_OFFSET_BITS=64 ${DEBUG_FLAGS}
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
MY_CFLAGS = -Wall -g -std=gnu99
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
24
82cfdb6680d1 working dbfs.lookup
Tero Marttila <terom@fixme.fi>
parents: 20
diff changeset
    18
BIN_NAMES = helloworld hello simple_hello evpq_test url_test dbfs
19
c4b163491900 fix the all target
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
    19
BIN_PATHS = $(addprefix bin/,$(BIN_NAMES))
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
28
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
    21
# complex modules
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
    22
EVSQL_OBJS = obj/evsql.o obj/evsql_util.o obj/evpq.o
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
    23
DBFS_OBJS = obj/dbfs/dbfs.o obj/dbfs/common.o obj/dbfs/core.o obj/dbfs/dirop.o obj/dirbuf.o
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
    24
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    25
# first target
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    26
all: ${BIN_PATHS}
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    27
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    28
# binaries
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    29
bin/helloworld: 
7
3a603d755bcb split off the dirbuf stuff into its own module
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    30
bin/hello: obj/evfuse.o obj/dirbuf.o obj/lib/log.o obj/lib/signals.o
3a603d755bcb split off the dirbuf stuff into its own module
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    31
bin/simple_hello: obj/evfuse.o obj/dirbuf.o obj/lib/log.o obj/lib/signals.o obj/simple.o
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    32
bin/evpq_test: obj/evpq.o obj/lib/log.o
15
a8d183e79ed9 look ma, it compiles\!
Tero Marttila <terom@fixme.fi>
parents: 11
diff changeset
    33
bin/url_test: obj/lib/url.o obj/lib/lex.o obj/lib/log.o
28
e944453ca924 split off dbfs components into a separate dir, improve dirop docs, error handling, etc
Tero Marttila <terom@fixme.fi>
parents: 25
diff changeset
    34
bin/dbfs: ${DBFS_OBJS} ${EVSQL_OBJS} obj/evfuse.o obj/lib/log.o obj/lib/signals.o
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
# computed
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
LDFLAGS = ${LIBRARY_PATHS} ${LIBRARY_LIST}
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    38
CFLAGSX = ${DEFINES} ${MY_CFLAGS}
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    39
CFLAGS = ${INCLUDE_PATHS} ${CFLAGSX}
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
19
c4b163491900 fix the all target
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
    41
SRC_PATHS = $(wildcard src/*.c) $(wildcard src/*/*.c)
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS))
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    43
SRC_DIRS = $(dir $(SRC_NAMES))
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    45
# other targets
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
clean :
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    47
	-rm obj/* bin/*
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    48
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    49
#obj-dirs: 
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    50
#	python build/make_obj_dirs.py $(BIN_PATHS)
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    51
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    52
build/deps/%.d : src/%.c
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    53
	@set -e; rm -f $@; \
20
f0ef6d8880b4 fix build deps for subdirs of src
Tero Marttila <terom@fixme.fi>
parents: 19
diff changeset
    54
	 $(CC) -MM -MT __ $(CPPFLAGS) $< > $@.$$$$; \
f0ef6d8880b4 fix build deps for subdirs of src
Tero Marttila <terom@fixme.fi>
parents: 19
diff changeset
    55
	 sed 's,__[ :]*,obj/$*.o $@ : ,g' < $@.$$$$ > $@; \
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    56
	 rm -f $@.$$$$
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    57
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    58
include $(SRC_NAMES:%.c=build/deps/%.d)
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    59
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    60
obj/%.o : src/%.c
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    61
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    62
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    63
bin/% : obj/%.o
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    64
	$(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    65