xref: /freebsd/contrib/lib9p/GNUmakefile (revision 134e17798c9af53632b372348ab828e75e65bf46)
1*134e1779SJakub Wojciech KlamaCC_VERSION := $(shell $(CC) --version | \
2*134e1779SJakub Wojciech Klama    sed -n -e '/clang-/s/.*clang-\([0-9][0-9]*\).*/\1/p')
3*134e1779SJakub Wojciech Klamaifeq ($(CC_VERSION),)
4*134e1779SJakub Wojciech Klama# probably not clang
5*134e1779SJakub Wojciech KlamaCC_VERSION := 0
6*134e1779SJakub Wojciech Klamaendif
7*134e1779SJakub Wojciech Klama
8*134e1779SJakub Wojciech KlamaWFLAGS :=
9*134e1779SJakub Wojciech Klama
10*134e1779SJakub Wojciech Klama# Warnings are version-dependent, unfortunately,
11*134e1779SJakub Wojciech Klama# so test for version before adding a -W flag.
12*134e1779SJakub Wojciech Klama# Note: gnu make requires $(shell test ...) for "a > b" type tests.
13*134e1779SJakub Wojciech Klamaifeq ($(shell test $(CC_VERSION) -gt 0; echo $$?),0)
14*134e1779SJakub Wojciech KlamaWFLAGS += -Weverything
15*134e1779SJakub Wojciech KlamaWFLAGS += -Wno-padded
16*134e1779SJakub Wojciech KlamaWFLAGS += -Wno-gnu-zero-variadic-macro-arguments
17*134e1779SJakub Wojciech KlamaWFLAGS += -Wno-format-nonliteral
18*134e1779SJakub Wojciech KlamaWFLAGS += -Wno-unused-macros
19*134e1779SJakub Wojciech KlamaWFLAGS += -Wno-disabled-macro-expansion
20*134e1779SJakub Wojciech KlamaWFLAGS += -Werror
21*134e1779SJakub Wojciech Klamaendif
22*134e1779SJakub Wojciech Klama
23*134e1779SJakub Wojciech Klamaifeq ($(shell test $(CC_VERSION) -gt 600; echo $$?),0)
24*134e1779SJakub Wojciech KlamaWFLAGS += -Wno-reserved-id-macro
25*134e1779SJakub Wojciech Klamaendif
26*134e1779SJakub Wojciech Klama
27*134e1779SJakub Wojciech KlamaCFLAGS := $(WFLAGS) \
28*134e1779SJakub Wojciech Klama	-g \
29*134e1779SJakub Wojciech Klama	-O0 \
30*134e1779SJakub Wojciech Klama	-DL9P_DEBUG=L9P_DEBUG
31*134e1779SJakub Wojciech Klama# Note: to turn on debug, use -DL9P_DEBUG=L9P_DEBUG,
32*134e1779SJakub Wojciech Klama# and set env variable LIB9P_LOGGING to stderr or to
33*134e1779SJakub Wojciech Klama# the (preferably full path name of) the debug log file.
34*134e1779SJakub Wojciech Klama
35*134e1779SJakub Wojciech KlamaLIB_SRCS := \
36*134e1779SJakub Wojciech Klama	pack.c \
37*134e1779SJakub Wojciech Klama	connection.c \
38*134e1779SJakub Wojciech Klama	request.c \
39*134e1779SJakub Wojciech Klama	genacl.c \
40*134e1779SJakub Wojciech Klama	log.c \
41*134e1779SJakub Wojciech Klama	hashtable.c \
42*134e1779SJakub Wojciech Klama	utils.c \
43*134e1779SJakub Wojciech Klama	rfuncs.c \
44*134e1779SJakub Wojciech Klama	threadpool.c \
45*134e1779SJakub Wojciech Klama	sbuf/sbuf.c \
46*134e1779SJakub Wojciech Klama	transport/socket.c \
47*134e1779SJakub Wojciech Klama	backend/fs.c
48*134e1779SJakub Wojciech Klama
49*134e1779SJakub Wojciech KlamaSERVER_SRCS := \
50*134e1779SJakub Wojciech Klama	example/server.c
51*134e1779SJakub Wojciech Klama
52*134e1779SJakub Wojciech KlamaBUILD_DIR := build
53*134e1779SJakub Wojciech KlamaLIB_OBJS := $(addprefix build/,$(LIB_SRCS:.c=.o))
54*134e1779SJakub Wojciech KlamaSERVER_OBJS := $(SERVER_SRCS:.c=.o)
55*134e1779SJakub Wojciech KlamaLIB := lib9p.dylib
56*134e1779SJakub Wojciech KlamaSERVER := server
57*134e1779SJakub Wojciech Klama
58*134e1779SJakub Wojciech Klamaall: build $(LIB) $(SERVER)
59*134e1779SJakub Wojciech Klama
60*134e1779SJakub Wojciech Klama$(LIB): $(LIB_OBJS)
61*134e1779SJakub Wojciech Klama	cc -dynamiclib $^ -o build/$@
62*134e1779SJakub Wojciech Klama
63*134e1779SJakub Wojciech Klama$(SERVER): $(SERVER_OBJS) $(LIB)
64*134e1779SJakub Wojciech Klama	cc $< -o build/$(SERVER) -Lbuild/ -l9p
65*134e1779SJakub Wojciech Klama
66*134e1779SJakub Wojciech Klamaclean:
67*134e1779SJakub Wojciech Klama	rm -rf build
68*134e1779SJakub Wojciech Klama	rm -f $(SERVER_OBJS)
69*134e1779SJakub Wojciech Klamabuild:
70*134e1779SJakub Wojciech Klama	mkdir build
71*134e1779SJakub Wojciech Klama	mkdir build/sbuf
72*134e1779SJakub Wojciech Klama	mkdir build/transport
73*134e1779SJakub Wojciech Klama	mkdir build/backend
74*134e1779SJakub Wojciech Klama
75*134e1779SJakub Wojciech Klamabuild/%.o: %.c
76*134e1779SJakub Wojciech Klama	$(CC) $(CFLAGS) -c $< -o $@
77