1 1.16.2.2 haad # $NetBSD: Makefile.rumpkern,v 1.16.2.2 2008/10/19 22:18:06 haad Exp $ 2 1.16.2.2 haad # 3 1.16.2.2 haad 4 1.16.2.2 haad .include "${RUMPTOP}/Makefile.rump" 5 1.16.2.2 haad 6 1.16.2.2 haad LIB= rump 7 1.16.2.2 haad LDFLAGS+= -Wl,--wrap=malloc 8 1.16.2.2 haad 9 1.16.2.2 haad INCSDIR=/usr/include/rump 10 1.16.2.2 haad INCS+= rump.h rumpdefs.h rump_syscalls.h rumpvnode_if.h 11 1.16.2.2 haad 12 1.16.2.2 haad .PATH: ${RUMPTOP}/librump/rumpkern \ 13 1.16.2.2 haad ${RUMPTOP}/../kern ${RUMPTOP}/../lib/libkern \ 14 1.16.2.2 haad ${RUMPTOP}/../conf ${RUMPTOP}/../dev \ 15 1.16.2.2 haad ${RUMPTOP}/../miscfs/genfs ${RUMPTOP}/../miscfs/syncfs 16 1.16.2.2 haad 17 1.16.2.2 haad # 18 1.16.2.2 haad # Source modules, first the ones specifically implemented for librump. 19 1.16.2.2 haad # 20 1.16.2.2 haad SRCS= rump.c emul.c intr.c genfs_io.c locks.c ltsleep.c percpu.c \ 21 1.16.2.2 haad pool.c sleepq.c specfs.c vfs.c vm.c 22 1.16.2.2 haad # stubs 23 1.16.2.2 haad SRCS+= fstrans_stub.c misc_stub.c pmap_stub.c vfsops_stub.c 24 1.16.2.2 haad 25 1.16.2.2 haad # 26 1.16.2.2 haad # Rest are from the std kernel sources. 27 1.16.2.2 haad # 28 1.16.2.2 haad # sys/kern 29 1.16.2.2 haad SRCS+= kern_auth.c kern_descrip.c kern_malloc_stdtype.c kern_module.c \ 30 1.16.2.2 haad kern_rate.c kern_stub.c kern_sysctl.c kern_timeout.c \ 31 1.16.2.2 haad kern_uidinfo.c param.c sys_descrip.c sys_generic.c 32 1.16.2.2 haad 33 1.16.2.2 haad # sys/kern subr (misc) 34 1.16.2.2 haad SRCS+= subr_bufq.c subr_callback.c subr_hash.c subr_iostat.c \ 35 1.16.2.2 haad subr_kobj.c subr_once.c subr_prf2.c subr_specificdata.c \ 36 1.16.2.2 haad subr_time.c subr_workqueue.c 37 1.16.2.2 haad 38 1.16.2.2 haad # sys/kern vfs 39 1.16.2.2 haad SRCS+= vfs_bio.c vfs_cache.c vfs_dirhash.c vfs_getcwd.c vfs_hooks.c \ 40 1.16.2.2 haad vfs_init.c vfs_lookup.c vfs_subr.c vfs_syscalls.c vfs_vnops.c \ 41 1.16.2.2 haad vfs_wapbl.c vnode_if.c 42 1.16.2.2 haad 43 1.16.2.2 haad # sys/miscfs 44 1.16.2.2 haad SRCS+= genfs_vfsops.c genfs_vnops.c sync_subr.c 45 1.16.2.2 haad 46 1.16.2.2 haad # sys/kern bufq 47 1.16.2.2 haad SRCS+= subr_bufq.c bufq_disksort.c bufq_fcfs.c bufq_priocscan.c \ 48 1.16.2.2 haad bufq_readprio.c 49 1.16.2.2 haad 50 1.16.2.2 haad # sys/dev 51 1.16.2.2 haad SRCS+= clock_subr.c 52 1.16.2.2 haad 53 1.16.2.2 haad # src/lib/libkern 54 1.16.2.2 haad SRCS+= __assert.c scanc.c skpc.c 55 1.16.2.2 haad 56 1.16.2.2 haad SRCS+= rumpvnode_if.c rump_syscalls.c 57 1.16.2.2 haad 58 1.16.2.2 haad # uncomment these lines if you want to use the real kmem code 59 1.16.2.2 haad #CPPFLAGS+= -DRUMP_USE_REAL_KMEM 60 1.16.2.2 haad #SRCS+= subr_kmem.c subr_vmem.c 61 1.16.2.2 haad 62 1.16.2.2 haad .if ${MACHINE_ARCH} == "vax" 63 1.16.2.2 haad .PATH: ${RUMPTOP}/../lib/libkern/arch/vax 64 1.16.2.2 haad SRCS+= blkset.S 65 1.16.2.2 haad .endif 66 1.16.2.2 haad 67 1.16.2.2 haad # no shlib_version because this is automatically in sync with lib/librump 68 1.16.2.2 haad SHLIB_MAJOR= 0 69 1.16.2.2 haad SHLIB_MINOR= 0 70 1.16.2.2 haad 71 1.16.2.2 haad CPPFLAGS+= -I${RUMPTOP}/librump/rumpkern/opt -DMAXUSERS=32 72 1.16.2.2 haad CPPFLAGS+= -I${RUMPTOP}/librump/rumpnet 73 1.16.2.2 haad CFLAGS+= -Wno-pointer-sign 74 1.16.2.2 haad 75 1.16.2.2 haad # Create a few files. We can't include them directly, because that 76 1.16.2.2 haad # would create hideous namespace lossage. So just do some clever 77 1.16.2.2 haad # (or less clever) renaming. 78 1.16.2.2 haad # 79 1.16.2.2 haad # Yes, this is borderline disgusting not to mention seriously 80 1.16.2.2 haad # labile, but what are you gonna do for a quick hack? 81 1.16.2.2 haad # 82 1.16.2.2 haad VOPTORUMPVOP="-e s/vop/rump_vop/g;/VOPARG/!s/VOP/RUMP_VOP/g;/vfs_op_desc/,\$$d" 83 1.16.2.2 haad VOPTORUMPVOP+="-e s/vm_prot_t/int/g" 84 1.16.2.2 haad VOPTORUMPVOP+="-e s/voff_t/off_t/g;/sys\/buf\.h/s/.*/struct buf;/" 85 1.16.2.2 haad RVNH=\#include \<rump\/rump.h\> 86 1.16.2.2 haad 87 1.16.2.2 haad rumpvnode_if.h: ${RUMPTOP}/../sys/vnode_if.h \ 88 1.16.2.2 haad ${RUMPTOP}/librump/rumpkern/Makefile.rumpkern 89 1.16.2.2 haad echo Generating rumpvnode_if.h 90 1.16.2.2 haad sed ${VOPTORUMPVOP}";s/SYS_VNODE_IF_H/SYS_RUMPVNODE_IF_H/g" \ 91 1.16.2.2 haad < ${RUMPTOP}/../sys/vnode_if.h > rumpvnode_if.h 92 1.16.2.2 haad 93 1.16.2.2 haad rumpvnode_if.c: ${RUMPTOP}/../kern/vnode_if.c \ 94 1.16.2.2 haad ${RUMPTOP}/librump/rumpkern/Makefile.rumpkern 95 1.16.2.2 haad echo Generating rumpvnode_if.c 96 1.16.2.2 haad # XXX: some creative kludging to simulate 'a\' (I have no 97 1.16.2.2 haad # clue how to make it work in a Makefile 98 1.16.2.2 haad sed ${VOPTORUMPVOP}";/sys\/vnode.h/{x;s/.*/${RVNH}/;x;G;n;}" \ 99 1.16.2.2 haad < ${RUMPTOP}/../kern/vnode_if.c > rumpvnode_if.c 100 1.16.2.2 haad 101 1.16.2.2 haad rumpdefs.h: ${RUMPTOP}/../sys/namei.h \ 102 1.16.2.2 haad ${RUMPTOP}/../sys/fcntl.h \ 103 1.16.2.2 haad ${RUMPTOP}/../sys/vnode.h \ 104 1.16.2.2 haad ${RUMPTOP}/../sys/errno.h \ 105 1.16.2.2 haad ${RUMPTOP}/librump/rumpkern/Makefile.rumpkern 106 1.16.2.2 haad echo Generating rumpdefs.h 107 1.16.2.2 haad sed -n '/#define NAMEI_/s/NAMEI_/RUMP_NAMEI_/gp' \ 108 1.16.2.2 haad < ${RUMPTOP}/../sys/namei.h > rumpdefs.h 109 1.16.2.2 haad sed -n '/#define O_[A-Z]* *0x/s/O_/RUMP_O_/gp' \ 110 1.16.2.2 haad < ${RUMPTOP}/../sys/fcntl.h >> rumpdefs.h 111 1.16.2.2 haad printf "#ifndef __VTYPE_DEFINED\n#define __VTYPE_DEFINED\n" \ 112 1.16.2.2 haad >> rumpdefs.h 113 1.16.2.2 haad sed -n '/enum vtype.*{/p' \ 114 1.16.2.2 haad < ${RUMPTOP}/../sys/vnode.h >> rumpdefs.h 115 1.16.2.2 haad printf "#endif /* __VTYPE_DEFINED */\n" >> rumpdefs.h 116 1.16.2.2 haad printf "#ifndef EJUSTRETURN\n" >> rumpdefs.h 117 1.16.2.2 haad sed -n '/EJUSTRETURN/p' \ 118 1.16.2.2 haad < ${RUMPTOP}/../sys/errno.h >> rumpdefs.h 119 1.16.2.2 haad printf "#endif /* EJUSTRETURN */\n" >> rumpdefs.h 120 1.16.2.2 haad 121 1.16.2.2 haad CLEANFILES+= rumpvnode_if.c rumpvnode_if.h rumpdefs.h 122 1.16.2.2 haad 123 1.16.2.2 haad beforedepend: rumpvnode_if.c rumpvnode_if.h rumpdefs.h 124 1.16.2.2 haad 125 1.16.2.2 haad .include <bsd.lib.mk> 126 1.16.2.2 haad .include <bsd.klinks.mk> 127