1 PKGDIR ?= .. 2 L4DIR ?= $(PKGDIR)/../../.. 3 4 TARGET = libfsserver.so libfsserver.a 5 PC_FILENAME = libfsserver 6 7 # Locations for interface input and generated output. 8 9 IDL_DIR = $(PKGDIR)/../libsystypes/idl 10 IDL_MK_DIR = $(L4DIR)/idl4re/mk 11 IDL_BUILD_DIR = . 12 IDL_EXPORT_DIR = $(OBJ_BASE)/include/contrib/$(CONTRIB_INCDIR)/fsserver 13 14 include $(IDL_MK_DIR)/idl.mk 15 16 # Required interfaces. 17 18 CLIENT_INTERFACES_CC = notifier 19 20 SERVER_INTERFACES_CC = \ 21 directory_object \ 22 filesystem_object \ 23 mapped_file_object \ 24 opener_context_object \ 25 pipe_object \ 26 opener \ 27 pipe_opener \ 28 29 # Generated and plain source files. 30 31 CLIENT_INTERFACES_SRC_CC = $(call interfaces_to_client_cc,$(CLIENT_INTERFACES_CC)) 32 33 SERVER_INTERFACES_SRC_CC = $(call interfaces_to_server_cc,$(SERVER_INTERFACES_CC)) 34 35 PLAIN_SRC_CC = \ 36 directories/directory_accessor.cc \ 37 directories/directory_provider.cc \ 38 directories/directory_resource.cc \ 39 directories/ext2_directory_accessor.cc \ 40 directories/host_directory_accessor.cc \ 41 files/block_file_accessor.cc \ 42 files/block_file_opener.cc \ 43 files/ext2_file_accessor.cc \ 44 files/ext2_file_opener.cc \ 45 files/ext2_file_operations.cc \ 46 files/ext2_filesystem.cc \ 47 files/file_opening.cc \ 48 files/file_pager.cc \ 49 files/file_provider.cc \ 50 files/filesystem_resource.cc \ 51 files/host_file_accessor.cc \ 52 files/host_file_opener.cc \ 53 files/opener_context_resource.cc \ 54 files/opener_resource.cc \ 55 files/test_file_accessor.cc \ 56 files/test_file_opener.cc \ 57 generic/accessor.cc \ 58 generic/accountable.cc \ 59 generic/provider_registry.cc \ 60 generic/resource_registry.cc \ 61 generic/notification.cc \ 62 generic/pager.cc \ 63 generic/provider.cc \ 64 generic/resource_server.cc \ 65 generic/simple_pager.cc \ 66 mapping/access_map.cc \ 67 mapping/copied_page_mapper.cc \ 68 mapping/generic_page_mapper.cc \ 69 mapping/ipc.cc \ 70 mapping/masked_page_mapper.cc \ 71 mapping/page_mapper.cc \ 72 pages/page_queue.cc \ 73 pages/page_queue_partitioned.cc \ 74 pages/page_queue_shared.cc \ 75 pages/pages.cc \ 76 pipes/pipe_accessor.cc \ 77 pipes/pipe_opener_resource.cc \ 78 pipes/pipe_pager.cc \ 79 pipes/pipe_paging.cc 80 81 # Normal definitions. 82 83 SRC_CC = \ 84 $(CLIENT_INTERFACES_SRC_CC) \ 85 $(SERVER_INTERFACES_SRC_CC) \ 86 $(PLAIN_SRC_CC) 87 88 REQUIRES_LIBS = \ 89 l4re_c-util libmem libipc libstdc++ libsystypes libfsclient \ 90 libext2fs libext2fs_blockserver libe2access libe2access_blockserver 91 92 PRIVATE_INCDIR = $(PKGDIR)/include $(PKGDIR)/include/fsserver \ 93 $(IDL_BUILD_DIR) $(IDL_EXPORT_DIR) 94 95 CONTRIB_INCDIR = libfsserver 96 97 include $(L4DIR)/mk/lib.mk 98 include $(IDL_MK_DIR)/interface_rules.mk 99 100 $(PLAIN_SRC_CC): $(CLIENT_INTERFACES_SRC_CC) 101 102 $(PLAIN_SRC_CC): $(SERVER_INTERFACES_SRC_CC)