paul@94 | 1 | PKGDIR ?= .. |
paul@94 | 2 | L4DIR ?= $(PKGDIR)/../../.. |
paul@94 | 3 | |
paul@94 | 4 | TARGET = libfsserver.so libfsserver.a |
paul@94 | 5 | PC_FILENAME = libfsserver |
paul@94 | 6 | |
paul@94 | 7 | # Locations for interface input and generated output. |
paul@94 | 8 | |
paul@181 | 9 | IDL_DIR = $(PKGDIR)/../libsystypes/idl |
paul@94 | 10 | IDL_MK_DIR = $(L4DIR)/idl4re/mk |
paul@94 | 11 | IDL_BUILD_DIR = . |
paul@94 | 12 | IDL_EXPORT_DIR = $(OBJ_BASE)/include/contrib/$(CONTRIB_INCDIR)/fsserver |
paul@94 | 13 | |
paul@94 | 14 | include $(IDL_MK_DIR)/idl.mk |
paul@94 | 15 | |
paul@94 | 16 | # Compound interfaces. |
paul@94 | 17 | |
paul@202 | 18 | directory_object_NAME = DirectoryObject |
paul@207 | 19 | directory_object_INTERFACES = directory notification |
paul@202 | 20 | |
paul@150 | 21 | filesystem_object_NAME = FilesystemObject |
paul@150 | 22 | filesystem_object_INTERFACES = filesystem filesystem_factory |
paul@150 | 23 | |
paul@94 | 24 | mapped_file_object_NAME = MappedFileObject |
paul@141 | 25 | mapped_file_object_INTERFACES = dataspace file flush mapped_file notification |
paul@94 | 26 | |
paul@94 | 27 | opener_context_object_NAME = OpenerContextObject |
paul@94 | 28 | opener_context_object_INTERFACES = dataspace opener_context |
paul@94 | 29 | |
paul@94 | 30 | pipe_object_NAME = PipeObject |
paul@117 | 31 | pipe_object_INTERFACES = dataspace flush notification pipe |
paul@94 | 32 | |
paul@202 | 33 | COMP_INTERFACES_CC = directory_object filesystem_object mapped_file_object opener_context_object pipe_object |
paul@94 | 34 | |
paul@94 | 35 | # Individual interfaces. |
paul@94 | 36 | |
paul@124 | 37 | CLIENT_INTERFACES_CC = notifier |
paul@124 | 38 | |
paul@150 | 39 | SERVER_INTERFACES_CC = opener pipe_opener $(call common_interfaces,$(COMP_INTERFACES_CC)) |
paul@94 | 40 | |
paul@94 | 41 | # Generated and plain source files. |
paul@94 | 42 | |
paul@124 | 43 | CLIENT_INTERFACES_SRC_CC = $(call interfaces_to_client_cc,$(CLIENT_INTERFACES_CC)) |
paul@124 | 44 | |
paul@94 | 45 | SERVER_INTERFACES_SRC_CC = $(call interfaces_to_server_cc,$(SERVER_INTERFACES_CC) $(COMP_INTERFACES_CC)) |
paul@94 | 46 | |
paul@94 | 47 | PLAIN_SRC_CC = \ |
paul@202 | 48 | directories/directory_accessor.cc \ |
paul@202 | 49 | directories/directory_provider.cc \ |
paul@202 | 50 | directories/directory_resource.cc \ |
paul@202 | 51 | directories/ext2_directory_accessor.cc \ |
paul@202 | 52 | directories/host_directory_accessor.cc \ |
paul@94 | 53 | files/block_file_accessor.cc \ |
paul@94 | 54 | files/block_file_opener.cc \ |
paul@106 | 55 | files/ext2_file_accessor.cc \ |
paul@106 | 56 | files/ext2_file_opener.cc \ |
paul@148 | 57 | files/ext2_file_operations.cc \ |
paul@144 | 58 | files/ext2_filesystem.cc \ |
paul@236 | 59 | files/file_opening.cc \ |
paul@94 | 60 | files/file_pager.cc \ |
paul@200 | 61 | files/file_provider.cc \ |
paul@144 | 62 | files/filesystem_resource.cc \ |
paul@94 | 63 | files/host_file_accessor.cc \ |
paul@94 | 64 | files/host_file_opener.cc \ |
paul@94 | 65 | files/opener_context_resource.cc \ |
paul@94 | 66 | files/opener_resource.cc \ |
paul@94 | 67 | files/test_file_accessor.cc \ |
paul@94 | 68 | files/test_file_opener.cc \ |
paul@94 | 69 | generic/accessor.cc \ |
paul@197 | 70 | generic/accountable.cc \ |
paul@224 | 71 | generic/provider_registry.cc \ |
paul@224 | 72 | generic/resource_registry.cc \ |
paul@133 | 73 | generic/notification.cc \ |
paul@94 | 74 | generic/pager.cc \ |
paul@219 | 75 | generic/provider.cc \ |
paul@94 | 76 | generic/resource_server.cc \ |
paul@94 | 77 | generic/simple_pager.cc \ |
paul@94 | 78 | mapping/access_map.cc \ |
paul@94 | 79 | mapping/ipc.cc \ |
paul@94 | 80 | mapping/page_mapper.cc \ |
paul@94 | 81 | pages/page_queue.cc \ |
paul@94 | 82 | pages/page_queue_partitioned.cc \ |
paul@94 | 83 | pages/page_queue_shared.cc \ |
paul@94 | 84 | pages/pages.cc \ |
paul@94 | 85 | pipes/pipe_accessor.cc \ |
paul@94 | 86 | pipes/pipe_opener_resource.cc \ |
paul@94 | 87 | pipes/pipe_pager.cc \ |
paul@94 | 88 | pipes/pipe_paging.cc |
paul@94 | 89 | |
paul@94 | 90 | # Normal definitions. |
paul@94 | 91 | |
paul@94 | 92 | SRC_CC = \ |
paul@124 | 93 | $(CLIENT_INTERFACES_SRC_CC) \ |
paul@94 | 94 | $(SERVER_INTERFACES_SRC_CC) \ |
paul@94 | 95 | $(PLAIN_SRC_CC) |
paul@94 | 96 | |
paul@106 | 97 | REQUIRES_LIBS = \ |
paul@106 | 98 | l4re_c-util libmem libipc libstdc++ libsystypes libfsclient \ |
paul@106 | 99 | libext2fs libext2fs_blockserver libe2access libe2access_blockserver |
paul@94 | 100 | |
paul@94 | 101 | PRIVATE_INCDIR = $(PKGDIR)/include $(PKGDIR)/include/fsserver \ |
paul@94 | 102 | $(IDL_BUILD_DIR) $(IDL_EXPORT_DIR) |
paul@94 | 103 | |
paul@94 | 104 | CONTRIB_INCDIR = libfsserver |
paul@94 | 105 | |
paul@94 | 106 | include $(L4DIR)/mk/lib.mk |
paul@94 | 107 | include $(IDL_MK_DIR)/interface_rules.mk |
paul@94 | 108 | |
paul@124 | 109 | $(PLAIN_SRC_CC): $(CLIENT_INTERFACES_SRC_CC) |
paul@124 | 110 | |
paul@94 | 111 | $(PLAIN_SRC_CC): $(SERVER_INTERFACES_SRC_CC) |