##########################################################################
# (C) Copyright 1997 UniSoft Limited
#
# All rights reserved.  No part of this source code may be reproduced,
# stored in a retrieval system, or transmitted, in any form or by any
# means, electronic, mechanical, photocopying, recording or otherwise,
# except as in the end-user licence agreement, without the prior
# permission of the copyright owners.
#
# UNIX is a registered trademark and X/Open, the `X Device' and The Open
# Group are trademarks of The Open Group.    
#
#	PROJECT:	VSX5
#	PRODUCT:	DYNL.os/libdl/dlclose
#	AUTHOR:		Tony Fisher, Unisoft Ltd.
#	DATE CREATED:	27 February 1997
#	TARGETS:	T.dlclose - testset
##########################################################################

CC =		cc
MV =		mv
RM =		rm -f
LINT =		lint
LINT1 =		/usr/lib/lint1
PRINTER =	lpr
PRINTFLAGS =	
TET_EXECUTE =	../../../../TESTROOT

TET_ROOT =	../../../../..
VSXDIR =	../../../../SRC
SYSINC =	$(VSXDIR)/SYSINC
SYSLIBS =	

VSXINC =	$(VSXDIR)/INC
VSXLIB =	$(VSXDIR)/LIB
VSXBIN =	$(VSXDIR)/BIN
CHMOG =		$(VSXBIN)/chmog
GENLIB =	$(VSXLIB)/genlib.a
LIBVPORT =	$(VSXLIB)/vport.a
MKSO =		CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
			SYSLIBS="$(SYSLIBS)" $(VSXDIR)/dynl_mkso.sh 

# What is installed:

INSTOWN1 =	vsx0
INSTGRP =	vsxg0
INSTMODE1 =	755
INSTDIR =	$(TET_EXECUTE)/tset/LSB.os/libdl/dlclose

# Local (to this product only) inclues, libraries, etc:

LOCALINC =	
LOCALLIB =

# product-wide libraries for ld(1):

LIBS =		$(GENLIB) $(VSXLIB)/vlib.a $(LIBVPORT) $(APILIB)
COPTS =		
DEFINES =	
INCS =		-I$(TETINC) -I$(VSXINC) -I$(SYSINC)
CFLOCAL =
CFLAGS =	$(CFLOCAL) $(INCS) $(DEFINES) $(COPTS)
DYNL_CFLAGS =	$(CFLOCAL) $(INCS) $(DEFINES) $(DYNL_COPTS)
LDFLAGS =

CHR_CFILES =	dlclose.c
CHR_IFILES =	
CHR_OFILES =	dlclose.o
CHR_LFILES =

CFILES =	$(CHR_CFILES)

LGEN =		$(VSXLIB)/llib-lgen.ln
LVLIB =		$(VSXLIB)/llib-lvlib.ln
LVPORT =	$(VSXLIB)/llib-lvport.ln
LVSX =		$(VSXLIB)/llib-lvsx.ln

LINTFLAGS =	$(INCS) $(DEFINES) -n
LINTLIBS =	$(LGEN) $(LVLIB) $(LVPORT) $(LVSX)
LINTDRV =	$(VSXDIR)/common/tet_startup/startup.c

AUX_FILES=so_locations dynlibtest.*.o $(INSTDIR)/tmp.*.so


# Targets: ---------------------------------------------------------

all INSTALL:	T.dlclose dyn1 dyn2

T.dlclose:	$(CHR_OFILES) $(TCM) \
			$(VSXLIB)/startup.o $(LIBS)
		$(CC) -o $@ $(CHR_OFILES) \
			$(TCM) $(VSXLIB)/startup.o \
			$(LIBS) $(DYNL_LIBDL) $(SYSLIBS) $(DYNL_LDFLAGS)
		$(CHMOG) $(INSTMODE1) $(INSTOWN1) $(INSTGRP) \
			-m $@ $(INSTDIR)/$@
		@echo "	$@ made"

dlclose.o:	dlclose.c
		$(CC) $(DYNL_CFLAGS) -c dlclose.c

dyn1:		dynlibtest.1.so
dyn2:		dynlibtest.2.2.so dynlibtest.2.1.so

dynlibtest.1.so:	dynlibtest.1.c
		$(MKSO) -o $(INSTDIR)/$@ $?
		$(MV) $(INSTDIR)/dynlibtest.1.so $(INSTDIR)/tmp.1.so
		$(CHMOG) $(INSTMODE1) $(INSTOWN1) $(INSTGRP) \
			-m $(INSTDIR)/tmp.1.so $(INSTDIR)/$@

dynlibtest.2.1.so:	dynlibtest.2.1.c dynlibtest.2.2.so
		if test "$(DYNL_DEPOBJ_SUPPORTED)" = "y"; \
		then \
		$(MKSO) -o $(INSTDIR)/$@ \
			-d $(INSTDIR)/dynlibtest.2.2.so \
			dynlibtest.2.1.c; \
		$(MV) $(INSTDIR)/$@ $(INSTDIR)/tmp.2.1.so; \
		$(CHMOG) $(INSTMODE1) $(INSTOWN1) $(INSTGRP) \
			-m $(INSTDIR)/tmp.2.1.so $(INSTDIR)/$@; \
		fi

dynlibtest.2.2.so:	dynlibtest.2.2.c
		if test "$(DYNL_DEPOBJ_SUPPORTED)" = "y"; \
		then \
		$(MKSO) -o $(INSTDIR)/$@ $?; \
		$(MV) $(INSTDIR)/$@ $(INSTDIR)/tmp.2.2.so; \
		$(CHMOG) $(INSTMODE1) $(INSTOWN1) $(INSTGRP) \
			-m $(INSTDIR)/tmp.2.2.so $(INSTDIR)/$@; \
		fi

LINT:
		$(LINT) $(LINTFLAGS) $(CHR_CFILES) $(LINTDRV) $(LTCM) $(LINTLIBS)

$(LIBS):
	-@echo "Warning: cannot continue making: $@ needs to be installed"
		@false

FORCE:		CLOBBER all

PRINT:
		@$(PRINTER) $(PRINTFLAGS) Makefile $(CHR_IFILES) $(CHR_CFILES)

CLEAN:
		$(RM) $(CHR_OFILES) $(AUX_FILES)

CLOBBER:	CLEAN
		$(RM) T.dlclose $(INSTDIR)/T.dlclose \
		$(RM) dynlibtest.1.so $(INSTDIR)/dynlibtest.1.so \
		$(RM) dynlibtest.2.1.so $(INSTDIR)/dynlibtest.2.1.so \
		$(RM) dynlibtest.2.2.so $(INSTDIR)/dynlibtest.2.2.so

depend:
	CFLAGS="$(CFLAGS)" CC="$(CC)" $(VSXBIN)/mkdep $(CFILES)

# DO NOT DELETE THIS LINE -- make depend uses it
# DEPENDENCIES MUST END AT END OF FILE
dlclose.o:	../../../../SRC/INC/dbug.h  \
	../../../../SRC/INC/report.h  \
	../../../../SRC/INC/std.h  \
	../../../../SRC/INC/sysdep.h  \
	../../../../SRC/SYSINC/dlfcn.h  \
	../../../../SRC/SYSINC/stdio.h  \
	../../../../SRC/SYSINC/string.h  \
	../../../../SRC/SYSINC/sys/types.h 
# DEPENDENCIES MUST END AT END OF FILE
# IF YOU PUT STUFF HERE IT WILL GO AWAY
# see make depend above
