# # $RCSfile: Makefile.solaris,v $ # # x-kernel v3.3 # # Copyright (c) 1996,1993,1991,1990 Arizona Board of Regents # # $Log: Makefile.solaris,v $ # Revision 1.9 1997/07/03 17:20:58 llp # replaced cc with gcc # # 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 REALCC = $(CC) RANLIB = echo RANLIB is disabled: # no ranlib in Solaris AR = /usr/ccs/bin/ar # XRT names a path to the top of the x-kernel source tree XRT = /home/projects/courses/fall_07/ee382n-17270/xkernel # 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)