Makefile
author Tero Marttila <terom@fixme.fi>
Sat, 11 Oct 2008 21:23:03 +0300
changeset 19 c4b163491900
parent 15 a8d183e79ed9
child 20 f0ef6d8880b4
permissions -rw-r--r--
fix the all target
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
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
     8
# XXX: ugh... use `pkg-config fuse`
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
     9
DEFINES = -D_FILE_OFFSET_BITS=64
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
MY_CFLAGS = -Wall -g -std=gnu99
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
19
c4b163491900 fix the all target
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
    12
BIN_NAMES = helloworld hello simple_hello evpq_test url_test
c4b163491900 fix the all target
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
    13
BIN_PATHS = $(addprefix bin/,$(BIN_NAMES))
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    15
# first target
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    16
all: ${BIN_PATHS}
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    17
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    18
# binaries
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    19
bin/helloworld: 
7
3a603d755bcb split off the dirbuf stuff into its own module
Tero Marttila <terom@fixme.fi>
parents: 6
diff changeset
    20
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
    21
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
    22
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
    23
bin/url_test: obj/lib/url.o obj/lib/lex.o obj/lib/log.o
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
# computed
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
LDFLAGS = ${LIBRARY_PATHS} ${LIBRARY_LIST}
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    27
CFLAGSX = ${DEFINES} ${MY_CFLAGS}
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    28
CFLAGS = ${INCLUDE_PATHS} ${CFLAGSX}
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
19
c4b163491900 fix the all target
Tero Marttila <terom@fixme.fi>
parents: 15
diff changeset
    30
SRC_PATHS = $(wildcard src/*.c) $(wildcard src/*/*.c)
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS))
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    32
SRC_DIRS = $(dir $(SRC_NAMES))
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    34
# other targets
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
clean :
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
	-rm obj/* bin/*
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    38
#obj-dirs: 
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    39
#	python build/make_obj_dirs.py $(BIN_PATHS)
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    41
build/deps/%.d : src/%.c
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    42
	@set -e; rm -f $@; \
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    43
	 $(CC) -MM $(CPPFLAGS) $< > $@.$$$$; \
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    44
	 sed 's,\($*\)\.o[ :]*,obj/\1.o $@ : ,g' < $@.$$$$ > $@; \
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    45
	 rm -f $@.$$$$
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    46
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    47
include $(SRC_NAMES:%.c=build/deps/%.d)
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    48
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    49
obj/%.o : src/%.c
11
a4e382d4a22a Makefile fixes, build/deps
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    50
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    51
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    52
bin/% : obj/%.o
1
b31db3248246 a working hello
Tero Marttila <terom@fixme.fi>
parents: 0
diff changeset
    53
	$(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
0
487cbfbafa2c initial untested code...
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54