#
# Copyright (c) 1995-1996, 1998 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_examples_unix_makerules_
_oskit_examples_unix_makerules__ = yes

#
# -DOSKIT is required in UNIX mode when compiling against the freebsd
# header files. Use "ifndef OSKIT_UNIT" instead of "ifdef OSKIT"
#

#
# Let's build all examples here to ensure the make rules don't get 
# out of date
#
TARGETS = dphils http_proxy disktest disknet

all: $(TARGETS)

SRCDIRS      += $(OSKIT_SRCDIR)/examples/x86/threads

INCDIRS +=   $(OSKIT_SRCDIR)/freebsd/libc/include			\
	     $(OSKIT_SRCDIR)/freebsd/src/include			\
	     $(OSKIT_SRCDIR)/freebsd/src/sys				\
	     $(OSKIT_SRCDIR)/freebsd/src/lib/libc/i386			\
	     $(OBJDIR)/freebsd/libc_r/objinclude

CLEAN_FILES  +=	$(TARGETS) *.gdb
OSKIT_CFLAGS += -DOSKIT_UNIX -DOSKIT
CRT0          = -e start $(OBJDIR)/lib/crt0.o
LDFLAGS       = -nostdlib 
CC           += -O -g
NATLIB	      = $(OBJDIR)/examples/unix/freebsd/libfreebsdsys.a

PTHREADLIBS   = -loskit_startup -loskit_threads -loskit_netbsd_fs -loskit_fs 
PTHREADLIBS  += -loskit_dev -loskit_c -loskit_kern

include $(OSKIT_SRCDIR)/GNUmakerules

DEPENDLIBS = $(filter %.a, $(foreach DIR,$(LIBDIRS),$(wildcard $(DIR)/*)))
DEPENDLIBS += $(NATLIB)

$(NATLIB):
	$(MAKE) -C $(dir $@)

dphils: dphils.o $(OBJDIR)/lib/unix_support_pthreads.o $(DEPENDLIBS)
	$(CC) -o $@ $(CRT0) $@.o $(LDFLAGS) $(OSKIT_LDFLAGS) \
		$(OBJDIR)/lib/unix_support_pthreads.o \
		-loskit_startup \
		-loskit_threads -loskit_freebsd_c_r \
		-loskit_kern -loskit_dev -loskit_com -loskit_lmm \
		-loskit_netbsd_fs -loskit_freebsd_c_r -loskit_threads \
		$(NATLIB) -loskit_freebsd_dev

http_proxy: http_proxy.o $(OBJDIR)/lib/unix_support_pthreads.o $(DEPENDLIBS)
	$(CC) -o $@ $(CRT0) $@.o $(LDFLAGS) $(OSKIT_LDFLAGS) \
		$(OBJDIR)/lib/unix_support_pthreads.o \
		-loskit_startup \
		-loskit_threads -loskit_freebsd_c_r \
		-loskit_freebsd_c_r -loskit_bootp \
		-loskit_freebsd_net \
		-loskit_linux_dev -loskit_dev -loskit_kern \
		-loskit_freebsd_c_r -loskit_com -loskit_lmm -loskit_netbsd_fs \
		-loskit_diskpart -loskit_fs -loskit_freebsd_c_r -loskit_com \
		-loskit_threads \
		$(NATLIB) -loskit_freebsd_dev

disktest: disktest.o $(OBJDIR)/lib/unix_support_pthreads.o $(DEPENDLIBS)
	$(CC) -o $@ $(CRT0) $@.o $(LDFLAGS) $(OSKIT_LDFLAGS) \
		$(OBJDIR)/lib/unix_support_pthreads.o \
		-loskit_startup \
		-loskit_threads -loskit_freebsd_c_r \
		-loskit_bootp \
		-loskit_freebsd_net \
		-loskit_linux_dev -loskit_dev -loskit_kern \
		-loskit_freebsd_c_r -loskit_com -loskit_lmm -loskit_netbsd_fs \
		-loskit_diskpart -loskit_fs -loskit_freebsd_c_r -loskit_com \
		-loskit_threads -loskit_freebsd_c_r \
		$(NATLIB) -loskit_freebsd_dev

disknet: disknet.o $(OBJDIR)/lib/unix_support_pthreads.o $(DEPENDLIBS)
	$(CC) -o $@ $(CRT0) $@.o $(LDFLAGS) $(OSKIT_LDFLAGS) \
		$(OBJDIR)/lib/unix_support_pthreads.o \
		-loskit_startup \
		-loskit_threads -loskit_freebsd_c_r \
		-loskit_bootp \
		-loskit_freebsd_net \
		-loskit_linux_dev -loskit_dev -loskit_kern \
		-loskit_freebsd_c_r -loskit_com -loskit_lmm -loskit_netbsd_fs \
		-loskit_diskpart -loskit_fs -loskit_freebsd_c_r -loskit_com \
		-loskit_threads -loskit_freebsd_c_r \
		$(NATLIB) -loskit_freebsd_dev

inherit-test1: inherit-test1.o $(OBJDIR)/lib/unix_support_pthreads.o \
		$(DEPENDLIBS)
	$(CC) -o $@ $(CRT0) $@.o $(LDFLAGS) $(OSKIT_LDFLAGS) \
		$(OBJDIR)/lib/unix_support_pthreads.o \
		-loskit_startup \
		-loskit_threads -loskit_freebsd_c_r -loskit_bootp \
		-loskit_freebsd_net \
		-loskit_linux_dev -loskit_dev -loskit_kern \
		-loskit_freebsd_c_r -loskit_com -loskit_lmm -loskit_netbsd_fs \
		-loskit_diskpart -loskit_fs -loskit_com \
		-loskit_threads \
		$(NATLIB) -loskit_freebsd_dev

inherit-test4: inherit-test4.o $(OBJDIR)/lib/unix_support_pthreads.o \
		$(DEPENDLIBS)
	$(CC) -o $@ $(CRT0) $@.o $(LDFLAGS) $(OSKIT_LDFLAGS) \
		$(OBJDIR)/lib/unix_support_pthreads.o \
		-loskit_startup \
		-loskit_threads -loskit_freebsd_c_r -loskit_bootp \
		-loskit_freebsd_net \
		-loskit_linux_dev -loskit_dev -loskit_kern \
		-loskit_freebsd_c_r -loskit_com -loskit_lmm -loskit_netbsd_fs \
		-loskit_diskpart -loskit_fs -loskit_com \
		-loskit_threads \
		$(NATLIB) -loskit_freebsd_dev

mqueue: mqueue.o $(OBJDIR)/lib/unix_support_pthreads.o \
		$(DEPENDLIBS)
	$(CC) -o $@ $(CRT0) $@.o $(LDFLAGS) $(OSKIT_LDFLAGS) \
		$(OBJDIR)/lib/unix_support_pthreads.o \
		-loskit_startup \
		-loskit_threads -loskit_freebsd_c_r -loskit_bootp \
		-loskit_freebsd_net \
		-loskit_linux_dev -loskit_dev -loskit_kern \
		-loskit_freebsd_c_r -loskit_com -loskit_lmm -loskit_netbsd_fs \
		-loskit_diskpart -loskit_fs -loskit_com \
		-loskit_threads \
		$(NATLIB) -loskit_freebsd_dev

ipctest: ipctest.o $(OBJDIR)/lib/unix_support_pthreads.o \
		$(DEPENDLIBS)
	$(CC) -o $@ $(CRT0) $@.o $(LDFLAGS) $(OSKIT_LDFLAGS) \
		$(OBJDIR)/lib/unix_support_pthreads.o \
		-loskit_startup \
		-loskit_threads -loskit_freebsd_c_r -loskit_bootp \
		-loskit_freebsd_net \
		-loskit_linux_dev -loskit_dev -loskit_kern \
		-loskit_freebsd_c_r -loskit_com -loskit_lmm -loskit_netbsd_fs \
		-loskit_diskpart -loskit_fs -loskit_com \
		-loskit_threads \
		$(NATLIB) -loskit_freebsd_dev
endif

