# # SCCS: @(#)makefile 1.13 (98/09/01) # # UniSoft Ltd., London, England # # (C) Copyright 1992 X/Open Company Limited # (C) Copyright 1994 UniSoft Ltd. # # 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 stated in the end-user licence agreement, without the prior # permission of the copyright owners. # # X/Open and the 'X' symbol are trademarks of X/Open Company Limited in # the UK and other countries. # # # ************************************************************************ # # SCCS: @(#)makefile 1.13 98/09/01 TETware release 3.3 # NAME: makefile # PRODUCT: TETware # AUTHOR: Andrew Dingwall, UniSoft Ltd. # DATE CREATED: June 1992 # # DESCRIPTION: # tcm makefile # # MODIFICATIONS: # Denis McConalogue, UniSoft Limited, September 1993 # adapted from the makefile in src/dtet/tcm/makefile. # # Andrew Dingwall, UniSoft Ltd., December 1993 # Enhancements for FIFO transport interface. # Moved lists of transport-specific files to ts.mk # # Geoff Clare, UniSoft Ltd., August 1996 # Changes for TETWare. # # Geoff Clare, UniSoft Ltd., Sept 1996 # Changes for TETware-Lite. # # Geoff Clare, UniSoft Ltd., Oct 1996 # restructured tcm source to avoid "ld -r" # # Andrew Dingwall, UniSoft Ltd., August 1998 # Added support for shared libraries. # # ************************************************************************ include ../../defines.mk include ../ts.mk LOCAL_TET_CDEFS = $(TET_CDEFS) LOCAL_DTET_CDEFS = $(DTET_CDEFS) LOCAL_CDEFS = LOCAL_COPTS = $(COPTS) LOCAL_CC = $(CC) # TET_CFLAGS and DTET_CFLAGS are set in ../common.mk include ../common.mk LIBNAME = $(LIBDAPI) # generic C build targets ALL_GN = tcm$O tcmchild$O TARGETS_GN = $(LIB)/tcm$O $(LIB)/tcmchild$O # additional targets when building the TCM in Distributed TETware ALL_DIST = tcmrem$O TARGETS_DIST = $(LIB)/tcmrem$O # this sets ALL_TS, TARGETS_TS and TCM_OFILES_TS include ts.mk # C build targets ALL = $(ALL_GN) $(ALL_TS) TARGETS = $(TARGETS_GN) $(TARGETS_TS) # C++ build targets # (tcmrem$O isn't supported in the C++ API) ALLC = Ctcm$O Ctcmchild$O TARGETSC = $(LIB)/Ctcm$O $(LIB)/Ctcmchild$O all: $(ALL) lib_made allC: $(ALLC) install: $(TARGETS) lib_made installC: $(TARGETSC) # this sets TCM_OFILES TCMSRC = APISHLIBSRC = include shared.mk $(LIB)/tcm$O: tcm$O dtcm$O ld -r -o $@ tcm$O dtcm$O $(LIB)/tcmrem$O: tcmrem$O cp $? $@ $(LIB)/tcmchild$O: tcmchild$O cp $? $@ $(LIB)/Ctcm$O: Ctcm$O dtcm$O ld -r -o $@ Ctcm$O dtcm$O $(LIB)/Ctcmchild$O: Ctcmchild$O cp $? $@ OFILES = $(TCM_OFILES) lib_made: $(OFILES) if test -f lib_made; then \ $(AR) rv $(LIBNAME) $? ;\ else \ $(AR) rv $(LIBNAME) `$(LORDER) $(OFILES) | $(TSORT)` ;\ fi $(RANLIB) $(LIBNAME) touch lib_made .PRECIOUS: $(LIBNAME) CLEAN clean: rm -f $(OFILES) $(ALL) $(ALLC) dynlink_gen_made CLOBBER clobber: clean rm -f $(TARGETS) $(TARGETSC) lib_made FORCE FRC: clobber all # remove suffix rules from this makefile # all .o files are made by explicit rules .SUFFIXES: .SUFFIXES: .none