1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
#
# 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
|