home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
xkernel
/
Makefile.solaris
< prev
next >
Wrap
Makefile
|
1996-08-02
|
5KB
|
179 lines
#
# $RCSfile: Makefile.solaris,v $
#
# x-kernel v3.3
#
# Copyright (c) 1996,1993,1991,1990 Arizona Board of Regents
#
# $Log: Makefile.solaris,v $
# Revision 1.8 1996/08/02 18:16:59 llp
# refixed cc again
#
# Revision 1.7 1996/08/02 17:00:33 llp
# flipped bak to debug mode
#
# Revision 1.6 1996/08/01 23:16:35 llp
# fixed LWP problem
#
# Revision 1.5 1996/06/10 18:25:14 llp
# I have no idea
#
# Revision 1.4 1996/03/06 18:08:04 llp
# fixe
# fixed REALCC
#
# Revision 1.3 1996/01/30 20:33:00 slm
# Cosmetic changes.
#
# Revision 1.2 1995/10/17 22:24:00 slm
# Create .o files in OBJS directories, Makedep files in
# DEPS directories, and ComposeFiles in COMS directories.
#
# Revision 1.1 1995/07/29 02:27:17 slm
# Initial revision
#
# Revision 1.1.1.2 1994/11/22 21:51:17 hkaram
# Added Solaris user_level changes
#
# Revision 1.1 1994/05/06 21:16:30 gordon
# Initial revision
#
# Revision 1.46 1994/01/27 16:27:56 menze
# [ 1994/01/06 menze ]
# Defining XK_BIN_TYPE variable
# Modified LIBPATH for external libraries
#
# [ 1994/01/04 menze ]
# Uses SYSTEM_PROTOTYPES conditional
#
# -----------------------------------------------------------------
# Build-directory Makefile for the solaris/sparc platform.
#
# There are many variables defined here that may vary from site to site. If
# you are the first person at your site to build an x-kernel, look over the
# definitions carefully and determine what the appropriate values should be
# for your site.
XPLATFORM = solaris
MACHINE = sparc
XK_TYPE = UL
XK_TYPE_DIR = user_level
XK_BIN_TYPE := $(XPLATFORM)-$(MACHINE)
# HOWTOCOMPILE controls optimization flags and tracing routines.
# It should be set to either DEBUG or OPTIMIZE
HOWTOCOMPILE = DEBUG
#HOWTOCOMPILE = OPTIMIZE
HOW := $(XK_TYPE)-$(HOWTOCOMPILE)-$(XK_BIN_TYPE)
HOWUTIL := $(HOWTOCOMPILE)-$(XK_BIN_TYPE)
# If XK_BYPASS_RCS is defined (to anything), RCS consistency checks will be
# disabled. This can make a build run significantly faster.
XK_BYPASS_RCS = blurp
# Compiler-related flags. If you decide to change compilers, some of these
# flags may also have to change.
#
# Both gcc and the Sun native cc seem to work ok.
# but watch the "make dependencies" switch in makefile.local: cc uses -xM
CC = gcc
ifeq ($(CC),gcc)
DEBUGWARNINGS = -Wunused
OPTIMIZEWARNINGS = -Wuninitialized
WARNINGS = -Wreturn-type -Wimplicit -Wswitch -Wchar-subscripts \
-Wshadow -Wmissing-prototypes -Winline -Wpointer-arith \
$($(HOWTOCOMPILE)WARNINGS)
CC_SPECIFIC_FLAGS = -fwritable-strings -D_REENTRANT \
-D_POSIX_PTHREAD_SEMANTICS -D_POSIX_PER_PROCESS_TIMER_SOURCE \
# needed for multithread Solaris
DEBUGCFLAGS = -g
OPTIMIZECFLAGS = -O
LDFLAGS = $(LIBPATH) -g
else # native cc
CC_SPECIFIC_FLAGS = -D_REENTRANT \
-D_POSIX_PTHREAD_SEMANTICS -D_POSIX_PER_PROCESS_TIMER_SOURCE \
# needed for multithread Solaris
DEBUGCFLAGS = -g
OPTIMIZECFLAGS = -O
LDFLAGS = $(LIBPATH) -g
endif
# Libraries. Some of these libraries are labeled 'optional', indicating that
# they are only used by some protocols. Names and locations of libraries may
# be site-specific.
LIBPATH = -L$(XRT)/lib -L$(XRT)/lib/$(XK_BIN_TYPE)
solaris_LIBS = -lposix4 -lsocket -lnsl -lthread # required
LIB_GNUMP = -lgmp # GNU multi-precision library, optional
SED = sed
MAKE = make
#REALCC = /opt/SUNWspro/bin/cc # lec's cc is broken
REALCC = /usr/ucb/cc
RANLIB = echo RANLIB is disabled: # no ranlib in Solaris
AR = ar
# XRT names a path to the top of the x-kernel source tree
XRT = ../../..
# TMP_CPPFLAGS and TMP_CFLAGS apply to the build directory only, and won't be
# propagated to compilation in other x-kernel directories.
# TMP_CPPFLAGS =
# TMP_CFLAGS =
# When compiling private versions of x-kernel utilities in your build area,
# you may need to add include paths. Add these to the TMP_INCLUDES variable.
TMP_INCLUDES = $(COMPOSE_INCLUDES)
MAKEFILE = Makefile
MAKEFLAGS += --no-print-directory
OPTIMIZECPPFLAGS =
DEBUGCPPFLAGS = -DXK_DEBUG
BUILD_CPPFLAGS := $($(HOWTOCOMPILE)CPPFLAGS) -DX_SOLARIS -DXK_TRACE_LOCKING
BUILD_CFLAGS = $($(HOWTOCOMPILE)CFLAGS)
all: xkernel
# The COMPOSE_MAKEFILE is generated from graph.comp when 'make compose' is run.
COMPOSE_MAKEFILE = Makefile.local
COMPOSEFLAGS = -f -m $(COMPOSE_MAKEFILE)
include $(COMPOSE_MAKEFILE)
$(COMPOSE_MAKEFILE):
@touch $(COMPOSE_MAKEFILE)
# If you compile source code in your build area which isn't associated with a
# particular protocol, add the source names to PRIVSRC and the object names
# (e.g., ./OBJS/$(HOW)/foo.o) to PRIVOBJ.
#PRIVSRC = \
#PRIVOBJ = \
include $(XRT)/$(XK_TYPE_DIR)/build/Template/Makefile.common
# Include Makefile.nolibs to compile without libraries
include $(XRT)/$(XK_TYPE_DIR)/build/Template/Makefile.nolibs
xkernel: $(OBJ) $(XLIBS)
@echo linking xkernel ...
@$(CC) $(LDFLAGS) -o xkernel $(OBJ) $(XLIBS) $(COMPOSE_LIBS) \
$($(XPLATFORM)_LIBS)
include DEPS/Makedep.$(HOW)