#
# Copyright (c) 1994, The University of Utah and
# the Computer Systems Laboratory at the University of Utah (CSL).
#
# Permission to use, copy, modify and distribute this software is hereby
# granted provided that (1) source code retains these copyright, permission,
# and disclaimer notices, and (2) redistributions including binaries
# reproduce the notices in supporting documentation, and (3) all advertising
# materials mentioning features or use of this software display the following
# acknowledgement: ``This product includes software developed by the Computer
# Systems Laboratory at the University of Utah.''
#
# THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
# IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
# ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
#
# CSL requests users of this software to return to csl-dist@cs.utah.edu any
# improvements that they make and grant CSL redistribution rights.
#
# HISTORY
# $Log: $
#

include $(SRCDIR)/Makefile-version

LITES = startup.$(VERSION).$(LITES_CONFIG)

DEFINES += -DKERNEL

ifeq "${PROFILING}" "yes"
LIBS = -llites_p -lprof1 ${LIBMACHID} ${LIBNETNAME} -lthreads_p -lmach_sa_p
TARGET_CFLAGS += -pg
TARGET_CPPFLAGS += -DGPROF
else
ifdef OSF_ENVIRONMENT
LIBS = -llites ${LIBMACHID} ${LIBNETNAME} -lcthreadsZ -lmachZ -lsa_machZ
else
LIBS = -llites ${LIBMACHID} ${LIBNETNAME} -lthreads -lmach_sa
endif
endif
LIBS +=  ${TARGET_LIBS} ${LIBGCC}
LIBDEPS = ../liblites/liblites.a

all: $(LITES)

# These are generated by the doconfig.sh script.
include Filelist
include Cleanlist

CFILES += $(addprefix $(SRCDIR)/server/,$(filter %.c,$(SOURCEFILES)))
SFILES += $(addprefix $(SRCDIR)/server/,$(filter %.s,$(SOURCEFILES)))
VPATHDIRS += $(addprefix $(SRCDIR)/server/,$(sort $(patsubst %/,%,$(dir $(SOURCEFILES)))))

SECTIONS = server/serv

include $(SRCDIR)/conf/Makerules
include $(SRCDIR)/conf/$(TARGET_MACHINE)/Makerules

$(LITES).unstripped: $(CRT) $(OBJFILES) $(LIBDEPS)
	@echo
	/bin/sh $(SRCDIR)/conf/newvers.sh $(SRCDIR)/conf/copyright Lites $(VERSION) ${LITES_CONFIG}
	$($(COMPILE_FOR)_CC) -c $(CPPFLAGS) $(CFLAGS) $($(COMPILE_FOR)_CFLAGS) vers.c
	$(LD) -o $@.out $(LDFLAGS) $(TARGET_LDFLAGS) \
		$(CRT0) vers.o $(OBJFILES) $(LIBS) && \
	mv $@.out $@
	$(SIZE) $@

$(LITES): $(LITES).unstripped
	cp $< $@
	$(STRIP) $@

vnode_if.h vnode_if.c: $(SRCDIR)/server/kern/vnode_if.sh \
			$(SRCDIR)/server/kern/vnode_if.src
	-rm -f vnode_if.h vnode_if.c
	/bin/sh $^ "${AWK}"

init_sysent.c: ../include/tmp/init_sysent.c
	-rm -f $@
	cp $< $@

syscalls.c: ../include/tmp/syscalls.c
	-rm -f $@
	cp $< $@

$(OBJFILES) bsd_types.gen: vnode_if.h
bsd_server_side.o: bsd_1_server.h
bsd_1_server.h bsd_1_server.c: bsd_types_gen.h bsd_1.srv bsd_1.defs bsd_types.defs
signal_user.c signal_user.h: signal_user.cli signal.defs bsd_types.defs
bsd_server.c: bsd_1_server.c
sendsig.o: signal_user.h
# inhibit gmake autoremoval
bsd_types_gen.h: bsd_types_gen.symc.o
bsd_types_gen.symc.o:  bsd_types_gen.symc

install: $(INSTALL_SBINDIR)/$(LITES)

$(INSTALL_SBINDIR)/$(LITES): $(LITES)
	${MKDIR} $(patsubst %/,%,$(dir $@))
	${INSTALL} -m 755 $< $@
