#
# Copyright (c) 1994, 1997-1999 University of Utah and the Flux Group.
# All rights reserved.
# 
# This file is part of the Flux OSKit.  The OSKit is free software, also known
# as "open source;" you can redistribute it and/or modify it under the terms
# of the GNU General Public License (GPL), version 2, as published by the Free
# Software Foundation (FSF).  To explore alternate licensing terms, contact
# the University of Utah at csl-dist@cs.utah.edu or +1-801-585-3271.
# 
# The OSKit is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GPL for more details.  You should have
# received a copy of the GPL along with the OSKit; see the file COPYING.  If
# not, write to the FSF, 59 Temple Place #330, Boston, MA 02111-1307, USA.
#

ifndef _oskit_netbsd_fs_makerules_
_oskit_netbsd_fs_makerules_ = yes

TARGET = liboskit_netbsd_fs.a

SRCDIRS += $(OSKIT_SRCDIR)/netbsd/fs \
	   $(OSKIT_SRCDIR)/netbsd/src/sys/conf \
	   $(OSKIT_SRCDIR)/netbsd/src/sys/kern \
	   $(OSKIT_SRCDIR)/netbsd/src/sys/lib/libkern \
	   $(OSKIT_SRCDIR)/netbsd/src/sys/miscfs/deadfs \
	   $(OSKIT_SRCDIR)/netbsd/src/sys/miscfs/specfs \
	   $(OSKIT_SRCDIR)/netbsd/src/sys/ufs/ffs \
	   $(OSKIT_SRCDIR)/netbsd/src/sys/ufs/ufs

ifeq ($(HOST_ARCH),x86)
SRCDIRS += $(OSKIT_SRCDIR)/netbsd/src/sys/arch/i386/i386
OBJINC   = $(OSKIT_SRCDIR)/netbsd/src/sys/arch/i386/include
endif
ifeq ($(HOST_ARCH),arm32)
SRCDIRS += $(OSKIT_SRCDIR)/netbsd/fs/arm32/arm32
OBJINC   = $(OSKIT_SRCDIR)/netbsd/fs/arm32/include
endif

INCDIRS += $(OSKIT_SRCDIR)/netbsd/fs $(OSKIT_SRCDIR)/netbsd/src/sys objinclude

# OSKit-specific modifications to NetBSD sources
DEFINES += -DOSKIT 

# NetBSD kernel build options
DEFINES += -DMAXUSERS=32 -DNWDC=1 -DNSD=1 -DNBUF=16 -D_KERNEL -DDIAGNOSTIC 

# File system types  
DEFINES += -DFFS

# Implicitly include the global.h header file at the top of _all_ sources.
# This header #defines a bunch of global NetBSD symbols
# to ensure linker namespace cleanliness and avoid conflicts.
OSKIT_CPPFLAGS += -include $(OSKIT_SRCDIR)/netbsd/fs/global.h

# Hack to keep ufs_readwrite.c from being separately compiled;
# ufs_readwrite.c is compiled through inclusion in ffs_vnops.c.
OSKIT_EXCLUDE += $(OSKIT_SRCDIR)/netbsd/src/sys/ufs/ufs/ufs_readwrite.c

include $(OSKIT_SRCDIR)/GNUmakerules-lib

$(OBJFILES): objinclude/machine
CLEAN_FILES += objinclude objinclude_machine

# Create the objinclude/machine symlink.
# We have to kludge a little to get it to work right,
# because OSKIT_SRCDIR might be either an absolute or a relative path
# and it will only work reliably if interpreted from _this_ directory.
objinclude/machine:
	-mkdir -p objinclude
	ln -s ../objinclude_machine objinclude/machine
	ln -s $(OBJINC) objinclude_machine

endif
