Makefile (4ef92c2ecd96ebad171e554020c83ce9fdb343ae) Makefile (b4f9166847354cb839c275c062c6b17afba49211)
1include ../../scripts/Makefile.include
2include ../../perf/config/utilities.mak # QUIET_CLEAN
3
1include ../../scripts/Makefile.include
2include ../../perf/config/utilities.mak # QUIET_CLEAN
3
4ifeq ($(srctree),)
5srctree := $(patsubst %/,%,$(dir $(shell pwd)))
6srctree := $(patsubst %/,%,$(dir $(srctree)))
7srctree := $(patsubst %/,%,$(dir $(srctree)))
8#$(info Determined 'srctree' to be $(srctree))
9endif
10
4CC = $(CROSS_COMPILE)gcc
5AR = $(CROSS_COMPILE)ar
6
11CC = $(CROSS_COMPILE)gcc
12AR = $(CROSS_COMPILE)ar
13
7# guard against environment variables
8LIB_H=
9LIB_OBJS=
14MAKEFLAGS += --no-print-directory
10
15
11LIB_H += fs/debugfs.h
12LIB_H += fs/tracefs.h
13LIB_H += fs/findfs.h
14LIB_H += fs/fs.h
15# See comment below about piggybacking...
16LIB_H += fd/array.h
16LIBFILE = $(OUTPUT)libapikfs.a
17
17
18LIB_OBJS += $(OUTPUT)fs/debugfs.o
19LIB_OBJS += $(OUTPUT)fs/tracefs.o
20LIB_OBJS += $(OUTPUT)fs/findfs.o
21LIB_OBJS += $(OUTPUT)fs/fs.o
22# XXX piggybacking here, need to introduce libapikfd, or rename this
23# to plain libapik.a and make it have it all api goodies
24LIB_OBJS += $(OUTPUT)fd/array.o
18CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
19CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -D_FORTIFY_SOURCE=2 -fPIC
20CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
25
21
26LIBFILE = libapikfs.a
27
28CFLAGS = -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
29EXTLIBS = -lelf -lpthread -lrt -lm
30ALL_CFLAGS = $(CFLAGS) $(BASIC_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
31ALL_LDFLAGS = $(LDFLAGS)
32
33RM = rm -f
34
22RM = rm -f
23
35$(LIBFILE): $(LIB_OBJS)
36 $(QUIET_AR)$(RM) $@ && $(AR) rcs $(OUTPUT)$@ $(LIB_OBJS)
24build := -f $(srctree)/tools/build/Makefile.build dir=. obj
25API_IN := $(OUTPUT)libapikfs-in.o
37
26
38$(LIB_OBJS): $(LIB_H)
27export srctree OUTPUT CC LD CFLAGS V
39
28
40libapi_dirs:
41 $(QUIET_MKDIR)mkdir -p $(OUTPUT)fd $(OUTPUT)fs
29all: $(LIBFILE)
42
30
43$(OUTPUT)%.o: %.c libapi_dirs
44 $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<
45$(OUTPUT)%.s: %.c libapi_dirs
46 $(QUIET_CC)$(CC) -S $(ALL_CFLAGS) $<
47$(OUTPUT)%.o: %.S libapi_dirs
48 $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) $<
31$(API_IN): FORCE
32 @$(MAKE) $(build)=libapikfs
49
33
34$(LIBFILE): $(API_IN)
35 $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(API_IN)
36
50clean:
37clean:
51 $(call QUIET_CLEAN, libapi) $(RM) $(LIB_OBJS) $(LIBFILE)
38 $(call QUIET_CLEAN, libapikfs) $(RM) $(LIBFILE); \
39 find $(if $(OUTPUT),$(OUTPUT),.) -name \*.o | xargs $(RM)
52
40
53.PHONY: clean
41FORCE:
42
43.PHONY: clean FORCE