4.4BSD/usr/src/contrib/sun.sharedlib/lang/rtld/MakeCommon

# This source code is a product of Sun Microsystems, Inc. and is provided
# for unrestricted use provided that this legend is included on all tape
# media and as a part of the software program in whole or part.  Users
# may copy or modify this source code without charge, but are not authorized
# to license or distribute it to anyone else except as part of a product or
# program developed by the user.
#
# THIS PROGRAM CONTAINS SOURCE CODE COPYRIGHTED BY SUN MICROSYSTEMS, INC.
# SUN MICROSYSTEMS, INC., MAKES NO REPRESENTATIONS ABOUT THE SUITABLITY
# OF SUCH SOURCE CODE FOR ANY PURPOSE.  IT IS PROVIDED "AS IS" WITHOUT
# EXPRESS OR IMPLIED WARRANTY OF ANY KIND.  SUN MICROSYSTEMS, INC. DISCLAIMS
# ALL WARRANTIES WITH REGARD TO SUCH SOURCE CODE, INCLUDING ALL IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  IN
# NO EVENT SHALL SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT,
# INCIDENTAL, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
# FROM USE OF SUCH SOURCE CODE, REGARDLESS OF THE THEORY OF LIABILITY.
# 
# This source code is provided with no support and without any obligation on
# the part of Sun Microsystems, Inc. to assist in its use, correction, 
# modification or enhancement.
#
# SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
# INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS
# SOURCE CODE OR ANY PART THEREOF.
#
# Sun Microsystems, Inc.
# 2550 Garcia Avenue
# Mountain View, California 94043

# Copyright (c) 1991 Sun Microsystems, Inc.

#
# @(#)MakeCommon 1.25 91/04/12 SMI
#
LDSO = ld.so
BINS = ldconfig ld.so
MID = ..
LD_DIR 	= ../../ld
HDRS = ../rtld.h ../cache.h ../../ld/dynamic.h ../../ld/reloc_info.h \
	./assym.h
LDSO_OBJS = rtldlib.o rtld.o rtsubrs.o cache_rtld.o cache_common.o verscmp.o\
	    errors.o
LDCONFIG_OBJS = ldconfig.o cache_common.o verscmp.o
CHECK_OBJS = check_stack.o
m-mc68010 = sun
m-mc68020 = sun
m-sparc = sparc
MD = $(m$(TARGET_MACH))
d-mc68020 = m68k
d-mc68010 = m68k
d-sparc = sparc
MACH = $(d$(TARGET_MACH))
arch-sun2=SUN2
arch-sun3=SUN3
arch-sun3x=SUN3
arch-sun4=SUN4
arch-sun4c=SUN4
TARGET = $(arch$(TARGET_ARCH))

INCLUDE	= -I.. -I../../ld
CPPFLAGS += -DPIC -I.. $(INCLUDE)
LINTFLAGS += -bx $(INCLUDE)
CCFLAGS += -O3 -D$(MD) -DSUN2=0 -DSUN3=1 -DSUN4=2\
			 -DTARGET=$(TARGET) $(INCLUDE) 
CFLAGS	+= -pic $(CCFLAGS)
ASFLAGS += -k
CPP = /lib/cpp
 
check_stack.o ldconfig.o rtldlib.o rtld.o rtsubrs.o cache_rtld.o \
	cache_common.o errors.o := \
	DIR = $(MID)
verscmp.o := DIR = $(LD_DIR)
errors.o := CFLAGS += -R

ldconfig := LDFLAGS += -n -Bdynamic
ld.so := LDFLAGS += -Bsymbolic -assert pure-text

ld.so:	$(HDRS) $(LDSO_OBJS) check_stack
	check_stack
	$(LD) $(LDFLAGS) -o $@ $(LDSO_OBJS) -L. -lc_pic

ldconfig:	$(HDRS) $(LDCONFIG_OBJS)
	$(CC) $(LDFLAGS) -o $@ $(LDCONFIG_OBJS) 
	
check_stack:	$(CHECK_OBJS)
	$(CC) -o $@ $(CHECK_OBJS)

%.o: $$(DIR)/%.c
	${CC} ${CFLAGS} -c $<

%.o: %.s
	${CPP} ${CPPFLAGS}  $< > tmp.s
	${AS} ${ASFLAGS}  tmp.s
	mv -f a.out $*.o
	rm -f tmp.s

assym.h : $(MID)/genassym.c
	${CC} ${CFLAGS} $(MID)/genassym.c
	a.out >$@
	rm a.out

install: $(BINS)
	install -s ld.so  $(DESTDIR)/usr/lib/$(LDSO)+
	if [ -z "$(DESTDIR)" ]; then \
		rm -f $(DESTDIR)/usr/lib/$(LDSO)-; \
		mv $(DESTDIR)/usr/lib/$(LDSO) $(DESTDIR)/usr/lib/$(LDSO)-; \
	fi;
	mv $(DESTDIR)/usr/lib/$(LDSO)+ $(DESTDIR)/usr/lib/$(LDSO)
	chmod 555 $(DESTDIR)/usr/lib/$(LDSO)
	install -s ldconfig $(DESTDIR)/usr/etc

masterclean:	
	-rm -f ld.so ldconfig core *.o assym.h

masterlint :
	lint $(LINTFLAGS) $(CCFLAGS) $(RTLD_SRCS) $(LD_SRCS)