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@150 | 18 | filesystem_object_NAME = FilesystemObject |
paul@150 | 19 | filesystem_object_INTERFACES = filesystem filesystem_factory |
paul@150 | 20 | |
paul@94 | 21 | mapped_file_object_NAME = MappedFileObject |
paul@141 | 22 | mapped_file_object_INTERFACES = dataspace file flush mapped_file notification |
paul@94 | 23 | |
paul@94 | 24 | opener_context_object_NAME = OpenerContextObject |
paul@94 | 25 | opener_context_object_INTERFACES = dataspace opener_context |
paul@94 | 26 | |
paul@94 | 27 | pipe_object_NAME = PipeObject |
paul@117 | 28 | pipe_object_INTERFACES = dataspace flush notification pipe |
paul@94 | 29 | |
paul@150 | 30 | COMP_INTERFACES_CC = filesystem_object mapped_file_object opener_context_object pipe_object |
paul@94 | 31 | |
paul@94 | 32 | # Individual interfaces. |
paul@94 | 33 | |
paul@124 | 34 | CLIENT_INTERFACES_CC = notifier |
paul@124 | 35 | |
paul@150 | 36 | SERVER_INTERFACES_CC = opener pipe_opener $(call common_interfaces,$(COMP_INTERFACES_CC)) |
paul@94 | 37 | |
paul@94 | 38 | # Generated and plain source files. |
paul@94 | 39 | |
paul@124 | 40 | CLIENT_INTERFACES_SRC_CC = $(call interfaces_to_client_cc,$(CLIENT_INTERFACES_CC)) |
paul@124 | 41 | |
paul@94 | 42 | SERVER_INTERFACES_SRC_CC = $(call interfaces_to_server_cc,$(SERVER_INTERFACES_CC) $(COMP_INTERFACES_CC)) |
paul@94 | 43 | |
paul@94 | 44 | PLAIN_SRC_CC = \ |
paul@94 | 45 | files/block_file_accessor.cc \ |
paul@94 | 46 | files/block_file_opener.cc \ |
paul@106 | 47 | files/ext2_file_accessor.cc \ |
paul@106 | 48 | files/ext2_file_opener.cc \ |
paul@148 | 49 | files/ext2_file_operations.cc \ |
paul@144 | 50 | files/ext2_filesystem.cc \ |
paul@94 | 51 | files/file_pager.cc \ |
paul@94 | 52 | files/file_paging.cc \ |
paul@144 | 53 | files/filesystem_resource.cc \ |
paul@94 | 54 | files/host_file_accessor.cc \ |
paul@94 | 55 | files/host_file_opener.cc \ |
paul@94 | 56 | files/opener_context_resource.cc \ |
paul@94 | 57 | files/opener_resource.cc \ |
paul@94 | 58 | files/test_file_accessor.cc \ |
paul@94 | 59 | files/test_file_opener.cc \ |
paul@94 | 60 | generic/accessor.cc \ |
paul@133 | 61 | generic/notification.cc \ |
paul@94 | 62 | generic/pager.cc \ |
paul@94 | 63 | generic/resource_server.cc \ |
paul@94 | 64 | generic/simple_pager.cc \ |
paul@94 | 65 | mapping/access_map.cc \ |
paul@94 | 66 | mapping/ipc.cc \ |
paul@94 | 67 | mapping/page_mapper.cc \ |
paul@94 | 68 | pages/page_queue.cc \ |
paul@94 | 69 | pages/page_queue_partitioned.cc \ |
paul@94 | 70 | pages/page_queue_shared.cc \ |
paul@94 | 71 | pages/pages.cc \ |
paul@94 | 72 | pipes/pipe_accessor.cc \ |
paul@94 | 73 | pipes/pipe_opener_resource.cc \ |
paul@94 | 74 | pipes/pipe_pager.cc \ |
paul@94 | 75 | pipes/pipe_paging.cc |
paul@94 | 76 | |
paul@94 | 77 | # Normal definitions. |
paul@94 | 78 | |
paul@94 | 79 | SRC_CC = \ |
paul@124 | 80 | $(CLIENT_INTERFACES_SRC_CC) \ |
paul@94 | 81 | $(SERVER_INTERFACES_SRC_CC) \ |
paul@94 | 82 | $(PLAIN_SRC_CC) |
paul@94 | 83 | |
paul@106 | 84 | REQUIRES_LIBS = \ |
paul@106 | 85 | l4re_c-util libmem libipc libstdc++ libsystypes libfsclient \ |
paul@106 | 86 | libext2fs libext2fs_blockserver libe2access libe2access_blockserver |
paul@94 | 87 | |
paul@94 | 88 | PRIVATE_INCDIR = $(PKGDIR)/include $(PKGDIR)/include/fsserver \ |
paul@94 | 89 | $(IDL_BUILD_DIR) $(IDL_EXPORT_DIR) |
paul@94 | 90 | |
paul@94 | 91 | CONTRIB_INCDIR = libfsserver |
paul@94 | 92 | |
paul@94 | 93 | include $(L4DIR)/mk/lib.mk |
paul@94 | 94 | include $(IDL_MK_DIR)/interface_rules.mk |
paul@94 | 95 | |
paul@124 | 96 | $(PLAIN_SRC_CC): $(CLIENT_INTERFACES_SRC_CC) |
paul@124 | 97 | |
paul@94 | 98 | $(PLAIN_SRC_CC): $(SERVER_INTERFACES_SRC_CC) |