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